小菜鳥之面試題下

 1 1 nio是什麼?原理是什麼?解決什麼問題?如何實現?
 2     nio是nonblocked io 非堵塞流
 3     核心類有 Channel/Selector/Buffer
 4     解決高併發狀況下流的阻塞問題
 5 
 6 2.IO/NIO的區別,爲何要用NIO,使用IO中的Buffered..也能實現NIO的面向緩衝,什麼狀況下用NIO?
 7     io面向流/nio面向緩衝的
 8     io是阻塞的/nio是非阻塞的
 9     io沒有選擇器/nio有選擇器
 10     舉例:
 11     就是將100個客人的需求被登記區記錄排序,而後讓10個服務員(線程)到登記區(selector)領需求,完成後再返回領    需求,這樣效率高
 12     文件超大時候,使用nio緩衝區MappedByteBuffer,讀寫性能高,並且是異步的
 13       14       15 3  什麼是同步?什麼是異步?
 16     同步:程序的執行順序和任務的排列順序保持一致的,比如排隊取餐
 17     異步:程序的執行順序和任務的排序順序能夠不一致,由於每一個任務都有一個回調函數,
 18            回調函數將原來的任務分擔出一些功能,給原來的任務減負,程序執行任務耗時縮短    ,好比ajax技術
 19 
 20 參考
 21 
 22 http://blog.csdn.net/zhouhl_cn/article/details/6568119(比喻介紹IO/NIO的區別)
 23 
 24 https://my.oschina.net/u/1010990/blog/192558(區別與比較)
 25 
 26 http://ifeve.com/java-nio-vs-io/
 27 
 28    29 
 30 2.熟悉的排序算法有哪些,快速排序算法的實現原理?
 31 
 32 常見的冒泡排序、選擇排序、插入排序、歸併排序、快速排序算法原理弄明白
 33 
 34 參考:http://blog.csdn.net/ygc87/article/details/7208082
 35 
 36    37 3.HashMap與HashTable與ConcurrentHashMap有什麼區別?HashMap的存儲結構?
 38 ConcurrentHashMap是HashTable的替代品
 39 使用了多個鎖代替HashTable中的單個鎖,也就是鎖分離技術
 40 
 41 HashMap回答是hash結構存儲會繼續問若是相同的值要存儲在指定位置衝突了怎麼解決,衝突的取的時候怎麼取保證數據準確
 42 
 43 hashmap能夠接收null的key和value
 44 
 45 concurrenthashmap不容許key value爲null
 46 
 47 參考:http://www.cnblogs.com/ITtangtang/p/3948786.html
 48 
 49 https://yq.aliyun.com/articles/38213
 50 
 51    52 
 53 4.vector、ArrayList、LinkedList區別及存儲性能。
 54 
 55 ArrayList:數組結構,查詢快,線程不安全,經過工具類Collections中的synchronizedList方法編程線程安全的
 56 Vector:數組結構,查詢慢,線程安全,屬於遺留容器,不推薦使用
 57 
 58 LinkedList:雙向鏈表結構,增刪快,線程不安全
 59 參考:
 60 http://www.jb51.net/article/75093.htm
 61 http://www.cnblogs.com/jiangyi-uestc/p/5682699.html
 62 
 63 5.多線程實現的幾種方式,有什麼區別,通常用哪一個,爲何?
 64 實現Runnable接口、繼承Thread類執行線程無返回值
 65 使用Callable,ExecutorService,Future接口,線程執行都有返回值
 66 參考:http://www.cnblogs.com/felixzh/p/6036074.html
 67 
 68 
 69 6.多線程中線程池怎樣使用及其實現原理?
 70 http://blog.csdn.net/qq_31753145/article/details/50899119
 71 
 72    73 7.volatile關鍵字的做用是什麼?
 74     在成員變量以前添加volatile關鍵字,使其對多線程(任務)具備可見性
 75     爲了線程安全,使用volatile修飾成員變量,sychronized修飾方法或者代碼塊,條件容許,儘可能使用    同步代碼塊,由於有些方法不須要對整個方法加鎖,而是對方法中的關鍵幾步加鎖
 76 
 77     補充:java內存模型中 內存裏的數據具備 可見性/原子性/有序性三大特性
 78         可見性:一個線程修改某個變量的值後,其餘線程能夠看見修改結果
 79         原子性:最小單位,不可分割的,好比 a=1是原子操做(a非long或double類型)
 80             a=a+1;是非原子操做,a是可變的
 81         有序性:多個線程操做共同資源(屬性或方法),必需要先排序後操做
 82 參考:http://www.cnblogs.com/paddix/p/5428507.html
 83 http://www.infoq.com/cn/articles/java-memory-model-4/
 84 
 85 
 86 8.synchronized關鍵字的做用,使用該關鍵字後保證同步了,同步代碼塊與同步方法有什麼區別?
 87     sychronized修飾方法或者代碼塊,條件容許,儘可能使用同步代碼塊,由於有些方法不須要對        整個方法加鎖,而是對方法中的關鍵幾步加鎖,同步方法鎖定的範圍太大,嚴重延長其餘線        程的阻塞時間,下降效率
 88 參考:http://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html
 89 
 90    91 9.多個對象對同步方法必定能保證同步嗎?多個對象對靜態同步方法保證同步嗎?兩個靜態同步方法能保證同步嗎?
 92 
 93 多個 對象對同一個同步方法不能保證同步
 94     主要看須要同步的方法:如果靜態方法,那是類的方法,鎖針對的是類的,獨享一份,能夠保證同步
 95                   如果非靜態方法,那鎖針對的是對象的,一個對象一個同步方法
 96 
 97 參考:http://www.cnblogs.com/hapjin/p/4678773.html
 98 
 99 http://topmanopensource.iteye.com/blog/1738178
100 
101 
102 10.start方法與run方法的區別?
103     start是啓動線程,讓線程進入排隊序列,等待jvm調用run方法
104     run是直接運行方法
105 參考:http://blog.csdn.net/xuxurui007/article/details/7685076
106 
107 11.一個線程能夠屢次start嗎,會報錯嗎?
108     這個會報非法異常IllegalThreadStateException
109 
110 12.線程中經過什麼方式傳輸數據?使用過隊列,爲何要使用隊列,何種狀況下使用隊列?
111     io流方式傳輸數據
112     消息隊列activemq組件
113 
114 13.spring AOP IOC實現原理?
115     ioc是控制反轉
116     aop 是面向切面編程 業務類和通用類進行橫向切割,通用類經過代理的方式實現
117 
118 14.spring中的事務的傳播方式怎樣實現的?
119     事務傳播就是一個業務使用到多個被事務化的方法,如何決定用哪些事務組合
120     Propagation傳播行爲類型有7種,好比propagation_required/propagation_supports等
121          122 15.spring中事務實現的原理?
123     實現PlatformTransactionManager接口,根據不一樣的平臺實現不一樣的事務功能
124     編程式事務 和註解式事務
125   126 16.springmvc實現原理?
127     DispacthServlet/HandlerMapping/HandlerExcutionchain/
128         HandlerAdapter/Handler/ViewResolver/View
129 
130 17.爲何要使用數據庫索引,數據庫索引有哪些,索引的底層原理是什麼?
131     避免全表的遍歷查詢,提升查詢性能
132     建立索引:CREATE INDEX index_name ON table_name
133     刪除索引:DROP INDEX table_name.index_name
134     主鍵索引/惟一索引/複合索引等
135     b+tree的數據結構
136 
137 18.sql查詢緩慢怎麼處理,sql優化方案有哪些,explain用過嗎?
138     創建索引
139     explain語句檢測sql語句,好比explian select * from table_name      140 
141 19.數據庫中的鎖有幾種?
142     好比行鎖、表鎖、讀鎖、寫鎖
143 
144 20.數據庫爲何要使用事務,事務的原理?
145     保證數據庫數據的準確性和安全性
146     一塊兒執行或者一塊兒回滾
147 
148 21.oracle數據庫的分頁怎樣實現?
149     僞列rownum
150     select *  151     from (select t.*,rownum from table_name t)
152     where rownum>=(pageNo-1)pageSize and rownum<=(pageNo)*pageSize;
153 
154 22.數據庫分庫分表的方法,垂直分仍是水平分,根據哪些來分?
155     垂直分庫 按照業務分紅多個數據庫。一個數據庫放客戶表/訂單表 變成 2個數據庫 一個放             客戶表,一個分訂單表,相似 微服務
156     垂直分表
157         按照字段拆分紅多表 c1,c2,c3-->c1,c2和c1,c3
158     水平庫內分表         159     水平分庫分表
160   161 
162 23.solr搜索實現原理、使用的排序算法是什麼,怎樣實現快速查詢?
163      用戶提交請求到solr搜索引擎模塊,搜索引擎模塊事先將數據庫信息導入其中,同時搜索引            擎有增量更新機制。
164     權重排序法
165     創建全文索引
166      167 
168 24.3次握手的原理是什麼?
169     第一次:客戶端向服務端發送請求鏈接包
170     第二次:服務端向客戶端發送請求包和確認包,表示請求收到,而且請求鏈接
171     第三次:客戶端向服務端發送確認收到請求的確認包,兩端鏈接成功
172 
173 25.動態代理實現原理是什麼和動態代理使用的方法、類有哪些?
174     建立一個代理類實現InvocationHandler,重寫invoke(Proxy proxy,Method method,Object             args)方法
175     invoke()/InvocationHandler接口
176 
177 
178 26.webservice hessian區別?
179 
180   181 
182 27.redis的數據結構有哪些?
183 
184 字符串(String)、散列(Hash)、列表(List)、集合(set)、排序集合(sort set)
185 
186   187 
188 28.虛擬機瞭解多少?
189     組成
190     類加載器
191     運行時數據區
192         方法區(類信息/靜態成員變量/常量池)
193         堆
194         程序計數器
195         虛擬機棧
196         本地方法棧
197     本地方法接口
198     執行引擎
199 
200 
201 29.spring默認是單利仍是多例的?
202 
203     默認單例 Singleton /prototype/request/session/global session(scope)
204 
205 
206 30.mybatis中#$的區別?
207 
208 #防止sql注入 ,至關於佔位符,傳入的語句是加單引號的
209 $通常用於傳入數據庫對象,例如傳入表名.  210 
211 區別:#將傳入的數據都當成一個字符串,會對自動傳入的數據加一個雙引號。如:order by #user_id#,若是傳入的值是111,那麼解析成sql時的值爲order by "111", 若是傳入的值是id,則解析成的sql爲order by "id".
212 參考:http://blog.csdn.net/downkang/article/details/12499197/
213 
214 31.經常使用的隊列Queue有哪些?什麼狀況下使用?
215     隊列是一種先進先出(First In First Out,FIFO)的數據結構
216     LinkedList /Vector
217 
218 常見的消息隊列有哪些?各自特色?
219     解決問題:高併發問題
220     其實對於這些消息隊列的產品,每一種都在某一領域佔有一席,雖然ActiveMQ目前在社區已            經不是很活躍,可是其下一代產品Apollo已經問世。ZeroMQ小而美,RabbitMQ大而穩,Kakfa            和RocketMQ快而強勁。
221   222 32.線程的幾種狀態及其切換?
223 
224 建立態 就緒態 運行態 阻塞態 終止態
225 
226   227 33.網頁中常出現的代碼?
228 200 ok  229 403 訪問被禁止  230 404 頁面找不到  231 500 服務器問題
232 參考:http://www.cnblogs.com/ctaixw/p/5075727.html
233 
234 34.數據庫的特性?
235 ACID 原子性 一致性 隔離性 持久性 atomicity/consistency/isolation/durability
236 
237 35.java7 8有哪些新特性?
238     java 7 switch case 支持字符串
239     java8 主要是拉姆達表達式操做集合
240     java9 主要是模塊化
241 
242 36.你知道的線程安全的類有哪些,方法有哪些?
243     StringBuffer /HashTable/ConcurrentHashMap/Vector
244   245 37.數據庫的樂觀鎖和悲觀鎖的原理及使用?
246     樂觀鎖:樂觀的認爲數據記錄可能沒有被修改,使用version方式操做數據庫;
247     語法: update table_name set 某字段=新值,version=version+1 where version=#             {version}and id=#{id}
248     悲觀鎖:悲觀的任務,數據記錄確定被修改了,到處加鎖(表鎖/行鎖/讀鎖/寫鎖),思想同            「sychronized」
249   250 38.用過的中間件有哪些?
251     經常使用的中間件 好比dubbo+zookeeper(分佈式框架)/ rocketmq /redis 等
252 
253 39.若是讓你對外開發一個接口,你會考慮哪些因素?
254      可擴展性/功能單一
255 
256 40.設計數據庫的時候會考慮哪些因素,怎樣去建表?
257     避免數據冗餘
258     數據的完整性
259     表與表的主外鍵關係
260     第一範式:確保字段的原子性
261     第二範式:確保每一個字段都和主鍵有直接關係
262   263 41.對於建表,大部分表中哪些相同的字段會都考慮包含?
264     id/添加人/修改人/添加時間/修改時間
265 
266 42.對GC瞭解多少?
267     Object.finalize()/System.gc() 隱式回收
268      269 43.linux權限分組
270     初建立一個用戶user1,系統默認生成user1組,user1用戶默認是user1組內成員
271     新建一個文件,默認建立者是owner
272     每一個文件對應的owner/group/other能夠設置不一樣權限,
273     權限分類:r/w/x
274     chmod u+a file 改變文件的權限
275     chown hw file 改變文件的owner
276     chgrp root file 改變文件的歸屬組爲root管理員組
277 
278 44.Integer與int的區別,什麼狀況下使用Integer什麼狀況下使用int,Integer是否有緩存?
279     Integer中有一個靜態的內部類IntegerCache,內部類中有個cache[]常量池,分配內存空間時            一個字節
280     當默認值爲0時使用int,通常進行算數運算時使用int
281     默認值爲null時使用Integer 對象,調用方法和屬性時使用
282 
283 45.堆和棧的區別,堆中存放什麼,棧中存放什麼?
284     方法區:類信息/靜態成員變量和方法和代碼塊(不存在靜態的局部變量之說)/常量(常量            池)
285     堆:new對象/
286     棧:局部變量/對象引用/基本數據類型
287   288 
289 46.springmvc中controller線程安全嗎?
290     安全,單例的,前提是Controller內沒有實例變量,如果有實例變量的話,線程不安全
291 
292 47.springmvc中controller方法中爲何不能定義實例變量?
293      線程不安全,一個請求,修改該變量的值,同時會被另外一個請求讀取到,會形成數據錯誤
294 
295 48.union 與union all區別?
296   union是聯合查詢,將兩表查詢結果中的重複記錄合併成一條;
297   union all 是不合並,都保留
298   299 49.count(1) count(5) count(*)有什麼區別,100萬條數據的效率如何?
300     count(*)統計包含null值的行數
301     count(1)統計不包含null值的行數
302     count(1)中的1表示系統自動添加字段名爲1,對應的值也是1的列,而後統計1出現的次數
303     count(5)同理count(1)
304 
305 
306 50.left join right join 區別?
307     left outer join 是以左表爲基準,每條記錄和右表進行匹配,匹配成功時,
308     鏈接成一條數據記錄;匹配不成功的話,右表以null值和左錶鏈接成一條記錄
309 
310 51.inner join與join的區別?
311 
312 無區別。join默認時 inner join
313 
314 
315 52.數據庫設計遵循的三範式?
316 
317  第一範式 :確保字段的原子性
318  第二範式: 確保每一個字段都和主鍵有關
319  第三範式: 確保每一個字段都和主鍵有直接關係
320 
321 53.springmvc中的攔截器的做用?
322     攔截請求和分配請求到指定的控制器 DispatchServlet
323 
324 54.Springmvc攔截器與java過濾器的區別?
325     攔截器依賴spring容器,使用Spring中任何資源,過濾器依賴servlet容器
326     攔截器是經過反射機制實現的,過濾器是經過方法調用
327     filter的生命週期
328         實例化限一次--》init()限一次--》doFilter()反覆屢次--》destroy()
329     servlet的生命週期
330         實例化
331         init()限一次
332         service()提供服務
333         destroy()銷燬
334 參考:http://blog.csdn.net/chenleixing/article/details/44573495
335 
336 55.webservice使用的的什麼語言,使用的什麼協議?     337     wsdl描述語言 soap協議
338 
339   340 56.springmvc註解@pathVariable的做用?
341 
342   @PathVariable 是路徑變量:將URL中的佔位符參數 綁定到控制器中方法的形參中
343    344 
345 57.java虛擬機內存怎麼調整?
346 
347 http://jingyan.baidu.com/article/a948d6516670880a2dcd2e2c.html
348 http://www.cnblogs.com/happyPawpaw/p/3868363.html
349 
350 58 gc的運行原理是什麼?
351     隱式的被調用object.finalize(),進行垃圾回收前的準備工做
352     ; system.gc()
353 
354 59 JVM內存管理機制和垃圾回收機制(基本每次面試都會問,必定要搞得透徹)
355     jvm將內存劃分爲  356         方法區(類信息/靜態域/運行時常量池)
357         堆(new對象、數組)
358         程序計數器
359         虛擬機棧(局部變量、對象引用、基本數據類型)
360         本地方法棧(native方法)
361 60 GC回收機制  哪些內存須要回收?
362     java堆、方法區的內存
363 
364 ——when  何時回收?
365     根據 引用計數法(當引用次數等於0時,回收)
366              可達性分析 (當對象找不到gc root根對象時,回收)
367     來分析是否須要回收
368 
369 ——how  怎麼回收?
370     標誌算法(將找不到根對象的對象作標誌,而後回收)
371     複製算法(將內存一分爲二,這一塊滿了,複製到另外一塊上,而後將這一塊內存回收)
372     分代算法(按照存活時間,將方法區中對象分爲新生代(使用複製算法回收)和老年代(使         用標誌算法回收),堆中的對象稱爲永久代)
373          374 
375 61 JVM內存調優(瞭解是怎麼回事,通常作項目過程當中使用較多)
376     堆大小的設置
377     回收器的選擇
378      379 
380 62  設計模式(熟悉常見設計模式的應用場景,會畫類圖,實在不行背幾個也是有用的)
381     單例模式/工廠模式/代理模式
382 
383 63  多線程(每次都會問,包括線程和進程、線程狀態、線程併發的操做等,須要深刻複習)
384      線程是cpu調用程序的最小單位
385     進程是運行中的動態程序,有一個一個線程構成
386     線程狀態 新生/待運行/運行/阻塞(同步阻塞、wait阻塞、其餘阻塞)/死亡五個狀態
387     線程併發:單核cpu只能一次處理一個任務(線程),也就是一個時間片內處理一個線程
388          389          390 64  JAVA集合類框架(理解框架圖、HashMap、ArrayList、HashSet等的關係和區別,其中HashMap的存儲機制幾乎每次都有問)
391     Collection (List (ArrayList/)
392              Set )
393     Map
394     hashmap是經過數組和單鏈表數據結構實現的
395         默認數組容量是2^4,最大容量2^30;當默認數組容量佔用了3/4時,進行擴容一倍
396         hash算法生成數組下標,8進6退 紅黑樹
397 
398     hashTable是多線程的,hashMap是單線程的
399      400 
401 65 JAVA的異常處理機制(異常的分類、常見的異常有哪些、Try catch finally的使用)
402     throwable (error/exception)
403     空指針異常NullPointerException/類型轉換異常ClassCastException/下標越界異常            ArrayIndexOutOfBoundsException/算術異常ArithmeticException
404 
405 
406 66 Linux基礎(面試筆試中對linux也有必定的要求,建議最好搭建一個linux虛擬機,並練習經常使用的命令)
407     chmod a+rwx folder
408 
409 6七、jvm調優,tomcat調優
410 
411 6八、arraylist和linkedlist區別
412     數組列表  鏈式列表
413 
414 蘇寧金服:
415 6九、問的項目業務,公司業務模塊(無從下口)
416     用戶模塊/訂單模塊/庫存模塊/線路模塊/採購單模塊
417 
418 70、爲何要用redis,相比於如memcached,mongodb有什麼優點?
419     redis是存儲在內存中的,以鍵值對形式存儲;
420     與memcached比較,redis存儲速度快,數據能夠持久化保存在磁盤上;
421     mongodb是面向文檔,存儲json數據居多;
422      423 
424      425 7一、springmvc和struts區別(都不會).
426     mvc基於類中的方法,struts是基於類自己;
427     mvc經過Dispatherservlet處理請求,structs是經過過濾器Filter    (StrutsPreparedAndExcuteFilter)
428      429 7二、用過什麼數據庫,有沒有作過數據庫優化,什麼狀況下要用到索引,好處是什麼,
430     mysql、Oracle、redis、
431     謹慎使用*/子查詢/建立索引/索引字段放在篩選條件的第一位
432 
433 7三、哪些字段適合創建索引,mysql索引底層數據結構瞭解嗎,索引什麼狀況下會失效,聯合索引abc只用了a字        段,索引是否會生效。
434     字段長度小/不重複/數字/
435     b+tree數據結構
436     會生效,遵循最左原則
437         sql語句中where篩選條件中有 or時,會使索引字段失效,經過explain測試
438         解決方案:將or中的全部字段都設置成索引
439         name like '%a'查詢是以%開頭,會使name索引失效
440          441      442 7四、什麼狀況下要用到多線程,爲何要用,好處。啓動多個線程,如何知道他們都運行完畢了。
443     應用場景:tomcat處理多個請求用到多線程
444               處理多個io流是也會用到多線程
445     經過運行多個程序的時候
446     ,提升cpu的利用效率
447     調用CountDownLatch類(計數器)中的countDown()方法
448 
449 7五、jquery要想取某個節點中的第幾個元素怎麼寫,具體哪一個方法?
450     $("ul").find("li").eq(3)
451 
452 蘇寧易購網站購物車消費者業務線:
453 7六、string爲何是不可變的,
454     成員變量:字符數組 char value[] 是final修飾的,不可變的
455 
456 77 sleep和wait區別?
457     sleep自動喚醒,wait須要人工喚醒
458     有鎖的狀況下,wait會釋放鎖,sleep不會釋放鎖
459 
460 78 實現線程的方式,
461     實現Runnable Callable
462     繼承 Thread
463      464 79 run,start區別,
465     start使線程進入可運行狀態,進入線程隊列和其餘線程一塊兒爭奪cpu資源,
466     搶奪成功後,jvm調用run方法
467     run 是調用方法,使線程直接運行
468 
469 80 synchronize實現原理與lock區別?自旋鎖是什麼?
470     實現原理
471     區別
472         sync自動釋放鎖,lock手動釋放鎖
473      474     自旋鎖就是線程在等待鎖的時候,不會進入阻塞狀態,而是無目的的自我旋轉運行。
475         簡而言之,就是自旋的方式得到鎖。
476         好處:減小了運行到阻塞再到運行這一過程產生的內存開銷。
477      478 81 線程池,線程池等待隊列,拒絕策略,死鎖產生緣由。
479      480 82 事務特性,索引失效,mysql有哪些函數。
481     acid 原子性 一致性 隔離性 持久性
482     條件 or  like"#   String類型的沒有加``(撇號)
483 
484 83 http和https區別是什麼?
485     http是明文傳輸,https是密文傳輸
486      487      488 84 get和post區別?
489     get 能被緩存,再次刷新不會從新發送請求,能收藏爲書籤,能保留在瀏覽歷史中
490     get 將參數放在url中傳遞,post放在requestbody中
491     get 傳遞的信息不能超過2048kb,post沒有限制
492     get 傳遞參數是可見的,不安全,post相對安全
493 
494 85 springbean是單例嗎,spring源碼看過嗎,其中的單例bean是怎麼實現的。
495     Springbean單例是指一個Spring容器中只有一個某對象
496     ApplicationContext ac=new ClassPathXmlApplicationContext("");//一個Spring容器
497     ac.getBean("idVal")//得到單例bean
498     經過單例註冊表的方式實現單例的
499 
500 86 redis有支持哪些數據結構。servlet怎麼取前端參數?
501     String hash list set zset
502 
503 87 設計個洗牌算法。
504     2i  %  n+1
505 
506 88 線上購物車須要有個標誌惟一id,有什麼方法實現這個id(uuid,參考jdk中random實現原理,取隨機種子
507     util.UUID  508         String uuid=UUID.randomUUID().toString().replace("-","")
509 
510 89 大數據部門:抽象類接口區別?
511     抽象類不必定有抽象方法,接口要有抽象方法
512     抽象類被子類繼承,接口與實現類之間沒有繼承關係
513     抽象類是對子類中共同屬性和方法的抽離,減小代碼的重複
514     接口是一種功能的規範
515 
516 90 接口中能夠定義成員變量嗎,默認是什麼類型的變量(public static final),接口中方法權限能夠是    private嗎,接口是否能夠寫具體實現(答:jdk8開始能夠)
517     能夠有成員變量,默認是public static final
518     方法權限不能是private,這樣沒有意義
519     接口中能夠是方法的默認實現,從jdk8開始
520 
521 91 重寫重載區別?
522     重寫出如今父類和子類之間,返回類型、方法名、參數列表都要和父類一致,子類編寫方法體
523     重載出如今同類中,與返回類型無關,方法名相同,參數列表不一樣
524 
525 92  線程的實現方式(我已經感受到這個部門有多缺人了)。
526     extends Thread,implements Runnable(run方法無返回值)
527     ,Implements Callable(call方法有返回值)
528      529 93  sql交併集?
530     交集 內鏈接
531     並集  union 聯合鏈接
532     差集  where  字段 not in (sql語句)
533 
534 94  事務隔離級別?
535     isolation級別
536         read_uncommitted  能夠讀取未提交的數據
537         read_committed  提交後讀取:避免髒讀
538         repeatable_read    能夠重複讀:避免髒讀和不可重複讀
539         serializable    避免了髒讀(數據回滾)/不可重複讀(某條記錄修改update)/幻讀(結        果集增減insert/delete)
540 
541 94  能調用另外一個類的私有方法嗎,怎麼作?
542     Method method=B.class.getDeclaredMethod("B的私有方法名");
543     method.setAccessible(true);
544     method.invoke(new B());
545      546 96  若是線程池執行shutdown或shutdownNow,線程池中線程會中斷嗎,會出現什麼異常,?
547     catch處理中該寫些什麼。
548     shutdown和shutdownNow是用來關閉線程池的
549     shutdown:正在執行的任務不停止,執行完畢後停止,準備執行的任務停止
550     shudownnwo: 不管執行中仍是準備執行的任務一概停止
551      552 97  用過哪些concurrent包下的類,說說原子類?
553     ConcurrentHashMap,
554 98  cas操做可能會存在什麼問題。
555 
556 
557 100  treemap中compartor用了什麼設計模式,
558 
559 蘇寧物流部
560 
561 103 servlet和jsp區別,若是沒有servlet,jsp怎麼跟後端交互(大概是這個意思,沒聽太懂,一臉懵逼)。
562     在jsp中使用java腳本實現請求分配
563 
564 104  springmvc怎麼取前端數據,springmvc模式下,若是沒有註解怎麼取前端參數
565 (答:servlet,requset.getParameter。他問,具體在哪怎麼用,也沒聽太懂,懵逼)。
566 
567 105  搭建springmvc項目步驟。
568     DispatherServlet/HandlerMapper/HandlerExecutionChain/HandlerAdapter/ModelAndView/解析和渲    染
569     web.xml中配置前端控制器的攔截器
570     web.xml中引入springmvc的配置文件
571     mvc配置文件中配置 視圖解析器 ViewResolver 解析路徑
572      573 
574 106  spirngmvc controller中定義全局hashmap,它是不是線程安全的,爲何。
575     不安全的,這個成員變量是多個請求共享的,如果一個請求修改變量值,其餘請求讀取到的是修改後
576     的值,線程不安全
577 
578 107  項目中用哪一種方式解析xml的?
579     dom解析/dom4j解析
580 
581 
582 108  servlet生命週期。tomcat在初始化中作了什麼事(答:啓動socket服務端...問:沒了嗎?答:... 很明顯    該回答的還有不少,想了解的應該是我對tomcat的理解程度,以及是否看過tomcat源碼)。
583 
584 109  是否用過Nginx。過濾器和攔截器的區別。
585     過濾器基於servlet容器,攔截器是基於Spring容器的
586     過濾器值初始化一次,攔截器
587 
588 110  項目中有用到緩存嗎,redis有提供了哪些存儲數據結構,redis持久化。
589     redis  590     String/hash/list/set/zset
591     redis能夠持久化,這是優於memcached的一個特色
592 
593 111 說說java內存模型?
594     jmv將內存劃分爲
595         方法區(類信息/靜態域/常量池)
596         堆(new對象,)
597         程序計數器
598         虛擬機棧(對象引用,局部變量,基本數據類型)
599         本地方法棧
600         本地接口
601         執行引擎
602     新生代老年代算法,你說的新生代老年代屬於堆仍是棧,還知道哪些gc算法,建立大對象也是在新生代分配嗎,(答:直接晉升進入老年代,問:具體多大對象,答:超過eden區大小,問:你是否肯定,頓時虛了,後來回去查閱過,我回答的不對,jvm這裏的看點不少,涉及到優化)。新生代的算法,說說minor gc,minor gc觸發條件。老年代用了什麼算法,說說標記整理算法,full gc是否真正回收了廢棄對象。有哪些gc策略。你以爲你的項目中若是須要jvm調優你會注重哪一個分帶的調優,或者說更注重哪一種gc調優,爲何,具體怎麼作(懵逼,隨便吹了下。問:你肯定嗎?  頓時又虛了)。
603 
604 線上系統天天會收到20萬級的數據,一個月會有百萬條,而且還會遞增。你如何設計數據庫
605 (答:分庫分表,創建索引,問:分庫分表對的,還有哪些點,分庫分表按什麼規則分)。
606 
607 
608  112 jdbc鏈接步驟?
609    加載驅動  610     Class.forName("com.mysql.jdbc.Driver");
611    建立鏈接對象
612     String url="jdbc:mysql://localhost:3306/databasename";
613     Connection ctn=DriverMananger.getConnection(url,user,password);
614    對sql語句進行預編譯
615     String sql="select id,name from student where id=?";
616     PreparedStatement ps=ctn.prepareStatement(sql);
617         ps.setInt(1,id);
618     得到結果集
619     ResultSet rs=ps.excutionQuery();
620     遍歷結果集
621     while(rs.next()){
622     Int id=rs.getInt("id");
623     String name=rs.getString("name");}
624     釋放資源
625     rs.close();
626     ps.close();
627     ctn.close();
628 
629 113  statement和preparedStatement區別
630     preparedStatement 有預編譯功能,同時將sql語句中參數以佔位符方式表示;更安全;
631 
632 114  項目中數據庫事務控制大家是怎麼作的?
633     聲明式事務管理,事務加強設置事務隔離等級
634     事務註解方式進行自定義事務
635      636      637 115 TreeMap,TreeSet,HashSet實現原理?
638     treeMap中元素怎麼排序,若是沒實現comparator接口會怎麼樣。序列化做用。
639     hashSet是怎麼去重的?
640 
641 116 dom4j怎麼取節點?
642     將xml文件轉換成樹結構,根據節點找對應的元素/屬性/文本內容,並對它們進行增刪改查
643 
644 117  爲何重寫equals方法最好也得重寫hashcode?
645 
646 
647 118  高併發狀況下怎麼下降服務器壓力
648 
649 
650 119 說說hashmap數據結構
651 
652 
653 120 Lock接口有哪些實現類,說說讀寫鎖。
654 
655 121 jdk8有哪些新增功能?
656 
657 122 spring bean的生命週期,spring的BeanFactory和FactoryBean有什麼區別。
658 
659 
660 ————————————————
661 版權聲明:本文爲CSDN博主「四兩數字先生」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
662 原文連接:https://blog.csdn.net/Java_stud/article/details/91129735
相關文章
相關標籤/搜索