最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Java面試基礎(chǔ)118問(wèn)

2023-02-17 17:23 作者:鹿是不是鹿  | 我要投稿

1:Java特點(diǎn)

健壯,面向?qū)ο?開(kāi)源,跨平臺(tái)

2:跨平臺(tái)實(shí)現(xiàn)

jvm

3:jdk,jre,jvm關(guān)系

jdk>jre>jvm

4:Java一次編寫,處處運(yùn)行,如何實(shí)現(xiàn)

字節(jié)碼

5:標(biāo)識(shí)符

不以數(shù)字開(kāi)頭,區(qū)分大小寫的可由字母,數(shù)字,_,$組成的名稱

6:關(guān)鍵字

共53,包含保留字const,goto,常用40

7:注釋

單行,多行,文檔

8:基本數(shù)據(jù)類型

byte,short,char,int,long,float,double,boolean,分占1,2,2,4,8,4,8,1字節(jié),默認(rèn)值0,0,0,0L,0.0f,0.0d,false,char無(wú)默認(rèn)值

9:基本類型轉(zhuǎn)換

大到小,顯式,強(qiáng)轉(zhuǎn),小到大,隱式,直轉(zhuǎn)

10:運(yùn)算符

算數(shù),比較,邏輯,三元,賦值

11:分支結(jié)構(gòu)

if,switch

12:循環(huán)結(jié)構(gòu)

for,foeach,while,dowhile

13:break,continue區(qū)別

終止,跳出

14:&,&&,|,||區(qū)別

前者都執(zhí)行,后者有一滿足則不再往后執(zhí)行,&&都為true則為true,有一false,則false,||相反

15:for,while,do while區(qū)別

都可互相替代,但while,do while 可不知循環(huán)起始位置,do while最少執(zhí)行一次

16:重載

方法名相同,參數(shù)列表不同方法

17:數(shù)組

動(dòng)靜兩種初始化方式,下標(biāo)從0開(kāi)始,長(zhǎng)度一但固定不可變

18:數(shù)組工具類

Arrays,常用方法toStrng,sort,copyOf

19:面向?qū)ο?/span>

封裝,繼承,多態(tài),對(duì)象與類例如貓與藍(lán)貓的關(guān)系

20:封裝

private,隱藏我想隱藏的信息

21:繼承

extends,子承父,單一繼承,且要重寫父所有抽象方法,否則則為抽象類

22:多態(tài)

父類引用指向子類對(duì)象,編譯看左,運(yùn)行看右,提高擴(kuò)展可維護(hù)性

23:匿名對(duì)象

無(wú)名對(duì)象,只能調(diào)用一次

24:構(gòu)造方法

與類同名,無(wú)參,含參兩種,可重載

25:構(gòu)造,局部,靜態(tài)代碼塊及構(gòu)造方法

代碼塊目的抽取共性,一般起始位置書寫,加載順序,靜>構(gòu)>構(gòu)方>局

26:this,super區(qū)別

本類,父類調(diào)用

27:重寫,重載區(qū)別

重寫參與父一致,重載則不同

28:static

所修飾為全局共享資源,一經(jīng)創(chuàng)建,永久存儲(chǔ)

29:final

所修飾類,方法,屬性為最終類,方法,常量,不可繼承,重寫,修改

30:向上,向下轉(zhuǎn)型

父類引用指向子類對(duì)象,子類引用指向子類對(duì)象

31:異常

error,exception,后者為可解決錯(cuò)誤,常見(jiàn)解決捕獲,拋出,try catch throw throws

32:抽象類

典型就是包含不含方法體的抽象方法的類,均用abstract修飾,方便子類繼承重寫,不可實(shí)例化,但可包含構(gòu)造,普通,靜態(tài)等方法和變量,也可全為普通方法

33:接口

只有抽象方法和常量的類,打破單繼承,方法默認(rèn)拼接public abstract,變量默認(rèn)拼接 public static final,inteface修飾,類與接口實(shí)現(xiàn)關(guān)系implements,接口與接口繼承關(guān)系,可多繼承,多實(shí)現(xiàn),也可繼承的同時(shí)多實(shí)現(xiàn)

34:抽象類 接口區(qū)別

都不能實(shí)例化,最大局別抽象類可有變量,構(gòu)造方法且接口打破了單繼承局限

35:設(shè)計(jì)模式

單例設(shè)計(jì)模式,sngleton,保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)全局訪問(wèn)點(diǎn),

常見(jiàn)餓漢,只有一個(gè)實(shí)例,線程絕對(duì)安全,一開(kāi)始就初始化,懶漢,第一次調(diào)用或者需要時(shí)才創(chuàng)建對(duì)象,非線程安全,延遲初始化,雙檢鎖,線程安全,延遲初始化

36:開(kāi)閉原則OCP

只能擴(kuò)展,不能修改

37:object

頂級(jí)父類,常用equals,toString等方法

38:String

字符對(duì)象,常用length,substring,equals等方法

旗下兩個(gè)高效拼接方式

StringBuilding,StringBuffer

前者效率更高,后者線程更安全

39:包裝類

提供更加豐富的方法調(diào)用,除int,char 為Integer,Character外,其余均首字母大寫,數(shù)字包裝類抽象父類Number,xxxValue用來(lái)進(jìn)行數(shù)字類型轉(zhuǎn)化

40:Date

日期類,常用getTime,getMonth,日期工具SimpleDateFormat

41:自動(dòng)拆箱,裝箱

包裝到基本的相互轉(zhuǎn)換

42:BigDecimal,BigInteger

超級(jí)精確小數(shù),超大整數(shù)運(yùn)算,常用方法加減乘除

IO流

字節(jié),字符輸入輸出流,字節(jié)以流的方式,以組傳輸,字符一個(gè)一個(gè)傳輸,效率比字節(jié)低,且數(shù)據(jù)類型只能是字符,字節(jié)則可傳輸多種數(shù)據(jù)類型,字節(jié)輸出outputStream,fileoutputStream,bufferedoutputStream,字節(jié)輸入,inputstream,fileinputstream,bufferedinputstrean

編碼轉(zhuǎn)換流之字節(jié)字符轉(zhuǎn)換流 ,inputstreamreader

字符輸出流writer,filewriter,bufferedwriter,字符輸入流,reader,filereader,bufferedreader,編碼轉(zhuǎn)換流之字符字節(jié)轉(zhuǎn)換流outputstreamwriter

43:序列化,反序列化

數(shù)據(jù)永久存儲(chǔ)到磁盤,及從磁盤取出,序列化必須要實(shí)現(xiàn)Serializable接口,objectoutputstream,將Java的基本數(shù)據(jù)類型和圖形持久存儲(chǔ),Objectinputstream對(duì)持久存儲(chǔ)的數(shù)據(jù)的各類數(shù)據(jù)進(jìn)行讀取

44:flush,close區(qū)別

刷新但數(shù)據(jù)仍在流里,釋放

45:數(shù)組,鏈表區(qū)別

查詢,增刪快

46:泛型

約束集合,方法,屬性的數(shù)據(jù)類型,編譯后消失,常見(jiàn)聲明E,T,K,V,N,?

47:類型擦除

只存在編譯期,編譯后消失

48:集合

collection下子接口list,set(無(wú)序),子類arraylist,linkedlist,hashset,treeset,map接口與collection平級(jí),hashmap,treemap

collections工具類 常用方法 sort,max,min,addAll

49:集合和數(shù)組區(qū)別

主要集合長(zhǎng)度可變,數(shù)據(jù)類型多樣,這些都是數(shù)組做不到的

50:進(jìn)程

正在運(yùn)行的程序,獨(dú)立,動(dòng)態(tài),并發(fā)

51:線程

特性隨機(jī)性,系統(tǒng)能夠調(diào)度的最小單位,包含在進(jìn)程當(dāng)中,一個(gè)進(jìn)程包含多個(gè)線程,便是多線程程序

52:線程狀態(tài)

五種,新建,可運(yùn)行狀態(tài),運(yùn)行狀態(tài),終止?fàn)顟B(tài),阻塞狀態(tài)

產(chǎn)生阻塞原因 等待,同步,其他阻塞

53:多線程創(chuàng)建方式

常見(jiàn)繼承實(shí)現(xiàn)thread,runnable,callable,pool

54:同步鎖

synchronized關(guān)鍵字 ?解決線程安全問(wèn)題 可自動(dòng)釋放鎖

55:注解

元注解,jdk注解,自定義注解

56:反射

通過(guò)映射獲取字節(jié)碼中的資源,類似許愿燈,不僅可以通過(guò)反射獲取公開(kāi)資源也可通過(guò)暴力反射獲取和修改私有資源,通過(guò)getDeclaredxxx和setaccessible來(lái)使私有屬性或方法可以被訪問(wèn)或調(diào)用,newInstance來(lái)反射創(chuàng)建新實(shí)例,執(zhí)行無(wú)參/有參構(gòu)造

57:內(nèi)部類

類中類,局部?jī)?nèi)部類可調(diào)外部類資源,外部類則必須創(chuàng)建內(nèi)部類對(duì)象方可,匿名內(nèi)部類,例如匿名對(duì)象后面加個(gè){}形式,無(wú)名內(nèi)部類

59:socket通信

會(huì)話機(jī)制,本質(zhì)還是socekt間io流的傳輸,也稱套接字編程,一般分為服務(wù)端,客戶端兩個(gè)機(jī)制

60: printstream打印流

io流中自己打印流,默認(rèn)為標(biāo)準(zhǔn)輸出,既顯示器,可用print,或底層write打印,打印流不能輸入

61:properfies,yml文件

優(yōu)先級(jí)前者高

62:網(wǎng)絡(luò)各層所對(duì)應(yīng)的協(xié)議

應(yīng)用層 http,dns,傳輸層 tcp 網(wǎng)絡(luò)層 ip,物理,數(shù)據(jù)鏈路層link

63:dos命令備份和恢復(fù)數(shù)據(jù)庫(kù)

mysqldump,source命令

64:并發(fā)編程

多個(gè)任務(wù)重疊時(shí)間執(zhí)行的架構(gòu)

65:高并發(fā)

重疊時(shí)間處理海量任務(wù)的能力,標(biāo)準(zhǔn)QBS,每秒響應(yīng)請(qǐng)求量,吞吐量,平均響應(yīng)時(shí)間,并發(fā)數(shù)用戶,也是最大承載量,高并發(fā)就是多線程加鎖的設(shè)計(jì),提高并發(fā)垂直,水平擴(kuò)展兩種方式,垂直就是提升硬件,redis緩存,異步請(qǐng)求增加吞吐,nosql提升數(shù)據(jù)庫(kù)訪問(wèn)能力等,水平就是加數(shù)量,集群分布式都是方案,包括針對(duì)數(shù)據(jù)庫(kù)的主從分離,分庫(kù)分表,讀寫分離等設(shè)計(jì),集群就是多雇幾個(gè)廚師炒菜,分布式就是多雇幾個(gè)幫手

66:juc,forkjoin

jdk提供的并發(fā)編程工具包,loke重入鎖就是juc下的工具,forkjoin,jdk1.7后出現(xiàn)的并發(fā)編程工具集,比juc更成體系

67:sleep,wait區(qū)別

sleep會(huì)自動(dòng)釋放鎖,wait不會(huì)

68:synchronized

非公平鎖,修飾靜態(tài)方法鎖類,實(shí)例鎖對(duì)象,自動(dòng)解鎖

69:loke鎖

默認(rèn)非公平鎖,實(shí)現(xiàn)類reentryLoke,手動(dòng)上鎖,解鎖

70:線程安全的集合

vector,collections.synchronized,

71:讀寫鎖

readwritelok,實(shí)現(xiàn)類reentrantwritelokee,為實(shí)現(xiàn)線程同步,可以為讀和寫設(shè)置不同的鎖,需要手動(dòng)上鎖解鎖

72:volatile關(guān)鍵字

jvm輕量同步機(jī)制,保證線程讀取到最新值

73:calendar

完成日期時(shí)間的邏輯運(yùn)算,緩沖流是為了防止頻繁訪問(wèn)硬盤所造成的損傷,Java與硬盤之間

74:MySQL常用數(shù)據(jù)庫(kù)引擎

innodb,memmery,mylsam,innodb底層b+樹且支持事務(wù),mylsam不支持事務(wù),memmery是存在內(nèi)存里面的

75:>>>,>>,<<

邏輯右移,無(wú)左移,算數(shù)右移動(dòng),算數(shù)左移,邏輯移動(dòng)結(jié)果不變,算數(shù)右移/2,除不盡負(fù)數(shù)正數(shù)均往往小取整,算數(shù)左移*2

76:枚舉

enum,定義通常的固定方法或常量,如日期,下拉框選項(xiàng)等

77:string stringbuffer區(qū)別

string不可變,stringbuffer可變,也是一個(gè)高效的字符拼接方式

78:hashmap,hashtable,treemap區(qū)別

hashmap,hashtable都是無(wú)緒的treemap有序,hashtable線程安全不支持null值鍵,hashmap線程不安全,支持null鍵和多個(gè)null值,treemap順序訪問(wèn),key不能為null

79:schronized,reenloke區(qū)別

關(guān)鍵字,loke鎖的實(shí)現(xiàn)類,前者自動(dòng)釋放鎖,后者需要手動(dòng)

80:線程安全的list,vector,synchronizedList,copyonwriterarraylist

81:Java虛擬機(jī)的內(nèi)存劃分

程序計(jì)數(shù)器,棧,堆,常量池,方法區(qū),本地方法棧

82:hashmap數(shù)據(jù)結(jié)構(gòu)

jdk1.7數(shù)組+鏈表,1.8數(shù)組+鏈表+紅黑樹,鏈表節(jié)點(diǎn)>8,數(shù)組>64轉(zhuǎn)紅黑樹

83:紅黑樹

查詢快,左側(cè)節(jié)點(diǎn)數(shù)小于根節(jié)點(diǎn),右則大于根節(jié)點(diǎn),,查詢數(shù)小于根節(jié)點(diǎn)左側(cè)查,大于右側(cè)查

84:遞歸算法

大部分算法其實(shí)都是遞歸算法,優(yōu)點(diǎn)整潔,實(shí)際開(kāi)發(fā)計(jì)算效率要求不高會(huì)考慮用遞歸

85:NoclassDefoundError 和calssnotFoundException的區(qū)別

前者錯(cuò)誤,后者異常,異??梢蕴幚?錯(cuò)誤不行

86:Java里面強(qiáng)引用,軟引用,弱引用,虛引用

強(qiáng)是普通對(duì)象引用,軟是弱一些的,可避免一些垃圾收集,弱可用來(lái)構(gòu)建非特定的約束關(guān)系,虛引用并不能訪問(wèn)一些對(duì)象,屬于一種機(jī)制

87:StringBuffer,stringbuilder應(yīng)用場(chǎng)景

單線程大量緩存數(shù)據(jù)可用builder,安全用buffer

88:jvm新生代,老年代

所謂的新生代和老年代是針對(duì)于分代收集算法來(lái)定義的,新生代又分為Eden和Survivor兩個(gè)區(qū)。加上老年代就這三個(gè)區(qū)。數(shù)據(jù)會(huì)首先分配到Eden區(qū) 當(dāng)中(當(dāng)然也有特殊情況,如果是大對(duì)象那么會(huì)直接放入到老年代(大對(duì)象是指需要大量連續(xù)內(nèi)存空間的java對(duì)象)。),當(dāng)Eden沒(méi)有足夠空間的時(shí)候就會(huì) 觸發(fā)jvm發(fā)起一次Minor GC。如果對(duì)象經(jīng)過(guò)一次Minor GC還存活,并且又能被Survivor空間接受,那么將被移動(dòng)到Survivor空 間當(dāng)中

89:函數(shù)式接口

有且只有一個(gè)抽象方法的接口

90:lambda表達(dá)式

三要素,形參(),箭頭->箭頭指向后面要做的事情 ,代碼塊{方法的內(nèi)容

91==,equals區(qū)別

==比較數(shù)值,比較引用類型才是地址,equals比較的地址,重寫后比較的大小

92:String,Stringbuffer,Stringbuilder區(qū)別

運(yùn)行速度上Stringbuilder>Stringbuffer>String

String 少量字符拼接

Stringbuffer 線程安全

Stringbuilder 單線程大量緩存操作

93:同步,異步,并發(fā),并行

同步排隊(duì),異步搶,并發(fā)也是集中搶cpu資源,并行一個(gè)cpu負(fù)責(zé)一個(gè)線程

94:流程控制語(yǔ)句

break,continue,return

95:String常用方法:

cahrAt,substring,equals,length

96:jdk8新特性

lambda表達(dá)式,方法引用,函數(shù)式接口,Stream api,修改了日期時(shí)間類,還內(nèi)置了base64編碼解碼集

97:異常結(jié)構(gòu)

throwable 下error exception

erroe不接解決錯(cuò)誤,內(nèi)存溢出,線程死鎖等,exception為可處理錯(cuò)誤,又分為非運(yùn)行時(shí)錯(cuò)誤和運(yùn)行時(shí)錯(cuò)誤,非運(yùn)行時(shí)錯(cuò)誤包含IO流錯(cuò)誤,sql錯(cuò)誤,運(yùn)行時(shí)異常,經(jīng)典的就是空指針,數(shù)組下標(biāo)越界等

98:BIO,NIO,AIO區(qū)別

同步阻塞式IO,同步非阻塞IO.異步非阻塞IO

99:threadLocal

共享變量在每個(gè)線程中創(chuàng)建的一個(gè)副本,使用完threadlocal后,調(diào)用remove方法

100:同步鎖,死鎖,樂(lè)觀鎖,悲觀鎖

Java里面可以通過(guò)synchronized獲取同步鎖,保證線程同步互斥,避免同時(shí)訪問(wèn)出現(xiàn)問(wèn)題,死鎖就是多個(gè)線程同步阻塞,等待其中一個(gè)或全部釋放.樂(lè)觀鎖只有在更新時(shí)才會(huì)校驗(yàn)一下,可以使用版本號(hào)和cas算法實(shí)現(xiàn),悲觀鎖恰好和樂(lè)觀鎖相反,Java中synchronized和reentrantloke等獨(dú)占鎖都是悲觀鎖的實(shí)現(xiàn)

101:synchronized底層實(shí)現(xiàn)原理

保證同一時(shí)刻只有一個(gè)方法進(jìn)入臨界區(qū)

102:synchronized和volatile區(qū)別

volatile只能使用在變量級(jí)別,且不會(huì)造成線程阻塞,synchronized可以到類級(jí)別,可能會(huì)造成線程阻塞

103:hash沖突

不同對(duì)象算出來(lái)的數(shù)組下標(biāo)是相同的就會(huì)產(chǎn)生hash沖突,當(dāng)鏈表長(zhǎng)度>8就會(huì)轉(zhuǎn)為紅黑樹,提高查詢效率

104:創(chuàng)建線程的幾種方式

thread,runnable,callable,executor接口

105:runnable 和callable區(qū)別

runnable 接口 run方法 無(wú)返回值 callable 接口 call方法 有返回值

106:start 和 run區(qū)別?

start 開(kāi)啟線程 并讓jvm調(diào)用run在縣城執(zhí)行,run就是普通對(duì)象調(diào)方法,不開(kāi)啟線程

107:線程相關(guān)基本方法

sleep,wait,yieId(線程讓步),notify等待線程喚醒

108:wait和sleep區(qū)別

wait來(lái)自object,等待過(guò)程中會(huì)釋放鎖,sleep,來(lái)自thread,等待過(guò)程中不會(huì)釋放鎖

109:線程池

用來(lái)管理線程,提高響應(yīng)速度

110:線程池的分類

threadPoolExceptor,foekjoinpool,sccheduledthreadPoolExceptor

111:線程池原理

任務(wù)提交后,首先判斷核心線程有沒(méi)有滿,不是,創(chuàng)建一個(gè)新的線程,是則進(jìn)入隊(duì)列,判斷隊(duì)列是否滿了,不是則放入工作隊(duì)列,是則進(jìn)入線程池,判斷池中線程是否在都在執(zhí)行任務(wù),是則觸發(fā)飽和策略,不是則創(chuàng)建線程執(zhí)行

112:Gc垃圾回收

system,gc,只有線程共享的才存在垃圾回收,根據(jù)引用計(jì)數(shù)算法和根搜索算法去發(fā)現(xiàn)垃圾,針對(duì)不再具有引用的的信息進(jìn)行回收

113:jvm調(diào)優(yōu)

xmx,設(shè)置jvm最大內(nèi)存xms 設(shè)置初始內(nèi)存,xxs,設(shè)置每個(gè)線程棧大小等

114:構(gòu)造器constructor是否可以被override

constructor不能被繼承,所以不能被重寫

115:final,finally,finalize區(qū)別

final修飾符,finally,try catch后面表示總是執(zhí)行的代碼,finalize為垃圾回收器在銷毀對(duì)象時(shí)使用的

116:值傳遞和引用傳遞區(qū)別

一個(gè)傳值,一個(gè)傳對(duì)象

117:++i,i++區(qū)別

前者先運(yùn)算后加,后者先加后運(yùn)算

118:字符串存儲(chǔ)的機(jī)制

字符串會(huì)存儲(chǔ)在常量池中


Java面試基礎(chǔ)118問(wèn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
伊川县| 泗水县| 新竹县| 密山市| 江阴市| 刚察县| 简阳市| 丹阳市| 汕尾市| 五华县| 合作市| 东港市| 肥城市| 呈贡县| 扎赉特旗| 大竹县| 土默特右旗| 万盛区| 运城市| 石屏县| 浦江县| 永州市| 西藏| 田林县| 柯坪县| 安国市| 龙江县| 太湖县| 开平市| 北碚区| 宜章县| 禄丰县| 阿勒泰市| 大宁县| 朝阳市| 固阳县| 曲阳县| 永春县| 巧家县| 达州市| 渭源县|