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

資訊專欄INFORMATION COLUMN

JAVA面試題(46)

txgcwm / 3325人閱讀

摘要:本文首發(fā)于的博客轉(zhuǎn)載請注明出處抽象類與接口的區(qū)別類抽象類只能繼承一個直接父類,可以實(shí)現(xiàn)多個接口接口可以繼承多個接口變量抽象類允許所有作用域或者關(guān)鍵字進(jìn)行變量的修飾,與普通類沒有區(qū)別接口只允許靜態(tài)不可變的變量方法接口中在之前所有方法都是抽象的

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

JAVA

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

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

接口可以繼承多個接口

變量

抽象類允許所有作用域或者關(guān)鍵字進(jìn)行變量的修飾,與普通類沒有區(qū)別

接口只允許靜態(tài)不可變的public變量

方法

接口中在jdk1.8之前所有方法都是抽象的public方法,在1.8得到增強(qiáng),可以有靜態(tài)方法或者默認(rèn)的普通方法

抽象類中可以有抽象方法,普通方法,靜態(tài)方法,可以被多種關(guān)鍵字修飾,普通方法中可以有自身的邏輯

作用

接口主要用于模塊間行為的約束

抽象類主要用于模板類的實(shí)現(xiàn)

線程不同步集合轉(zhuǎn)換成線程同步集合以及區(qū)別

繼承原有集合通過java的線程同步機(jī)制實(shí)現(xiàn)

使用Collections的synchronizedXxx方法進(jìn)行集合的轉(zhuǎn)換

簡單

鎖的對象為對象,粒度過大

使用java.util包中的ConCurrent方法進(jìn)行包裝

簡單

鎖的粒度為行級,且鎖的種類比較豐富

java常見異常以及發(fā)生場景(最少5個exception)

OutOfMemoryError

創(chuàng)建大對象超過java老年代內(nèi)存拋出

循環(huán)調(diào)用過多,甚至出現(xiàn)無限循環(huán)拋出

ClassCastException

對象向下轉(zhuǎn)型時發(fā)生

NullPointerException

對象引用未指定對象實(shí)例直接使用

SQLException

sql語句執(zhí)行錯誤

InterruptedException

線程意外終止

IndexOutOfBoundException

數(shù)組越界

為什么要用線程池,線程池有什么參數(shù)可以對線程池進(jìn)行配置

使用線程池原因

異步操作頻繁造成的線程切換

線程頻繁創(chuàng)建銷毀造成的資源的消耗

參數(shù)

ThreadFactory

corePoolSize

CPU密集,n+1

IO密集,多線程

keepAliveTime

maximumPoolSize

BlockingQueue

6種實(shí)現(xiàn)隊(duì)列

TimeUnit

List,Set,Map的區(qū)別

存儲元素

List與Set是存儲單一元素的集合

Map是存儲key-value對元素的集合

元素有序性

Set與Map內(nèi)的元素在方法調(diào)用層面是無序的

List元素是有序的

元素可重復(fù)性

List元素是可重復(fù)的

Set不允許重復(fù),Map不允許key重復(fù)

繼承接口

Set與List繼承了Collection

Map是與Collection層次一致的接口

Iterator與ListIterator的區(qū)別

繼承性

ListIterator繼承于Iterator

遍歷集合

Iterator可以遍歷Collection內(nèi)的所有實(shí)現(xiàn)類

ListIterator只能遍歷List接口下的ArrayList以及LinkedList

遍歷方向

Iterator只能向下遍歷

ListIterator可以向上向下遍歷

迭代時修改元素

Iterator不支持迭代時修改或插入集合元素

ListIterator支持迭代時修改或刪除元素

迭代時移除元素

兩個迭代器都可以在迭代時移除元素

JVM

垃圾回收算法

標(biāo)記-清理

標(biāo)記存活對象

清除未標(biāo)記對象

效率高,但是會造成內(nèi)存碎片

復(fù)制

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

將存活對象復(fù)制到存活區(qū)

清理清理區(qū)的所有對象

不會造成內(nèi)存碎片,但是降低內(nèi)存的使用率

標(biāo)記-整理

標(biāo)記待清理對象

將標(biāo)記對象移到另外一側(cè)

清理邊界外內(nèi)存區(qū)域

有效解決了內(nèi)存碎片的產(chǎn)生以及內(nèi)存使用率下降的問題

數(shù)據(jù)庫

char與varchar的區(qū)別

數(shù)據(jù)插入方面

當(dāng)插入數(shù)據(jù)等于定義長度,兩者處理沒有區(qū)別

當(dāng)插入元素小于定義長度

char會填充空格到定義長度

varchar不會填充空格

空格問題

數(shù)據(jù)最后出現(xiàn)空格

char會將空格刪除

varchar不會

檢索速度

char比varchar的檢索速度快

數(shù)據(jù)庫的事務(wù)特性

原子性(Atomic),事務(wù)內(nèi)操作結(jié)果時一致的

一致性(Consitency),事務(wù)執(zhí)行前后數(shù)據(jù)庫的狀態(tài)時一致的

隔離性(Isolation),并發(fā)事務(wù)的執(zhí)行是互不干擾的

持久性(Durability),事務(wù)執(zhí)行結(jié)果是永久存儲的

數(shù)據(jù)庫中select語句執(zhí)行流程(客戶端到存儲引擎)

客戶端通過TCP三次握手與服務(wù)端進(jìn)行連接

連接器判斷賬號信息是否有效

有效,則進(jìn)入第三步

無效,連接器返回Access denied的錯誤

查詢緩存中是否有執(zhí)行的記錄

不建議使用,可以通過query_cache_type關(guān)閉,MySQL 8.0去除了查詢緩存的功能

有執(zhí)行記錄,則返回上次執(zhí)行結(jié)果

沒有執(zhí)行記錄,進(jìn)入第四步

分析器進(jìn)行詞法分析,語法分析

詞法分析

判斷輸入的SQL語句中的關(guān)鍵詞的含義

語法分析

判斷SQL是否合法

若合法,進(jìn)入第五步

若不合法,返回 You have an error in your SQL syntax錯誤到客戶端

sql語句經(jīng)過優(yōu)化器選擇最佳執(zhí)行策略

多索引情況下的最佳索引的選擇

多表關(guān)聯(lián)時決定表的連接順序

sql語句交由執(zhí)行器進(jìn)行存儲引擎的操作并返回結(jié)果

根據(jù)from找到需要查詢的表,根據(jù)where形成有效的結(jié)果集合

(如果有order by,對數(shù)據(jù)進(jìn)行排序)select返回結(jié)果

數(shù)據(jù)庫中數(shù)據(jù)更新語句執(zhí)行流程(客戶端到存儲引擎)

1. 客戶端通過TCP三次握手與服務(wù)端進(jìn)行連接
2. 連接器判斷賬號信息是否有效
        1. 有效,則進(jìn)入第三步
        2. 無效,連接器返回Access denied的錯誤
3. 查詢緩存中是否有執(zhí)行的記錄
        1. 不建議使用,可以通過query_cache_type關(guān)閉,MySQL 8.0去除了查詢緩存的功能
        2. 有執(zhí)行記錄,則返回上次執(zhí)行結(jié)果
        3. 沒有執(zhí)行記錄,進(jìn)入第四步
4. 分析器進(jìn)行詞法分析,語法分析
        1. 詞法分析
               1. 判斷輸入的SQL語句中的關(guān)鍵詞的含義
        2. 語法分析
               1. 判斷SQL是否合法
               2. 若合法,進(jìn)入第五步
               3. 若不合法,返回 You have an error in your SQL syntax錯誤到客戶端
5. sql語句經(jīng)過優(yōu)化器選擇最佳執(zhí)行策略
6. sql語句交由執(zhí)行器進(jìn)行存儲引擎的操作并返回結(jié)果
7. 兩段式提交
       1. 檢查并讀入相關(guān)數(shù)據(jù)頁到內(nèi)存
       2. 將更新語句的操作行寫入內(nèi)存
              1. 寫入操作記錄到readlog中,處于prepare狀態(tài)
              2. 寫入操作記錄到binlog中
              3. 事務(wù)提交,處于commit狀態(tài)

redis的數(shù)據(jù)類型以及底層實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)

1. string
        1. 動態(tài)字符串
2. hash
        1. 數(shù)據(jù)量小,壓縮鏈表
        2. 數(shù)據(jù)量大,哈希表
3. list
        1. 數(shù)據(jù)量小,壓縮列表
        2. 數(shù)據(jù)量大,雙循環(huán)鏈表
4. 有序集合
        1. 數(shù)據(jù)量小,壓縮鏈表
        2. 數(shù)據(jù)量大,跳表
5. set
        1. 數(shù)據(jù)量小,有序數(shù)組
        2. 數(shù)據(jù)量大,哈希表

算法

將有序數(shù)組轉(zhuǎn)換為二叉搜索樹

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

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

相關(guān)文章

  • 【推薦】最新200篇:技術(shù)文章整理

    摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯過的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...

    BicycleWarrior 評論0 收藏0
  • 【推薦】最新200篇:技術(shù)文章整理

    摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯過的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...

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

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

    pumpkin9 評論0 收藏0

發(fā)表評論

0條評論

txgcwm

|高級講師

TA的文章

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