1.String是基本數據類型麽?不是基本數據類型,byte int char long flout duable boolem short 2.int 和integer區別int是基本數據類型,integer 是一個包裝類 3..JAVA中幾種集合(List、Set和Map)的區別?list 和s ...
1.String是基本數據類型麽?
不是基本數據類型,byte int char long flout duable boolem short
2.int 和integer區別
int是基本數據類型,integer 是一個包裝類
3..JAVA中幾種集合(List、Set和Map)的區別?
list 和set 都繼承了colletion 介面
lis里包含arraylist 和linklist ,
區別:arrarylist 採用數組形式保存對象的,對象在連續的位置中,缺點就是插入刪除非常麻煩,
linklist 雙鏈表,對象存在獨立的空間中,保存下一個連接的索引,但查詢非常麻煩,從第一個索引開始擦尋。
4.HashMap和Hashtable的區別?
HashMap線程不安全,效率高。可以存儲null鍵值對,鏈表中的元素超過了8個後, 會將鏈表轉換為紅黑樹
Hashtable線程安全(每個方法中都加入了synchronized),效率低,不可以存儲null鍵值
5.list中常用的方法
remove (移除) add ,adds 添加數組
6.public,friendly,protected,private的區別?
public許可權最大
protect不同包的其他類不可用
friendly子類不能調用
(什麼都不寫的時候) private只能本類調用
7.方法重載和重寫的區別?
重載在一個類裡面方法名相同,參數不同的兩個方法
重寫是在不同類裡面的而且必須是集成關係,返回值類型和參數必須相同
8.equals方法跟==有什麼區別
equals ():用來檢測兩個對象是否相等,即兩個對象的內容是否相等。.
==:用於比較引用和比較基本數據類型時具有不同的功能
9.靜態變數和實例變數的區別
類的靜態變數在記憶體中只有一個,而實例變數取決於類的實例。
每創建一個實例,就會生成一個實例變數,而且生命周期也不同
10.final,finally,finalize,friend的區別?
friend表示在碧昂輛中沒有任何修飾符
final是一個關鍵字,定義完變數就不能改變了,
finally是處理 異常用到的,
finalize是一個垃圾回收器準備釋放記憶體方法
11.String能否被繼承?
不能被繼承,因為它是final,常量
12.Final類有什麼特點?
屬性常量 方法不可以overridding類 不可以繼承
13.異常和錯誤的區別
Error表示系統級的錯誤和程式不必處理的異常,
Exception表示需要捕捉或者需要程式進行處理的異常
14..super()與this()的區別?
this調用本類的對象,super()調用父類的對象。
15.java的核心優勢是什麼?
電腦和電腦之間通過互聯網連在了一起,但是沒個電腦的系統都不一樣,
這個時候我們需要一個語言可以在任何的系統上面跑,就出了java語言跨平臺麽,
而且java發展悠久所以java遇到的問題比較完善。
16.解釋一下線程和進程?
一個程式員需要最少需要一個進程,而一個進程最少需要一個線程,所以線程是程式執行的最小單位。
17.普通類和抽象類有哪些區別?
普通類不能包含抽象⽅法,抽象類可以包含抽象⽅法。
抽象類不能直接實例化,普通類可以直接實例化。
18.String,Stringbuffer,StringBuilder的區別
String:
String類是一個不可變的類,一旦創建就不可以修改。
String是final類,不能被繼承
String實現了equals()方法和hashCode()方法
StringBuffer:
繼承自AbstractStringBuilder,是可變類。
StringBuffer是線程安全的
可以通過append方法動態構造數據。
StringBuilder:
繼承自AbstractStringBuilder,是可變類。
StringBuilder是非線性安全的。
執行效率比StringBuffer高。
19.Java獲取反射的三種方法:
第一種,使用 Class.forName 靜態方法。
第二種,使用類的.class 方法
第三種,使用實例對象的 getClass() 方法。
20.Java 中 hash 值的含義
hash 值主要是用來在散列存儲結構中確定對象的存儲地址的,提高對象的查詢效率,如HashMap、
HashTable等;
如果兩個對象相同,那麼這兩個對象的 hash 值一定相等;
如果要重寫對象的 equals 方法,那麼儘量重寫對象的 hashCode 方法;
兩個對象的 hash 值相等,並不一定表示兩個對象相同。
21.hashmap 原理
數據結構是數組和鏈表的結合,key和value值都允許為空,key為null的鍵值對永遠放在以table【0】
為結點的鏈表中。
22.java多線程中sleep和wait的4個區別
sleep是線程中的方法,但是wait是Object中的方法,sleep方法不會釋放lock,但是wait會釋放,
而且會加入到等待隊列中。
sleep不需要被喚醒,但是wait需要
23.MVC
MVC是一種設計模式,將軟體分為三層,分別是模型層,視圖層,控制器層。其中模型層代表的是數據,
視圖層代表的是界面,
控制器層代表的是邏輯處理,是連接視圖與模型之前的橋梁。降低耦合,便於代碼的維護
24什麼是多線程?
多線程是指程式中包含多個流,即在一個程式中可以同時進行多個不同的線程來執行不同的任務
25.多線程的優劣?
優點:可以提高CPU利用率, 提高了程式的效率, 單個程式可以創建多個不同的線程來完成各自的任務
缺點:線程也是程式,需要占據記憶體.多線程需要協調和管理,所以需要CPU跟蹤線程
26.併發和並行的區別
併發:多個任務在同一個CPU上,按照細分的時間片段輪流交替執行.
並行:單位時間內,多個處理器或者多核處理器同時處理多個任務,真正意義上的同時進行
27.創建線程的四種方式
繼承Thread類
實現Runnable介面
實現Callable介面
Executors工具類創建線程池
28.run()方法和start()方法有什麼區別
start()方法用於啟動線程, run()方法用於執行線程的運行代碼, run()可以反覆調用, 而start() 方法只能被調用一次
調用start()方法啟動線程可以使線程進入就緒狀態, 等待運行; run()方法只是thread的一個普通方法調用, 還是在主線程里執行.
29.sleep()和wait()有什麼區別
相同:兩者都可以使線程進入等待狀態
不同:sleep()是Thread類下的靜態方法, wait()是Object類下的方法
sleep()不釋放鎖, wait()釋放鎖
wait()常用語線程之間的通信, sleep()常用語暫停執行
30.IO流是用來處理設備之間傳輸數據,下載文件,上傳文件
輸入流:程式從輸入流中讀取數據,
輸出流:程式向輸出流寫入數據。程式將數據輸出到外界
31.SpringMVC運行原理
客戶端請求提交到DispatcherServlet
由DispatcherServlet控制器查詢HandlerMapping,找到並分發到指定的Controller中。
Controller調用業務邏輯處理後,返回ModelAndView
DispatcherServlet查詢一個或多個ViewResoler視圖解析器,找到ModelAndView指定的視圖
視圖負責將結果顯示到客戶端