java 基礎 面試題 一
1. &和&&的區別
&&短路與,先判斷 && 前面的條件,如果前面的條件成立,就不會判斷後面的條件了,為了提高效率。在java程式設計中,大多數情況下都會有 && ;在某些特殊情況下會用到 &,如:
if (false & a++){
System.out.println("判斷過程中也需要更新a的值");
}
短路或(||)的用法相同
2.自增與自減的使用
自增: 前自增:先自增後賦值 後自增:先賦值後自增
int a = 1;
int b = a++; //b=1 ; a=2
int c = ++ a; //c=3 ; a=3
int d = a+++b; //d=4 ; a=4; b=1
int e = a++ + ++b; //e=6 ;a=5;b=2
自減效果相同
3.定義一個double型別的變數,其值為20
資料型別轉換的小技巧,隱式轉換法
double a = 20.0;
定義一個float型別的變數
float a = 20.0f;
4.下面程式碼的結果是什麼
short a = 1;
a=a+2;
System.out.println(a);
會報錯:
- 短資料型別轉換成長的資料型別 可以直接轉換
- 長的資料型別轉換成短的資料型別 要強制轉換
可以寫成: a+=b; a=(short)(a+b);
5.==的使用
- 對於基本資料型別 比較的是數值
- 對於引用資料型別 比較的是地址
- 字串比較用.equals()
返回的都是Boolean值
String a = "a";
String b = new String("a");
if (a.equals(b)){
System.out.println("我比較的是數值,不是地址");
}
if (a==b){
System.out.println("我比較的是數值,不是地址");
}else{
System.out.println("我比較的是地址");
}
6.用三目運算子,找出三個數中最大的
寫法不唯一
int a,b,c;
a = 6;
b = 2;
c = 3;
System.out.println(a>b?(a>c?a:c):(b>c?b:c));
7.用最快的速度計算3*8
System.out.println(3<<3);
8.不用第三個變數來交換兩個數
9.說說 java中goto
goto不是Java中的關鍵字,goto是java中的保留字,現在沒有在java中使用。
10. 下面的結果是什麼
char a = 66;
char b = 122;
System.out.println(a); //B
System.out.println(b); //z
11.java的三大特徵是什麼
封裝、繼承和多型
12.overloading與overriding的區別
13.什麼是封裝
封裝(Encapsulation)是面向物件方法的重要原則,就是把物件的屬性和操作(或服務)結合為一個獨立的整體,並儘可能隱藏物件的內部實現細節,對資料的訪問只能通過已定義的介面,適當的封裝可以讓程式碼更容易理解和維護,也加強了程式碼的安全性。
14.什麼是繼承
繼承是面向物件最顯著的一個特性。繼承是從已有的類中派生出新的類,新的類能吸收已有類的資料屬性和行為,並能擴充套件新的能力,這種技術使得複用以前的程式碼非常容易,能夠大大縮短開發週期,降低開發費用。
15什麼是多型
多型具體表現在重寫和過載,多型就是類的多種表現方式,比如同名不同參。 同一操作作用於不同的物件,可以有不同的解釋,產生不同的執行結果。在執行時,可以通過指向基類的指標,來呼叫實現派生類中的方法。簡單來書就是父類的引用指向子類的對性,說白了就是大的接收小的。
16.說一說final關鍵字
1.宣告一個常量;2.宣告一個方法;3.宣告一個類,不能被繼承,名字使用全大寫;4修飾引數,不能使引數改變。 使用final關鍵字修飾一個變數時,是指引用變數不能變,引用變數所指向的物件中的內容還是可以改變的。
17下面的程式碼有什麼不妥之處
if(a.equals(“a”){}
a可能為NULL,會報空指標錯誤;改為"a".equals(a)
18.訪問許可權修飾符
作用域public,private,protected,以及不寫時的區別。
作用域 | 當前類 | 同一package | 子類 | 其他package |
---|---|---|---|---|
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
friendly | √ | √ | × | × |
private | √ | × | × | × |
19.排序都有哪幾種方法?
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(氣泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸併排序,分配排序(箱排序、基數排序)。
20.說一下你遇到過的異常
未完待續… 持續更新中…