国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

目錄
熟悉哪些SQL優(yōu)化方法?
" >##總結(jié)
首頁 Java Java面試題 上週,XX保險面試,涼了! ! !

上週,XX保險面試,涼了! ! !

Aug 25, 2023 pm 03:44 PM
java面試題

上週,一位群組裡的朋友去平安保險面試了,結(jié)果有些遺憾,蠻可惜的,但希望你不要氣餒,正如你所說的,面試中遇到的問題,基本上都是可以透過背部面試題解決的,所以請加油!

另外,有問題歡迎隨時找我探討,共同進(jìn)步。

不扯遠(yuǎn)了,咱們進(jìn)入主題,以下是這位同學(xué)整理的技術(shù)面試題和參考答案。

Java中有哪些執(zhí)行緒安全的類別?

VectorHashtable、StringBuffer。都是在其方法上加了同步鎖來實現(xiàn)線程安全的。

另外,還有JUC套件下所有的集合類別

ArrayBlockingQueue?、ConcurrentHashMap、ConcurrentLinkedQueueConcurrentLinkedDeque等,這些也是線程安全的。

幸好這麼回答就算結(jié)束了,面試官也沒再問了,不然JUC下的這幾個我真回答不上來。

Java建立物件有幾種方式?

這個問題相對還是簡單的,能說上個123應(yīng)該都沒問題了。

Java中提供了以下四種建立物件的方式:

  • new建立新物件
  • 透過反射機(jī)制
  • #採用clone機(jī)制
  • #透過序列化機(jī)制

Object 有哪些常用方法?

這個問題,回答的不是很好,當(dāng)時只記得toString、equals、hashCode、wait、notify、notifyAll。其他的沒有想起來。面試官還是不斷點頭,感覺是應(yīng)該還好。

java.lang.Object

上週,XX保險面試,涼了! ! !

#下面是對應(yīng)方法的意義。

clone 方法

###保護(hù)方法,實作物件的淺複製,只有實作了Cloneable 介面才可以呼叫該方法,否則拋出CloneNotSupportedException 異常,深拷貝也需要實作Cloneable,同時其成員變數(shù)為引用型別的也需要實作Cloneable,然後重寫clone 方法。 ###

finalize 方法

該方法和垃圾收集器有關(guān)係,判斷物件是否可以被回收的最後一步就是判斷是否重寫了此方法。

equals 方法

該方法使用頻率非常高。一般 equals 和 == 是不一樣的,但 Object 中兩者是一樣的。子類別一般都要重寫這個方法。

hashCode 方法

該方法用於哈希查找,重寫了equals 方法一般都要重寫hashCode 方法,這個方法在一些具有哈希功能的Collection 中用到。

一般必須滿足?obj1.equals(obj2)==true??梢酝瞥?obj1.hashCode()==obj2.hashCode(),但 hashCode 相等不一定就滿足 equals。不過為了提高效率,應(yīng)該盡量讓上面兩個條件接近等價。

  • JDK 1.6、1.7 預(yù)設(shè)是傳回隨機(jī)數(shù);
  • JDK 1.8 預(yù)設(shè)是透過和目前執(zhí)行緒有關(guān)的一個隨機(jī)數(shù)三個決定值,運用Marsaglia's xorshift scheme 隨機(jī)數(shù)值演算法得到的一個隨機(jī)數(shù)。

wait 方法

配合synchronized 使用,wait 方法是讓目前執(zhí)行緒等待該物件的鎖,目前執(zhí)行緒必須是該物件的擁有者,也就是具有該物件的鎖。 wait() 方法一直等待,直到獲得鎖定或中斷。 wait(long timeout) 設(shè)定一個超時間隔,如果在規(guī)定時間內(nèi)沒有取得鎖就回傳。

呼叫該方法後當(dāng)前執(zhí)行緒進(jìn)入睡眠狀態(tài),直到以下事件發(fā)生。

  1. 其他執(zhí)行緒呼叫了該物件的notify 方法;
  2. #其他執(zhí)行緒呼叫了該物件的notifyAll 方法;
  3. 其他執(zhí)行緒呼叫了interrupt 中斷該執(zhí)行緒;
  4. 時間間隔到了。

此時該執(zhí)行緒就可以被調(diào)度了,如果是中斷的話就拋出一個 InterruptedException 例外。

notify 方法

配合synchronized 使用,該方法喚醒在該物件上等待佇列中的某個執(zhí)行緒(同步佇列中的執(zhí)行緒是給搶佔CPU 的線程,等待佇列中的線程指的是等待喚醒的線程)。

notifyAll 方法

配合 synchronized 使用,該方法喚醒在該物件上等待佇列中的所有執(zhí)行緒。

hashCode方法和equals方法有什麼關(guān)係

#有點連環(huán)炮的意思了,問到這裡,感覺面試官有些懷疑我的基礎(chǔ)了,但這個問題還是能回答的。

如果a.equals(b)回傳“true”,那麼a和b的hashCode()必須相等。

如果a.equals(b)回傳“false”,那麼a和b的hashCode()有可能相等,也有可能不等。

hashcode的作用

真的是連續(xù)砲,一個接一個問,回答的不是很理想,但也是扯到一些。

Java的集合有兩類,一類是List,還有一類是Set。前者有序可重複,後者無序不重複。當(dāng)我們在set中插入的時候怎麼判斷是否已經(jīng)存在該元素呢,可以透過equals方法。但是如果元素太多,用這樣的方法就會比較滿。

於是有人發(fā)明了雜湊演算法來提高集合中尋找元素的效率。這種方式將集合分成若干個儲存區(qū)域,每個物件可以計算出一個雜湊碼,可以將雜湊碼分組,每組分別對應(yīng)某個儲存區(qū)域,根據(jù)一個物件的雜湊碼就可以確定該物件應(yīng)該儲存的那個區(qū)域。

hashCode方法可以這樣理解:它傳回的就是根據(jù)物件的記憶體位址換算出的一個值。這樣一來,當(dāng)集合要加入新的元素時,先呼叫這個元素的hashCode方法,就一下子能定位到它應(yīng)該放置的物理位置。如果這個位置上沒有元素,它就可以直接儲存在這個位置上,不用再進(jìn)行任何比較了;如果這個位置上已經(jīng)有元素了,就調(diào)用它的equals方法與新元素進(jìn)行比較,相同的話就不存了,不相同就散列其它的位址。這樣一來實際呼叫equals方法的次數(shù)就大大降低了,幾乎只需要一兩次。

說說Spring Boot的自動組裝原理

#這個問題,也是因為我履歷表上寫了Spring Boot ,所以被問到也是正常的,不過我面試前還是看過一些,回答的還行,面試官說差不多是這個意思。

在Spring Boot中有個很關(guān)鍵的註解@SpringBootApplication?,其中這個註解又可以等同於

-?#@SpringBootConfiguration

-?@EnableAutoConfiguration

-?@ComponentScan

其中@EnableAutoConfiguration是關(guān)鍵(啟用自動設(shè)定),內(nèi)部實際上就去載入META-INF/spring.factories檔案的訊息,然後篩選出以 EnableAutoConfiguration為key的數(shù)據(jù),載入到IOC容器中,實現(xiàn)自動設(shè)定功能!

資料庫交易的隔離等級有哪些?

這種問題,背背八股文,網(wǎng)路上一堆。

資料庫交易的隔離等級有4種,由低到高分別為Read uncommitted?、Read committed、Repeatable read 、Serializable。

  • 未提交讀取(READ UNCOMMITTED):在這個隔離等級下,其他交易可以看到本交易沒有提交的部分修改,因此會造成髒讀的問題(讀取到了其他交易未提交的部分,而之後該事務(wù)進(jìn)行了回滾);
  • #已提交讀(READ COMMITTED#):其他交易只能讀取到本事務(wù)已經(jīng)提交的部分,這個隔離等級有不可重複讀的問題,在同一個事務(wù)內(nèi)的兩次讀取,拿到的結(jié)果竟然不一樣,因為另外一個事務(wù)對資料進(jìn)行了修改;"
  • 可重複讀取(REPEATABLE READ)??芍匮}讀取隔離等級解決了上面不可重複讀取的問題,但仍有一個新問題,就是幻讀。當(dāng)你讀取id> 10 的數(shù)據(jù)行時,對涉及到的所有行加上了讀鎖,此時例外一個事務(wù)新插入了一條id=11的數(shù)據(jù),因為是新插入的,所以不會觸發(fā)上面的鎖的排斥,那麼進(jìn)行本事務(wù)進(jìn)行下一次的查詢時會發(fā)現(xiàn)有一條id=11的數(shù)據(jù),而上次的查詢操作並沒有獲取到,再進(jìn)行插入就會有主鍵衝突的問題;
  • 可串行化(SERIALIZABLE)。這是最高的隔離級別,可以解決上面提到的所有問題,因為他強(qiáng)制將所以的操作串行執(zhí)行,這會導(dǎo)致並發(fā)效能極速下降,因此也不是很常用。

說說你對MySQL中索引的理解

這個問題,還好,知道多少說多少??疵總€人準(zhǔn)備情況,我當(dāng)時準(zhǔn)備的還行。自我感覺回答的還行,我把索引的優(yōu)缺點一併回答上來了。

索引是一種數(shù)據(jù)結(jié)構(gòu),使得Mysql能夠高效獲取數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。更通俗的說,數(shù)據(jù)庫索引好比是一本書前面的目錄,能加快數(shù)據(jù)庫的查詢速度。

優(yōu)點

  • 可以保證數(shù)據(jù)庫表中每一行的數(shù)據(jù)的唯一性
  • 可以大大加快數(shù)據(jù)的索引速度
  • 加速表與表之間的連接,特別是在實現(xiàn)數(shù)據(jù)的參考完整性方面特別有意義
  • 在使用分組和排序子句進(jìn)行數(shù)據(jù)檢索時,同樣可以顯著減少查詢中分組和排序的時間
  • 通過使用索引,可以在時間查詢的過程中,使用優(yōu)化隱藏器,提高系統(tǒng)的性能

缺點

  • 創(chuàng)建索引和維護(hù)索引要耗費時間,這種時間隨著數(shù)據(jù)量的增加而增加
  • 索引需要占物理空間,除了數(shù)據(jù)表占用數(shù)據(jù)空間之外,每一個索引還要占用一定的物理空間,如果需要建立聚簇索引,那么需要占用的空間會更大
  • 以表中的數(shù)據(jù)進(jìn)行增、刪、改的時候,索引也要動態(tài)的維護(hù),這就降低了整數(shù)的維護(hù)速度

熟悉哪些SQL優(yōu)化方法?

這部分是看了田哥的知識星球中《java程序員必備MySQL數(shù)據(jù)庫知識》中學(xué)到的,也只是說了一部分,因為田哥整理的非常多,對不住了,兄弟記性不好。

1、查詢語句中不要使用select *

2、盡量減少子查詢,使用關(guān)聯(lián)查詢(left join,right join,inner join)取代

#3、減少使用IN或NOT IN ,使用exists,not exists或關(guān)聯(lián)查詢語句替代

4、or 的查詢盡量用union或union all 取代(在確認(rèn)沒有重複資料或不用剔除重複資料時,union all會更好)

5、應(yīng)盡量避免在where 子句中使用!=或<>操作符,否則將引擎放棄使用索引而進(jìn)行全表掃描。

6、應(yīng)盡量避免在where 子句中對欄位進(jìn)行null 值判斷,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描,如:select id from t where num is null 可以在num上設(shè)定預(yù)設(shè)值0,確保表中num列沒有null值,然後這樣查詢:select id from t where num=0

在MySQL 中一條查詢SQL 是如何執(zhí)行的?

NND,這麼喜歡問MySQL,這個問題還真把我難道了,瞎說一通,面試官都有些不耐煩了?;貋砦胰ヌ锔缰R星球翻了一下,果然又是接近一模一樣的面試題,怪我還沒準(zhǔn)備好。

例如下面這條SQL語句(面試官現(xiàn)場給的SQL):

select?字段1,字段2?from?表?where?id=996
  1. 取得連結(jié),使用使用到MySQL 中的連接器。
  2. 查詢快取,key 為 SQL 語句,value 為查詢結(jié)果,如果查到就直接回傳。不建議使用次緩存,在 MySQL 8.0 版本已經(jīng)將查詢快取刪除,也就是說 MySQL 8.0 版本後不存在此功能。
  3. 分析器,分為詞法分析與文法分析。此階段只是做一些 SQL 解析,語法校驗。所以一般文法錯誤在此階段。
  4. 優(yōu)化器,是在表裡有多個索引的時候,決定使用哪個索引;或一個語句中存在多個表關(guān)聯(lián)的時候(join) ,決定各表的連接順序。
  5. 執(zhí)行器,透過分析器讓 SQL 知道你要幹啥,透過優(yōu)化器知道該怎麼做,於是開始執(zhí)行語句。執(zhí)行語句的時候還要判斷是否具備此權(quán)限,沒有權(quán)限就直接返回提示沒有權(quán)限的錯誤;有權(quán)限則打開表,根據(jù)表的引擎定義,去使用這個引擎提供的接口,獲取這個表的第一行,判斷id 是都等於1。如果是,直接回傳;如果不是繼續(xù)呼叫引擎介面去下一行,重複相同的判斷,直到取到這個表的最後一行,最後回傳。

我在想,996是什麼意義,是你們公司就是996嗎?還是隨口一說

JVM中堆疊與堆疊有什麼不同?

這個還好,稍微熟悉點JVM知識,都能回答。田哥整理的JVM運行時資料區(qū)的講解非常nice。

二者本質(zhì)差異:堆疊是執(zhí)行緒私有,而堆疊是執(zhí)行緒共享的。

棧是運行時單位,代表著邏輯,一個棧對應(yīng)著一個線程,內(nèi)含基本資料型別和堆中物件引用,所在區(qū)域連續(xù),沒有碎片;

堆是存儲單位,代表著數(shù)據(jù),可被多個堆疊共享(包括成員中基本數(shù)據(jù)類型、引用和引用物件),所在區(qū)域不連續(xù),會有碎片。

1)、功能不同

堆疊記憶體用來儲存局部變數(shù)和方法調(diào)用,而堆疊記憶體用來儲存Java中的物件。無論是成員變量,局部變量,還是類別變量,它們指向的物件都儲存在堆記憶體中。

2)、共享性不同

堆疊記憶體是線程私有的。堆記憶體是所有執(zhí)行緒共有的。

3)、異常錯誤不同

如果堆疊記憶體或堆疊記憶體不足都會拋出例外。

堆疊空間不足:java.lang.StackOverFlowError。

堆空間不足:java.lang.OutOfMemoryError。

4)、空間大小

#堆疊的空間大小遠(yuǎn)小於堆疊的。

熟悉類別載入機(jī)制嗎?

這都是背背面試題就差不多了

JVM類別載入分為5個過程:加載,驗證,準(zhǔn)備,解析,初始化,使用,卸載,如下圖所示:

上週,XX保險面試,涼了! ! !

下面來看看加載,驗證,準(zhǔn)備,解析,初始化這5個過程的具體動作。

載入

載入主要是將.class檔案(不一定是.class??梢允荶IP包,網(wǎng)路中取得)中的二進(jìn)位字節(jié)流讀入到JVM中。在載入階段,JVM需要完成3件事:1)透過類別的全限定名取得該類別的二進(jìn)位位元組流;2)將位元組流所代表的靜態(tài)儲存結(jié)構(gòu)轉(zhuǎn)換為方法區(qū)的執(zhí)行時間資料結(jié)構(gòu); 3)在記憶體中產(chǎn)生一個該類別的java.lang.Class對象,作為方法區(qū)這個類別的各種資料的存取入口。

連接

驗證

#驗證是連接階段的第一步,主要確保加載進(jìn)來的位元組流符合JVM規(guī)範(fàn)。驗證階段會完成以下4個階段的檢驗動作:1)檔案格式驗證2)元資料驗證(是否符合Java語言規(guī)格) 3)字節(jié)碼驗證(確定程式語意合法,符合邏輯) 4)符號參考驗證(確保下一步的解析能正常執(zhí)行)

準(zhǔn)備

主要為靜態(tài)變??數(shù)在方法區(qū)分配內(nèi)存,並設(shè)定預(yù)設(shè)初始值。

解析

是虛擬機(jī)器將常數(shù)池內(nèi)的符號參考替換為直接引用的過程。

初始化

初始化階段是類別載入過程的最後一步,主要是根據(jù)程式中的賦值語句主動為類別變數(shù)賦值。註:1)當(dāng)有父類別且父類別為初始化的時候,先去初始化父類別;2)再進(jìn)行子類別初始化語句。

能夠觸發(fā)條件 Full GC 有哪些?

有點跳躍性,還以為會問垃圾回收演算法之類,結(jié)果居然問到這裡了。這個還沒準(zhǔn)備好,隨便說了兩個,明顯感覺到面試官很不滿意,哎,就這樣吧,回去好好準(zhǔn)備吧。

通常觸發(fā)Full GC的場景有如下5種場景:

(1)呼叫System.gc時,系統(tǒng)建議執(zhí)行Full GC ,但不必然執(zhí)行

(2)老年代空間不足

(3)方法去空間不足

(4)經(jīng)由Minor GC後進(jìn)入老年代的平均大小> 老年代的可用記憶體

(5)由Eden區(qū)、From Space區(qū)向To Space區(qū)複製時,物件大小大於To Space可用內(nèi)存,則把該物件轉(zhuǎn)存到老年代,且老年代的可用內(nèi)存小於該物件大小。即老年代無法存放下新年代過度到老年代的物件的時候,會觸發(fā)Full GC。

線上系統(tǒng)CPU飆高,怎麼辦?

這個問題,回答的也不是很滿意,我知道田哥整理過一份文檔,但是我還沒看到那裡去??,回家的路上看了後發(fā)現(xiàn),這也是可以背的面試題,居然我沒回答上來,回去加油吧。面試官來了一句:OK,今天咱們面試就到這裡,我這邊去和HR報告一下,你在這裡等一下。

過一會兒漂亮的HR走過來,面帶微笑,(我以為問題不大了),結(jié)果.....。

您是"YY吧,面試官回饋了面試情況,我們這邊要再總和考慮一下,您先回去,後續(xù)有結(jié)果,我們會電話通知您"。

(⊙o⊙)…,後面過了n多天,沒消息,果然涼涼了。

常規(guī)作業(yè)是:

1. top oder by with P:1040?// 先依照行程負(fù)載排序找到axLoad(pid)

#2.top - Hp 程序PID:1073 ??// 找到相關(guān)負(fù)載執(zhí)行緒PID

3. printf “0x%x\n”執(zhí)行緒PID:0x431 // 將執(zhí)行緒PID轉(zhuǎn)換為16進(jìn)制,為後面尋找jstack 日誌做準(zhǔn)備

4. jstack 程序PID | vim /十六進(jìn)位執(zhí)行緒PID - // 例如:jstack 1040|vim /0x431 -

##總結(jié)

#整個面試過程還是相對輕鬆的,面試官也還挺好的,只是怪自己沒有準(zhǔn)備好,作為一個工作兩年的我,有些問題確實是沒見過,但面試官問得問題貌似都可以達(dá)成準(zhǔn)備好的(背面試題),也不是一定要親身經(jīng)歷過。

以上是上週,XX保險面試,涼了! ! !的詳細(xì)內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

面試官:Spring Aop 常見註解和執(zhí)行順序 面試官:Spring Aop 常見註解和執(zhí)行順序 Aug 15, 2023 pm 04:32 PM

你一定知道 Spring , 那說說 Aop 的去全部通知順序, Spring Boot 或 Spring Boot 2 對 aop 的執(zhí)行順序影響?說說你在 AOP 中遇到的那些坑?

某團(tuán)面試:如果線上遇到了OOM,該如何檢查?如何解決?哪些方案? 某團(tuán)面試:如果線上遇到了OOM,該如何檢查?如何解決?哪些方案? Aug 23, 2023 pm 02:34 PM

OOM 意味著程式存在漏洞,可能是程式碼或 JVM 參數(shù)配置引起的。這篇文章跟讀者聊聊,Java 進(jìn)程觸發(fā)了 OOM 後如何排查。

餓了麼筆試題,看似簡單,難倒一批人 餓了麼筆試題,看似簡單,難倒一批人 Aug 24, 2023 pm 03:29 PM

在很多公司的筆試題中,千萬別小看,都是有坑的,一不小心自己就掉進(jìn)去了。遇到這種關(guān)於循環(huán)的筆試題,建議,自己冷靜思考,一步一步來。

5道String面試題,能全答對的人不到10%! (附答案) 5道String面試題,能全答對的人不到10%! (附答案) Aug 23, 2023 pm 02:49 PM

這篇來看看 Java String類別的 5 題面試題,這五題,我自己在面試過程中親身經(jīng)歷過幾題目,本篇就帶你了解這些題的答案為什麼是這樣。

上週,XX保險面試,涼了! ! ! 上週,XX保險面試,涼了! ! ! Aug 25, 2023 pm 03:44 PM

上週,一位群組裡的朋友去平安保險面試了,結(jié)果有些遺憾,蠻可惜的,但希望你不要氣餒,正如你所說的,面試中遇到的問題,基本上都是可以通過背面試題解決的,所以請加油!

小白也能與BAT面試官對線:CAS 小白也能與BAT面試官對線:CAS Aug 24, 2023 pm 03:09 PM

Java並發(fā)程式設(shè)計系列番外篇C A S(Compare and swap),文章風(fēng)格依然是圖文並茂,簡單易懂,讓讀者們也能與面試官瘋狂對線。

幾乎所有Java面試都會問到的問題:說ArrayList和LinkedList的差別 幾乎所有Java面試都會問到的問題:說ArrayList和LinkedList的差別 Jul 26, 2023 pm 03:11 PM

Java的資料結(jié)構(gòu)是面試考察的重點,只要參與Java面試的同學(xué)相信都有所體會。面試官問這類問題的時候往往是想檢視你是否研究過Java中常用資料類型的底層結(jié)構(gòu),而不是只是簡單的停留在"會使用"的層次。

面試官:說一下類別載入的過程(10張圖解) 面試官:說一下類別載入的過程(10張圖解) Aug 23, 2023 pm 03:05 PM

當(dāng)我們要使用一個類別的時候,要透過ClassLoader將類別載入到記憶體中。

See all articles