java面试题_度小满一面_java面经汇总
題目來自牛客,? 題的答案都是我個(gè)人理解的,僅僅只作為復(fù)習(xí)用.因個(gè)人水平有限,不合理的地方請多多指正.
?
1 給n個(gè)1-100間的數(shù)怎么排序?計(jì)數(shù)排序時(shí)間空間復(fù)雜度
歸并排序,快速排序,插入排序,冒泡排序,選擇排序 ,桶排序(沒用過)
2.圖如何存儲(chǔ)?
一、鄰接矩陣法? 二、鄰接鏈表法?三、十字鏈表法?四、多重鏈表法
3.如何判斷圖是否有環(huán)?時(shí)間復(fù)雜度?
4.說說list,set,map之間的區(qū)別,哪些能存null
這是個(gè)大問題,建議詳細(xì)學(xué)習(xí)下,集合涉及很多考點(diǎn) 敲黑板的重點(diǎn)
- List(對付順序的好幫手): 存儲(chǔ)的元素是有序的、可重復(fù)的。
- Set(注重獨(dú)一無二的性質(zhì)): 存儲(chǔ)的元素是無序的、不可重復(fù)的。
- Map(用 Key 來搜索的專家): 使用鍵值對(kye-value)存儲(chǔ),類似于數(shù)學(xué)上的函數(shù) y=f(x),“x”代表 key,"y"代表 value,Key 是無序的、不可重復(fù)的,value 是無序的、可重復(fù)的,每個(gè)鍵最多映射到一個(gè)值。
?
5.collection與Collections的區(qū)別呢?
Collection 是一個(gè)集合接口(集合類的一個(gè)頂級(jí)接口)list,set 都實(shí)現(xiàn)與它。它提供了對集合對象進(jìn)行基本操作的通用接口方法.
Collections則是集合類的一個(gè)工具類/幫助類,其中提供了一系列靜態(tài)方法,用于對集合中元素進(jìn)行排序、搜索以及線程安全等各種操作。
6.jvm內(nèi)存模型,哪些會(huì)oom?
jvm中存在五個(gè)區(qū)域(堆區(qū),方法區(qū),本地方法棧,虛擬機(jī)棧,程序計(jì)數(shù)器)
堆
隨著對象的增多且與GC Roots都有可達(dá)路徑
–》堆溢出(OOM): -Xmx 設(shè)置堆max大小 -Xms設(shè)置堆初始大小
–》 內(nèi)存泄漏 :長生命周期的obj持有短生命周期的obj的引用,例如長生命周期的單例對象持有一個(gè)無用對象。
(2)虛擬機(jī)棧
隨著棧幀的增加
–》棧溢出(OOM):無法申請足夠的內(nèi)存 -Xss 設(shè)置棧大小
–》stackOverFlowError: 一般為遞歸造成 線程請求棧深度 > JVM允許深度
(3)方法區(qū)
1.8改為元空間 至于本地內(nèi)存有關(guān) -XX:MaxPermSize 設(shè)置大小
常見OOM原因:
1.一次性加載的數(shù)據(jù)量過大,如一次從數(shù)據(jù)庫去除過多數(shù)據(jù)或從excel讀取過多數(shù)據(jù)
2.集合類中有對對象的引用,使用完后為清空,是的jvm不能回收
3.代碼中存在死循環(huán)或者循環(huán)中產(chǎn)生過多重復(fù)的對象實(shí)體
4.第三方插件中的bug
5.啟動(dòng)參數(shù)設(shè)置過小
?
7.如何使虛擬機(jī)棧oom?
用new不停申請內(nèi)存就可能會(huì)發(fā)生
8.Linux常用的命令有哪些?
ls ,rm, mkdir, ps, grep , tail ,??cd ,find ,?chmod (權(quán)限)
9怎么用mkdir創(chuàng)建多級(jí)目錄?
?mkdir? -p? aaa/bbb/ccc? ?
10.less和more的區(qū)別,head和tail的區(qū)別
?less可以按鍵盤上下方向鍵顯示上下內(nèi)容,more不能通過上下方向鍵控制顯示
tail命令和head 命令非常相似,只不過它是打印文件的尾部內(nèi)容,head打印的是頭部內(nèi)容
11.用什么命令交換文本文件中的兩行
不會(huì)
12.chmod改權(quán)限的參數(shù)777
chmod 777? 文件或目錄? ??即可修改權(quán)限
13.TCP/IP模型
14.應(yīng)用層有哪些協(xié)議?
(1)域名系bai統(tǒng)(Domain Name System,DNS):用于實(shí)現(xiàn)du網(wǎng)絡(luò)設(shè)備名字到IP地址映射的網(wǎng)絡(luò)服務(wù)zhi。
(2)文件傳dao輸協(xié)議(File Transfer Protocol,FTP):用于實(shí)現(xiàn)交互式文件傳輸功能。
(3)簡單郵件傳送協(xié)議(Simple Mail Transfer Protocol, SMTP):用于實(shí)現(xiàn)電子郵箱傳送功能。
(4)超文本傳輸協(xié)議(HyperText Transfer Protocol,HTTP):用于實(shí)現(xiàn)WWW服務(wù)。
(5)簡單網(wǎng)絡(luò)管理協(xié)議(simple Network Management Protocol,SNMP):用于管理與監(jiān)視網(wǎng)絡(luò)設(shè)備。
(6)遠(yuǎn)程登錄協(xié)議(Telnet):用于實(shí)現(xiàn)遠(yuǎn)程登錄功能。
15.http與https的區(qū)別
HTTP特點(diǎn):
HTTPS特點(diǎn):
基于HTTP協(xié)議,通過SSL或TLS提供加密處理數(shù)據(jù)、驗(yàn)證對方身份以及數(shù)據(jù)完整性保護(hù)
16.加密算法有哪些?具體的對稱和非對稱的有哪些
MD5算法?SHA1算法? HMAC算法?RSA算法
對稱加密算法?是應(yīng)用較早的加密算法,又稱為?共享密鑰加密算法。
非對稱加密算法,又稱為?公開密鑰加密算法。它需要兩個(gè)密鑰,一個(gè)稱為?公開密鑰?(public key),即?公鑰,另一個(gè)稱為?私有密鑰?(private key),即?私鑰。
17線程和進(jìn)程的區(qū)別,協(xié)程是什么?
1.進(jìn)程是操作系統(tǒng)資源分配的基本單位,而線程是處理器任務(wù)調(diào)度和執(zhí)行的基本單位。還存在資源開銷、包含關(guān)系、內(nèi)存分配、影響關(guān)系、執(zhí)行過程等區(qū)別...
2.同一進(jìn)程的線程共享本進(jìn)程的地址空間和資源,而進(jìn)程之間的地址空間和資源相互獨(dú)立。
協(xié)程是比線程更小的一種執(zhí)行單元,你可以認(rèn)為是輕量級(jí)的線程
?
18.進(jìn)程通信方式
IPC的方式通常有管道(包括無名管道和命名管道)、消息隊(duì)列、信號(hào)量、共享存儲(chǔ)、Socket、Streams等。
總結(jié)
以上是生活随笔為你收集整理的java面试题_度小满一面_java面经汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019八泉峡第二届国际露营大会即将开启
- 下一篇: 微服务架构总结性介绍 (深度好文)