国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

JAVA面試題(42)

Noodles / 1136人閱讀

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

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

JAVA基礎(chǔ)

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

類(lèi)層面上

抽象類(lèi)與接口都不能被實(shí)例化

抽象類(lèi)只能繼承一個(gè)直接父類(lèi),實(shí)現(xiàn)多個(gè)接口;接口能繼承多個(gè)接口

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

方法

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

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

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

抽象類(lèi)可以擁有構(gòu)造器,接口沒(méi)有構(gòu)造器

變量

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

Object類(lèi)有哪些成員方法

wait/notify

clone

hashCode/equals

getClass

finalize

克隆有哪些方法

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

實(shí)現(xiàn)Serialize接口

Collections有哪些方法

返回線(xiàn)程安全類(lèi)

synchronizedXxx

返回不可變集合

emptyXxx

singletonXxx

unmotifitableXxx

集合間的轉(zhuǎn)換

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

添加元素到集合中

addAll

copy

查找元素

binarySearch

frequency

indexOfSubList

shuffle

替換

fill

replaceAll

改變?cè)匚恢?/p>

sort

swap

rotate

reverse

元素對(duì)比

min/max

disJoint

java常見(jiàn)異常類(lèi)

系統(tǒng)級(jí)

IllegalAccessException

OutOfMemoryException

類(lèi)級(jí)

ClassNotFoundException

ClassDefFoundException

對(duì)象級(jí)

NullPointerException

ClassCastException

CloneNotSupportedException

NoSuchFieldException

InstantiationException

方法級(jí)

IllegalArgumentException

NoSuchMethodException

操作級(jí)

數(shù)字

ArithmeticException

NumberFormatException

數(shù)組

ArrayStoreException

IndexOutOfBoundException

IO

IOException

FileNotFoundException

EOFException

數(shù)據(jù)庫(kù)

SQLException

線(xiàn)程

InterruptedException

類(lèi)加載機(jī)制是怎么樣的

步驟

加載

校驗(yàn)

準(zhǔn)備

解析

初始化

使用

卸載

雙親委派模型工作原理

類(lèi)加載器

BootstrapClassLoader

ExtensionClassLoader

ApplicationClassLoader

UserClassLoader

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

這樣做的原因能有效保證類(lèi)的唯一性

HashMap的擴(kuò)容機(jī)制

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

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

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

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

ArrayList擴(kuò)容機(jī)制

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

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

ArrayList與LinkedList區(qū)別

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

新增元素

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

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

刪除元素

ArrayList需要進(jìn)行arrayCopy

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

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

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

Array與ArrayList區(qū)別

存儲(chǔ)類(lèi)型

Array:基本數(shù)據(jù)類(lèi)型以及對(duì)象

ArrayList:只能對(duì)象

大小限制

Array:在定義時(shí)指定,無(wú)法增大或縮小

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

插入元素

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

ArrayList:涉及裝拆箱操作

Queue中poll與remove區(qū)別

poll與remove都是取出隊(duì)頭元素

隊(duì)列不為空時(shí),兩個(gè)方法結(jié)果是一樣的

隊(duì)列為空

poll返回null

remove拋出NoSuchElementException

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

通過(guò)Collections工具類(lèi)返回

鎖為讀寫(xiě)鎖,鎖的粒度為對(duì)象級(jí)

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

鎖為寫(xiě)鎖,鎖的粒度為元素級(jí)

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

JVM

垃圾回收算法

標(biāo)記-清除

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

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

復(fù)制

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

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

空間浪費(fèi)大

標(biāo)記-整理

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

移動(dòng)整理存活對(duì)象

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

G1工作流程

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

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

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

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

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

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

篩選回收

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

Spring

Spring中有哪些模塊

Spring Core(Spring 核心庫(kù))

Spring AOP

Spring ORM

Spring Dao

Spring Web

Spring Context

Spring Web MVC

Spring MVC的處理流程

請(qǐng)求通過(guò)DispatchServlet處理

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

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

AOP概念

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

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

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

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

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

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

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

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

代理(proxy)

靜態(tài)代理

動(dòng)態(tài)代理

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

Spring bean的作用域

singleton(默認(rèn))

prototype

request

session

globalSession

數(shù)據(jù)庫(kù)

MyBatis中#與$區(qū)別

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

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

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

安全性

可以防止sql注入,$不能

事務(wù)的四個(gè)特性

一致性

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

原子性

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

隔離性

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

持久性

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

char與varchar區(qū)別

char的長(zhǎng)度是固定的,varchar的長(zhǎng)度是不固定的

char會(huì)用空格填充到指定長(zhǎng)度,varchar不會(huì)

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

char的檢索效率比varchar高

邏輯分頁(yè)與物理分頁(yè)

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

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

MyBatis的分頁(yè)方式

數(shù)組分頁(yè)

sql分頁(yè)

攔截器分頁(yè)

RowBounds分頁(yè)

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

第一范式

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

第二范式

所有非主屬性完全依賴(lài)于候選屬性

第三范式

不存在傳遞依賴(lài)候選屬性

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

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

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

操作系統(tǒng)

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

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

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

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

進(jìn)程切換開(kāi)銷(xiāo)比線(xiàn)程大

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

進(jìn)程擁有一個(gè)程序運(yùn)行的入口,線(xià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ù)通過(guò)url進(jìn)行傳輸,post數(shù)據(jù)通過(guò)http報(bào)文傳輸

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

可緩存

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

http報(bào)文

get的報(bào)文沒(méi)有實(shí)體,post的報(bào)文有實(shí)體

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三次握手

一次握手(客戶(hù)端發(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

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

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

進(jìn)入ESTABLISHED

UDP與TCP區(qū)別

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

TCP有擁塞控制,UDP沒(méi)有擁塞控制

TCP資源開(kāi)銷(xiāo)大,UDP資源開(kāi)銷(xiāo)小

TCP只支持一對(duì)一,UDP支持一對(duì)多

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

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

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

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

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

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

懶漢式

雙重檢查式

BIO NIO AIO

BIO

同步阻塞

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

NIO

同步非阻塞

請(qǐng)求共用一個(gè)線(xiàn)程進(jìn)行處理

線(xiàn)程會(huì)直接返回結(jié)果到請(qǐng)求

AIO

異步非阻塞

線(xiàn)程處理后會(huì)通過(guò)回調(diào)返回結(jié)果

反射

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

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

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/75464.html

相關(guān)文章

  • 10個(gè)流行的JavaScript面試

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

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

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

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

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

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

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

    muzhuyu 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<