2019年年初面試問題彙總

前言:最近面試了幾家互聯網公司,有該行業數一數二的,也有創業小公司,將詢問道的知識點和問題羅列一下,以便自己在以後學習中有重點。
一:ArrayList與LinkedList的區別與底層實現
1:ArrayList是實現了基於動態數組的數據結構,數組的特性是可以使用索引的方式來快速定位對象的位置,因此對於快速隨機取得對象的需求,使用ArrayList實現執行效率會比較好。
2:LinkedList是採用鏈表的方式來實現List接口的,對於新增add和remove,只需要對指針就行修改即可,而ArrayList要移動數據來填補被刪除的對象的空間。
總之,業務如果查詢多,就用ArrayList,業務添加或者刪除的多,就應該使用LinkedLis。
二:集合中List和List<?>的區別及作用
1:List通常指的是泛型的一種情況,例如LIst表示String參數的類型的集合。
2: LIst<?>的使用是不確定返回的集合泛型是什麼類型情況下所採用的一種方式,"?" 表示是無限制的通配符,參數可以是任何的類型。
一般List<?>可以做傳入參數用。
不能用來生成對象,錯誤示範:比如:List<?> list = new ArrayList<>; list.add(“name”);
三:HashMap,ConcurrentHashMap, HashTable的區別。
說說Concurrent中的還有哪些類,比如:ConcurrentLinkedDeque,ConcurrentLinkedQueue,ConcurrentSkipListMap,ConcurrentSkipListSet,說說怎麼使用。
四:反射能獲取private屬性嗎?
正常的方式(對象名.屬性名,對象名.方法名)無法訪問屬性和方法,但是反射可以。
1:獲取私有屬性值 getDeclaredField(String fieldName)。
2:獲取私有方法getDeclaredMethod(“fun3”,String.class);
五:JDK8的新特性有哪些。
https://blog.csdn.net/qiubabin/article/details/70256683
六:Mysql相關
1:groupBy和 having的使用,比如:數據庫怎麼查詢平均分大於80分的學生
select … from … groupby…having avg(成績) >80
七:說說mysql/sql server數據庫的索引類型有哪些
MYSQL目前主要有以下幾種索引類型
1:普通索引 2: 唯一索引 3:主鍵索引 4: 組合索引 5: 全文索引
SQL SERVER索引
1:唯一索引 2: 聚集索引 3:非聚集索引
八:哪些情況下sql索引會失效
九:sql優化的幾種方法
十:支持事務的數據庫,都必須滿足4個特性(ACID),事務隔離級別分哪些.
1:原子性 2:一致性 3:隔離性 4: 持久性
事務隔離級別分爲:1:DEFAUL(默認隔離級別) 2: READ_UNCOMMITTED(讀已提交) 3:READ_COMMITED(讀已提交)4:REPEATTABLE_READ(重複讀取)5:SERLALIZABLE(串行化)。
十一:@Tranactional註解詳細用法,裏邊參數的含義。
十二:AOP很重要,面試必問,平時用的少,面試必須詳細準備(兩個切面,如何讓一個執行到另一個的前面)。
十三:MyBatis如何防止SQL注入.
十四:JVM相關知識。
十五:nginx中有哪些配置,如何實現跨域。
十六:線程池中的參數含義。
十七:自定義註解,怎麼創建。
總結:對於JAVA工程師來講,面試官很喜歡問細節,特別是一些參數,很容易忘記,還有一些框架的原理及作用,以及一些覺得難得地方容易跳過,總認爲平時開發中用不到啊,導致面試的時候問的問題束手無策,以後在使用過程中要將其原理搞明白,細節問題搞明白,然後在技術的道路上茁壯成長吧。

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