1. 程式人生 > >java 基礎 面試題 一

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.說一下你遇到過的異常

未完待續… 持續更新中…