Java經典初級題及答案

1. 抽象方法能否可以使用static修飾?原因?
答案:不能,抽象方法需要被子類重寫,而靜態方法不能被重寫。

2. int 和 Integer 有什麼區別?下面兩個輸出語句打印出的結果是什麼?
int a = 1; int b = 1; println(a == b);
Integer c = 1;Integer d = 1;println(c==d);

答案:int是基本類型,用來表示整型數據,Integer是int對應的包裝類型,可以指向對象。
輸出結果:true true
(Integer內有緩存)

3. 編寫一個方法(addAll()),實現以下如何結果:
addAll(1,8); //結果:9
addAll(5,8,-7); // 結果:6
addAll(6,7,-1,-8) // 結果:4

答案:
public int addAll(int… a){
int sum = 0;
for(int i:a){
sum+=i;
}
return sum;
}

4. 請闡述線程中run方法與start的關係
答案:run方法中是線程啓動後真正要運行的代碼,start方法的作用是用來啓動線程,線程啓動後會自動執行run方法。

5. 說說下面語句是否有錯誤,並指出錯在哪裏
import java.util.List;

List list = new List();

答案:報錯,List是接口,不能直接new對象。

6. 有以下代碼,請寫出輸出結果
int i = 1;
println(i++);
println(++i);
println(i);

答案:1 , 3, 3

7. 有以下程序是否會編譯報錯,如果沒報錯,請描述輸出結果是什麼?如果報錯請寫出理由,並指出如何修改,以及修改後的輸出結果是什麼?
public void test() {
int a;
try{
a = (int)Math.random()*10;
}catch(Exception e){
e.printStackTrace();
}
System.out.println(a);
}

答案:編譯報錯,編譯器認爲輸出變量a的時候可能尚未初始化,去掉try-catch或者給a一個初始值即可,輸出結果爲0

8. 線程中sleep方法與wait方法的區別

答案:sleep是讓當前線程進行休眠,如果這時候線程是拿着鎖對象的,這個鎖對象是【不會】釋放的。
wait是讓當前線程進入等待池,如果這時候線程是拿着鎖對象的,這個鎖對象是【會】釋放的。

9. 請列出數據庫事務的四個特性
答案:
原子性、一致性、隔離性、持久性

10. 現在有t1、t2、t3三個線程,你怎樣保證t2在t1執行完後執行,t3在t2執行完後執行?
答案:
在t3線程中調用t2.join().在t2線程中調用t1.join();

11. 運行時異常與編譯時異常的區別?
答案:
運行時異常在編譯的時候是不會報錯的,只有在運行的時候纔可能會報錯。
編譯時異常在編譯的時候如果不處理,那麼編譯器就會報錯。

12. 以下程序是否會報錯,如果沒有,請寫出結果,有的話請寫出理由。
public class A extends String {
public static void main(String[] agrs) {
int num = 0;
for(int i = 1; i <= 10; i++) {
num += i;
}
System.out.println(num);
}
}

答案:報錯,Stirng類型不能被繼承。

13. 請寫出jdbc編程步驟
答案:
1.加載/註冊去掉類
2.獲得conn對象
3.獲得stmt對象
4.執行sql語句
5.處理結果集rs
6.關閉資源

14. 同步方法和同步代碼塊分別指的是什麼?
答案:給代碼塊加上synchronized關鍵字,那麼就是同步代碼塊
給方法加上synchronized關鍵字,那麼就是同步方法

15. 以下代碼是否會報錯,如果沒有請寫出結果,有請寫出理由
public class A extends Object {
public static void main(String[] agrs) {
short a = 1;
System.out.println(a += 1);
a = a + 1;
System.out.println(a);
}
}

答案:報錯,因爲a = a+1;這句代碼中,a+1的結果int類型,會提示int值無法賦值給short類型變量。

16. JDK8中的函數式接口的特點是什麼
答案:接口中只有一個抽象方法。

17. 有以下代碼:請使用Lambda在進行實現一次,並將代碼進行簡化。
Action a = new Action(){
public int test(int x,int y){
return x+y;
}
};

答案:Action a = (x,y)->x+y;

18. 有以下代碼:編譯是否報錯,如果報錯,請說明原因並進行修改,如果不報錯,請說明代碼的含義。其實Person是Studnet的父類型。
List list = new ArrayList();

答案: 報錯,List不是ArrayList的父類型。
修改:List list = new ArrayList();
List list = new ArrayList();
List<?> list = new ArrayList();

19. 有以下代碼:編譯是否報錯,如果報錯,請說明原因,如果不報錯,請說明代碼的運行結果
public void test() {
int a = 1;
try {
System.exit(0);
}finally {
System.out.println(a);
}
}

答案:不報錯,運行後什麼都不輸出,因爲System.exit(0);直接將JVM退出了。

20. 在java中,數字16,使用2進制、8進制、10進制、16進制分別怎麼聲明
答案:
int a1 = 0b10000;
int a2 = 020;
int a3 = 16;
int a4 = 0x10;

21. java中,A類繼承B類,B類繼承C類,那麼在A中是否可以通過super關鍵字直接調用到C類中的方法?
答案:不能。

22. java中,Map集合如何獲取所有key值的集合,如何獲取所有value值的集合,如何獲取key-value鍵值對的集合?寫出調用的方法即可。
答案:map.keySet(); map.values(); map.entrySet();

23. Mysql的分頁可以使用關鍵字limit來完成,那麼Oracle中的分頁功能可以什麼來完成?
答案:oracle中可以使用rownum來完成分頁功能。

24. 抽象類中是否有構造器,它的作用是什麼?
答案: 有構造器,作用是讓子類調用的。

25. 請寫出jsp的九大內置對象(WEB)
答案:
pageContent
request
session
application
page
response
out
config
exception

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章