java后台面试自我介绍_java腾讯远程面试后台研发岗面试题分享
分享一個騰訊遠程面試java后臺研發崗位的面試經過,簡單來說,自我介紹、經歷分享、問題解答以及敲代碼。
1. 上來先自我介紹。
2. 講講自己的項目經驗。
3. ArrayList和LinkedList有什么區別?
主要區別:ArrayList是Array(動態數組)的數據結構,而LinkedList是Link(鏈表)的數據結構。隨機訪問(get和set)時,ArrayList優于LinkedList;新增和刪除操作,LinedList比較占優勢。
4. 多線程的內容,Java中有很多線程安全的數據結構,他們怎么樣實現的?
所謂 線程安全 就是:一段操縱共享數據的代碼能夠保證在同一時間內被多個線程執行而仍然保持其正確性的,就被稱為是線程安全的。
線程安全是保證執行業務邏輯正確的基本前提,為此在多線程開發中,我們盡量采用能保證線程安全的數據結構。
JDK已經為大家準備好了一批好用的線程安全容器類,可以大大減少開發工作量,例如HashTable,ConcurrentHashMap,CopyOnWriteArrayList,CopyOnWriteArraySet,ConcurrentLinkedQueue,Vector,StringBuffer等。
5.synchronized鎖
synchronized是java中并發編程最重要的關鍵字之一。
synchronized常用的方式有以下四種public?class?SyncTest{
public?synchronized?void?methodA(){}
public?void?methodB(){
synchronized(this){}
}
public?void?methodC(){
synchronized(xxx.class){}
}
public?static?synchronized?methodD(){}
}
前兩種鎖的是實例對象,即對象鎖,后兩種鎖的是類對象,即類鎖(類鎖只是個概念,因為本質鎖的本質還是對象)
6. 現場寫代碼,單鏈表反轉。
鏈表翻轉這個題目,最直接的方法是以3個指針為單位,變換指針的方向,是on,o1的算法。如果要求不能變換指針,有一個空間n/2,時間3/2
n的方法就是兩個指針同時走,p2走2步時p1走一步,p1每走一步就把next壓棧,p2走到底時p1應該走到1/2,然后p1開始一步一步走,每走一步就pop一個指針做swap
value。更多java面試題。
總結
以上是生活随笔為你收集整理的java后台面试自我介绍_java腾讯远程面试后台研发岗面试题分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java单行字符_十个便捷的单行代码编程
- 下一篇: java ssm使用存储过程_java调