亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

JAVA面試題(42)

Noodles / 1224人閱讀

摘要:本文首發(fā)于的博客轉(zhuǎn)載請注明出處基礎(chǔ)抽象類和接口的區(qū)別類層面上抽象類與接口都不能被實例化抽象類只能繼承一個直接父類,實現(xiàn)多個接口接口能繼承多個接口抽象類大多用作模板類使用,接口用于規(guī)范模塊間的行為方法抽象類可以用有抽象方法,靜態(tài)方法以及普通方

????本文首發(fā)于cartoon的博客
????轉(zhuǎn)載請注明出處:https://cartoonyu.github.io/c...

JAVA基礎(chǔ)

抽象類和接口的區(qū)別

類層面上

抽象類與接口都不能被實例化

抽象類只能繼承一個直接父類,實現(xiàn)多個接口;接口能繼承多個接口

抽象類大多用作模板類使用,接口用于規(guī)范模塊間的行為

方法

抽象類可以用有抽象方法,靜態(tài)方法以及普通方法;接口只能是抽象方法

抽象類中方法作用域跟普通類沒有區(qū)別;接口方法只能是公共的

抽象類中可以通過方法間的相互引用實現(xiàn)自身邏輯,接口只能通過子類實現(xiàn)邏輯

抽象類可以擁有構(gòu)造器,接口沒有構(gòu)造器

變量

抽象類可以有成員變量與靜態(tài)變量,接口只能有final的靜態(tài)變量

Object類有哪些成員方法

wait/notify

clone

hashCode/equals

getClass

finalize

克隆有哪些方法

實現(xiàn)Cloneable重寫clone方法

實現(xiàn)Serialize接口

Collections有哪些方法

返回線程安全類

synchronizedXxx

返回不可變集合

emptyXxx

singletonXxx

unmotifitableXxx

集合間的轉(zhuǎn)換

對集合內(nèi)元素進(jìn)行操作

添加元素到集合中

addAll

copy

查找元素

binarySearch

frequency

indexOfSubList

shuffle

替換

fill

replaceAll

改變元素位置

sort

swap

rotate

reverse

元素對比

min/max

disJoint

java常見異常類

系統(tǒng)級

IllegalAccessException

OutOfMemoryException

類級

ClassNotFoundException

ClassDefFoundException

對象級

NullPointerException

ClassCastException

CloneNotSupportedException

NoSuchFieldException

InstantiationException

方法級

IllegalArgumentException

NoSuchMethodException

操作級

數(shù)字

ArithmeticException

NumberFormatException

數(shù)組

ArrayStoreException

IndexOutOfBoundException

IO

IOException

FileNotFoundException

EOFException

數(shù)據(jù)庫

SQLException

線程

InterruptedException

類加載機制是怎么樣的

步驟

加載

校驗

準(zhǔn)備

解析

初始化

使用

卸載

雙親委派模型工作原理

類加載器

BootstrapClassLoader

ExtensionClassLoader

ApplicationClassLoader

UserClassLoader

當(dāng)類被加載到內(nèi)存時,逐層向上詢問父加載器是否能加載,如果所有父加載器都不能加載,則由當(dāng)前類加載器負(fù)責(zé)加載

這樣做的原因能有效保證類的唯一性

HashMap的擴容機制

HashMap的擴容機制主要依賴于三個元素:capacity(默認(rèn)為16),loadFactory負(fù)載因子,size當(dāng)前元素個數(shù)

當(dāng)前元素個數(shù)大于8時,內(nèi)部數(shù)組自動轉(zhuǎn)換為紅黑樹進(jìn)行存儲

當(dāng)前元素個數(shù)大于初始容量x負(fù)載因子時,數(shù)組擴容兩倍,且內(nèi)部元素的位置重新進(jìn)行哈希

當(dāng)前元素個數(shù)小于初始容量的0.1倍時,數(shù)組縮小一半,同樣元素位置需要重新哈希

ArrayList擴容機制

ArrayList擴容主要依賴于size(當(dāng)前元素個數(shù))以及capacity(默認(rèn)10)的對比

當(dāng)元素填滿當(dāng)前數(shù)組(capacity=size),將capacity擴容到現(xiàn)在的1.5倍,若計算后元素大于Integer.MAX_VALUE時,拋出OOM

ArrayList與LinkedList區(qū)別

ArrayList內(nèi)部為數(shù)組,LinkedList內(nèi)部為雙向鏈表

新增元素

ArrayList涉及到數(shù)組擴容(或者伴隨著arrayCopy)

LinkedList修改指針指向(或者伴隨著遍歷操作)

刪除元素

ArrayList需要進(jìn)行arrayCopy

LinkedList遍歷鏈表并修改指針指向

ArrayList大小受Integer.MAX_VALUE影響,LinkedList大小理論上無限(受JVM調(diào)用最大內(nèi)存影響)

ArrayList在插入元素時需要考慮當(dāng)前容量以及進(jìn)行arrayCopy操作,LinkedList插入不需要有額外操作

Array與ArrayList區(qū)別

存儲類型

Array:基本數(shù)據(jù)類型以及對象

ArrayList:只能對象

大小限制

Array:在定義時指定,無法增大或縮小

ArrayList:定義時可不指定(初始為10),可以擴容

插入元素

Array:插入基本數(shù)據(jù)類型元素不涉及裝拆箱操作

ArrayList:涉及裝拆箱操作

Queue中poll與remove區(qū)別

poll與remove都是取出隊頭元素

隊列不為空時,兩個方法結(jié)果是一樣的

隊列為空

poll返回null

remove拋出NoSuchElementException

線程不同步集合如何轉(zhuǎn)換成線程同步集合

通過Collections工具類返回

鎖為讀寫鎖,鎖的粒度為對象級

通過java.util.Concurrent進(jìn)行包裝

鎖為寫鎖,鎖的粒度為元素級

通常都是用Concurrent進(jìn)行包裝

JVM

垃圾回收算法

標(biāo)記-清除

標(biāo)記不清理對象,清理未標(biāo)記對象

速度快,但是會造成內(nèi)存碎片

復(fù)制

將內(nèi)存劃分兩塊區(qū)域:清理區(qū)與存活區(qū)

將不清理對象移到存活區(qū),刪除清理區(qū)的所有對象

空間浪費大

標(biāo)記-整理

標(biāo)記不清理對象,清理未標(biāo)記對象

移動整理存活對象

成本高,但是有效解決內(nèi)存碎片問題

G1工作流程

初始標(biāo)記(停頓線程)

標(biāo)記GC Root直接關(guān)聯(lián)對象

并發(fā)標(biāo)記

從GC Root對堆中對象進(jìn)行可達(dá)性分析

最終標(biāo)記(停頓線程)

并行將Remembered Set Logs的數(shù)據(jù)合并到Remembered Set中

篩選回收

根據(jù)各Region的回收價值和成本進(jìn)行回收計劃的制定

Spring

Spring中有哪些模塊

Spring Core(Spring 核心庫)

Spring AOP

Spring ORM

Spring Dao

Spring Web

Spring Context

Spring Web MVC

Spring MVC的處理流程

請求通過DispatchServlet處理

普通邏輯處理交由Controller處理,Controller處理后返回model

視圖處理,DispatchServlet調(diào)用View temlate進(jìn)行視圖返回

AOP概念

AOP面向切面編程,它將原本縱向的程序看作成一個個切面的組合,是OOP的補充

動態(tài)插入執(zhí)行邏輯到原有執(zhí)行流程中

通知(Advice):具體實現(xiàn)邏輯

連接點(JoinPoint):使用通知的位置

切入點(PointCut):指定使用通知的連接點位置

切面(Aspect):通知與切入點集合

引入(introduction):添加新方法屬性到現(xiàn)有類中

目標(biāo)(target):被通知的對象

代理(proxy)

靜態(tài)代理

動態(tài)代理

織入(weaving):將切面引用到目標(biāo)對象生成代理對象的過程

Spring bean的作用域

singleton(默認(rèn))

prototype

request

session

globalSession

數(shù)據(jù)庫

MyBatis中#與$區(qū)別

傳入數(shù)據(jù)

:當(dāng)作字符串傳入sql,相當(dāng)于PrepareStatement

$:直接將參數(shù)傳入sql,相當(dāng)于Statement

安全性

可以防止sql注入,$不能

事務(wù)的四個特性

一致性

事務(wù)執(zhí)行前后都是一致的

原子性

事務(wù)中操作結(jié)果都是一樣的

隔離性

事務(wù)間的操作是相互隔離的

持久性

事務(wù)的執(zhí)行結(jié)果是永久性的

char與varchar區(qū)別

char的長度是固定的,varchar的長度是不固定的

char會用空格填充到指定長度,varchar不會

char類型數(shù)據(jù)后面空格會被刪除,varchar不會

char的檢索效率比varchar高

邏輯分頁與物理分頁

邏輯分頁會將全部數(shù)據(jù)加載到內(nèi)存中,再利用代碼邏輯返回分頁結(jié)果

物理分頁是在數(shù)據(jù)庫層面進(jìn)行分頁

MyBatis的分頁方式

數(shù)組分頁

sql分頁

攔截器分頁

RowBounds分頁

數(shù)據(jù)庫三范式

第一范式

屬性已經(jīng)是不能分割的數(shù)據(jù)單位

第二范式

所有非主屬性完全依賴于候選屬性

第三范式

不存在傳遞依賴候選屬性

內(nèi)連接外連接區(qū)別

內(nèi)連接只返回符合條件的共有記錄

外連接會返回表的所有記錄,插入符合條件的列

操作系統(tǒng)

線程與進(jìn)程的區(qū)別

進(jìn)程是操作系統(tǒng)分配資源時間的最小單位,線程是進(jìn)程內(nèi)部調(diào)用的實體

不同進(jìn)程擁有操作系統(tǒng)分配的不同地址空間,同一進(jìn)程的不同線程共享父進(jìn)程的內(nèi)存地址

進(jìn)程的資源與空間由操作系統(tǒng)分配,線程資源與空間由進(jìn)程分配

進(jìn)程切換開銷比線程大

進(jìn)程崩潰不會造成對其他進(jìn)程的影響;線程崩潰造成父進(jìn)程的死亡

進(jìn)程擁有一個程序運行的入口,線程依附進(jìn)程生存

網(wǎng)絡(luò)

http方法有哪些

方法

get

post

delete

put

options

connect

trace

link

unline

head

get與post的區(qū)別

冪等

get為冪等操作,post為非冪等操作

數(shù)據(jù)傳輸

get的數(shù)據(jù)通過url進(jìn)行傳輸,post數(shù)據(jù)通過http報文傳輸

get數(shù)據(jù)大小受url長度限制,post不受限制

可緩存

get數(shù)據(jù)可緩存,post數(shù)據(jù)不可緩存

http報文

get的報文沒有實體,post的報文有實體

forward與redirect區(qū)別

行為方

forward是瀏覽器行為

redirect是服務(wù)器行為

url是否改變

forward url不變

redirect url改變

資源消耗

forward的資源消耗比redirect小

數(shù)據(jù)共享

redirect不共享數(shù)據(jù),forward可以共享request數(shù)據(jù)

效率

forward高

redirect低

TCP三次握手

一次握手(客戶端發(fā)起)

創(chuàng)建TCB

發(fā)送SYN=1,seq=x

進(jìn)入SYN-SENT

二次握手(服務(wù)器發(fā)起)

發(fā)送ACK=1,syn=1,ack=y+1,seq=x+1

進(jìn)入SYN-RCVD

三次握手(客戶端發(fā)起)

發(fā)送ACK=1,seq=x+1,ack=x+1

進(jìn)入ESTABLISHED

UDP與TCP區(qū)別

TCP面向連接,UDP不面向連接

TCP有擁塞控制,UDP沒有擁塞控制

TCP資源開銷大,UDP資源開銷小

TCP只支持一對一,UDP支持一對多

TCP提供可靠傳輸,UDP盡可能交付

TCP面向字節(jié)流,UDP面向報文

設(shè)計模式

單例模式實現(xiàn)的三種方法

https://www.cnblogs.com/ngy02...

靜態(tài)內(nèi)部類

懶漢式

雙重檢查式

BIO NIO AIO

BIO

同步阻塞

線程阻塞進(jìn)行運算后返回結(jié)果

NIO

同步非阻塞

請求共用一個線程進(jìn)行處理

線程會直接返回結(jié)果到請求

AIO

異步非阻塞

線程處理后會通過回調(diào)返回結(jié)果

反射

JAVA反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性;

動態(tài)代理以及靜態(tài)代理

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/75464.html

相關(guān)文章

  • 10個流行的JavaScript面試

    摘要:然而,異步函數(shù)不會立即被推入調(diào)用堆棧,而是會被推入任務(wù)隊列,并在調(diào)用堆棧為空后執(zhí)行。將事件從任務(wù)隊列傳輸?shù)秸{(diào)用堆棧稱為事件循環(huán)。我們調(diào)用接受和或返回另一個函數(shù)稱為高階函數(shù)的函數(shù)。 為了保證可讀性,本文采用意譯而非直譯 想閱讀更多優(yōu)質(zhì)文章請猛戳GitHub博客,一年百來篇優(yōu)質(zhì)文章等著你! 1.如何理解 JS 中的this關(guān)鍵字? JS 初學(xué)者總是對 this 關(guān)鍵字感到困惑,因為與其他現(xiàn)...

    CollinPeng 評論0 收藏0
  • 前端面試總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進(jìn),適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    pumpkin9 評論0 收藏0
  • 前端面試總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進(jìn),適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    Carson 評論0 收藏0
  • 前端面試總結(jié)(js、html、小程序、React、ES6、Vue、算法、全棧熱門視頻資源)

    摘要:并總結(jié)經(jīng)典面試題集各種算法和插件前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快速搭建項目。 本文是關(guān)注微信小程序的開發(fā)和面試問題,由基礎(chǔ)到困難循序漸進(jìn),適合面試和開發(fā)小程序。并總結(jié)vue React html css js 經(jīng)典面試題 集各種算法和插件、前端視頻源碼資源于一身的文檔,優(yōu)化項目,在瀏覽器端的層面上提升速度,幫助初中級前端工程師快...

    muzhuyu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<