一般會從下面幾個方面考,不管是面試C++,C#,java都是
首先是關於關鍵字和標示常量的考察
然後是關於類和介面的試題
然後是關於array,io和socket的試題
然後是關於資料庫的各種sql語句的考察
然後是排序,包括快速排序,插入排序,選擇排序
然後是設計模式的考察
一下以java為例子說明一些自己遇到的:
存取控制:
private 私人的
protected 受保護的
public 公用的
類、方法和變數修飾符
abstract 聲明抽象
class 類
extends 擴允,繼承
final 終極,不可改變的
implements實現
interface 介面
native 本地
new 新,建立
static 靜態
strictfp 嚴格,精準
synchronized 線程,同步
transient 短暫
volatile 易失
程式控制語句
break 跳出迴圈
continue 繼續
return 返回
do 運行
while 迴圈
if 如果
else 反之
for 迴圈
instanceof 執行個體
switch 開關
case 返回開關裡的結果
default 預設
錯誤處理
catch 處理異常
finally 有沒有異常都執行
throw 拋出一個異常對象
throws 聲明一個異常可能被拋出
try 捕獲異常
包相關
import 引入
package 包
基本類型
boolean 布爾型
byte 位元組型
char 字元型
double 雙精確度,
float 浮點
int 整型
long 長整型
short 短整型
null 空
true 真
false 假
變數引用
super 父類,超類
this 本類
void 無傳回值
無const 和 goto, 不過這兩個詞是保留字而不是關鍵詞。保留字是系統保留起來不給使用者使用,系統自己也不會用
無friendly和sizeof哦!!!
標識符變數,類與方法都需要一定的名稱,我們將這種名稱叫做標識符.java中對標識符有一定的限制.首先:所有的標識符的首字元必須是字母(大小寫).底線_或美元符$;其次標示符是由數字(0--9),所有從a--z的大寫字母.a--z的小寫字母與底線_.美元符$與所有在十六進位0xc0前的 ascii碼等構成;第三注意表示符不能使用系統保留的關鍵字做標示符.
Java關鍵字this、super使用總結
一、this
Java關鍵字this只能用於方法方法體內。當一個對象建立後,Java虛擬機器(JVM)就會給這個對象分配一個引用自身的指標,這個指標的名字就是this。因此,this只能在類中的非靜態方法中使用,靜態方法和靜態代碼塊中絕對不能出現this,這在“Java關鍵字static、final使用總結”一文中給出了明確解釋。並且this只和特定的對象關聯,而不和類關聯,同一個類的不同對象有不同的this。下面給出一個使用this的綜合執行個體,以便說明問題:
package org.leizhimin;
public class Test6 {
private int number;
private String username;
private String password;
private int x = 100;
public Test6(int n) {
number = n; // 這個還可以寫為: this.number=n;
}
public Test6(int i, String username, String password) {
// 成員變數和參數同名,成員變數被屏蔽,用"this.成員變數"的方式訪問成員變數.
this.username = username;
this.password = password;
}
// 預設不帶參數的構造方法
public Test6() {
this(0, "未知", "空"); // 通過this調用另一個構造方法
}
public Test6(String name) {
this(1, name, "空"); // 通過this調用另一個構造方法
}
public static void main(String args[]) {
Test6 t1 = new Test6();
Test6 t2 = new Test6("遊客");
t1.outinfo(t1);
t2.outinfo(t2);
}
private void outinfo(Test6 t) {
System.out.println("-----------");
System.out.println(t.number);
System.out.println(t.username);
System.out.println(t.password);
f(); // 這個可以寫為: this.f();
}
private void f() {
// 局部變數與成員變數同名,成員變數被屏蔽,用"this.成員變數"的方式訪問成員變數.
int x;
x = this.x++;
System.out.println(x);
System.out.println(this.x);
}
//返回當前執行個體的引用
private Test6 getSelf() {
return this;
}
}
運行結果如下:
-----------
0
未知
空
100
101
-----------
0
遊客
空
100
101
看著上面的例子,說明在什麼情況下需要用到this:
第一、通過this調用另一個構造方法,用發是this(參數列表),這個僅僅在類的構造方法中,別的地方不能這麼用。
第二、函數參數或者函數中的局部變數和成員變數同名的情況下,成員變數被屏蔽,此時要訪問成員變數則需要用“this.
成員變數名”的方式來引用成員變數。當然,在沒有同名的情況下,可以直接用成員變數的名字,而不用this,用了也不為錯,呵呵
第三、在函數中,需要引用該函所屬類的當前對象時候,直接用this。
其實這些用法總結都是從對“this是指向對象本身的一個指標”這句話的更深入的理解而來的,死記不然容易忘記而且容易
搞錯,要理解!
二、super
super關鍵和this作用類似,是被屏蔽的成員變數或者成員方法或變為可見,或者說用來引用被屏蔽的成員變數和成員成員
方法。
不過super是用在子類中,目的是訪問直接父類中被屏蔽的成員,注意是直接父類(就是類之上最近的超類)。下面是一個綜合運用
super的例子,有兩個類:一個Father類,一個Father類的子類Son,通過這兩個類完全示範了super的用法,一下是代碼:
package org.leizhimin;
public class Father {
public String v="Father";
public String x="輸出了Father類的public成員變數x!!!";
public Father() {
System.out.println("Father構造方法被調用!");
}
public Father(String v){
this.v="Father類的帶參數構造方法!運行了.";
}
public void outinfo(){
System.out.println("Father的outinfo方法被調用");
}
public static void main(String[] args) {
// TODO 自動產生方法存根
}
}
package org.leizhimin;
public class Son extends Father{
public String v="Son";
public Son() {
super(); //調用超類的構造方法,只能放到第一行.
System.out.println("Son無參數構造方法被調用!");
//super(); //錯誤的,必須放到構造方法體的最前面.
}
public Son(String str){
super(str);
System.out.println("Son帶參數構造方法被調用!");
}
//覆蓋了超類成員方法outinfo()
public void outinfo(){
System.out.println("Son的outinfo()方法被調用");
}
public void test(){
String v="哈哈哈哈!"; //局部變數v覆蓋了成員變數v和超類變數v
System.out.println("------1-----");
System.out.println(v); //輸出局部變數v
System.out.println(this.v); //輸出(子類)成員變數v
System.out.println(super.v); //輸出超類成員變數v
System.out.println("------2-----");
System.out.println(x); //輸出超類成員變數v,子類繼承而來
System.out.println(super.x); //輸出超類成員變數v
System.out.println("------3-----");
outinfo(); //調用子類的outinfo()方法
this.outinfo(); //調用子類的outinfo()方法
super.outinfo(); //調用父類的outinfo()方法
}
public static void main(String[] args) {
new Son().test();
}
}
子類Son運行結果:
Father構造方法被調用!
Son無參數構造方法被調用!
------1-----
哈哈哈哈!
Son
Father
------2-----
輸出了Father類的public成員變數x!!!
輸出了Father類的public成員變數x!!!
------3-----
Son的outinfo()方法被調用
Son的outinfo()方法被調用
Father的outinfo方法被調用
說明:次例子僅僅為了說明super的用法,實際在設計類的時候一般都儘可能私人(private)化。
通過上面的例子,下面總結一下super的用法:
第一、在子類構造方法中要調用父類的構造方法,用“super(參數列表)”的方式調用,參數不是必須的。同時還要注意的一點是:“super(參數列表)”這條語句只能用在子類構造方法體中的第一行。
第二、當子類方法中的局部變數或者子類的成員變數與父類成員變數同名時,也就是子類局部變數覆蓋父類成員變數時,用“super.成員變數名”來引用父類成員變數。當然,如果父類的成員變數沒有被覆蓋,也可以用“super.成員變數名”來引用父類成員變數,不過這是不必要的。
第三、當子類的成員方法覆蓋了父類的成員方法時,也就是子類和父類有完全相同的方法定義(但方法體可以不同),此時,用“super.方法名(參數列表)”的方式訪問父類的方法。