欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

每日六道java新手入門面試題,通往自由的道路

 更新時間:2021年07月01日 09:46:26   作者:太子爺哪吒  
這篇文章主要為大家分享了最有價值的6道java面試題,涵蓋內(nèi)容全面,包括數(shù)據(jù)結(jié)構(gòu)和算法相關(guān)的題目、經(jīng)典面試編程題等,對hashCode方法的設(shè)計、垃圾收集的堆和代進行剖析,感興趣的小伙伴們可以參考一下

1. 面試第一步,自我介紹。

這個自我介紹,在整個面試當中可以說是第一步,如果你能把你想說的重點說出來,把面試官帶到你準備好的技術(shù)點中,可以說,你這次自我介紹成功了!

那么說下自我介紹需要包含什么:基本信息,教育背景、工作經(jīng)歷、項目經(jīng)歷、個人成長等。

可以說模板基本類似,但是每個的技術(shù)點、工作經(jīng)歷、項目經(jīng)歷都大不相同。所以在自己把握的點當中突出出來,抓住面試官的眼球。

模板

例如:面試官您好,我叫xxx,18年畢業(yè)xx學(xué)校本科xx專業(yè),畢業(yè)至今已有x年工作經(jīng)驗,在從事Java開發(fā)期間任職于x家公司。
第一家公司是xxx,這家公司是做xxx的,在java這一塊我主要負責/參與的是xxx項目,在這個項目中主要負責xxx功能模塊。在這家公司我收獲成長最大的是xxx(技術(shù)和做事方面闡述),之所以離開這家公司是因為xxx(離職原因可以不說,就闡述下具體干了些什么)。

第二家公司也就是我上一任公司xxx,這家公司是做xxx,我在這家公司主要負責的是xxx,我在這家公司的收獲是xxx,離開這家公司是因為xxx(離職原因可以不說,就闡述下具體干了些什么)。

平時的話我也會經(jīng)常去學(xué)習(xí)技術(shù),或者寫一些技術(shù)博客比如我的公眾號、CSDN博客有太子爺哪吒(也可以加一些自己平時的愛好,甚至寫的什么博客,什么GitHub地址都行,能讓自己加分就行?。?/p>

所以來說,這個比較廣泛,可以自由發(fā)揮。打好第一步,后面的信息相對來說比較足點。我個人面試的話,經(jīng)常特別緊張,但是一旦我自我介紹說好了,面試官問了我在自我介紹中提過的技術(shù)點,我個人就會相對自信點。跟面試官也會聊得比較久,比較開心。其實面試都是雙向,他在選擇你,你也在選擇他,所以不必擔心,不必過于緊張。把準備好的說出來就行啦!

2. 請你簡述下對面向?qū)ο蟮睦斫?,面向?qū)ο蠛兔嫦蜻^程的區(qū)別?

1.個人理解:

  •  軟件開發(fā)思想,先有面向過程,后有面向?qū)ο?。
  • 在大型軟件系統(tǒng)中,面向過程的做法不足,從而推出了面向?qū)ο?。
  • 都是解決實際問題的思維方式 。
  • 兩者相輔相成,宏觀上面向?qū)ο蟀盐諒?fù)雜事物的關(guān)系;微觀上面向過程去處理。
  • 面向過程以實現(xiàn)功能的函數(shù)開發(fā)為主;面向?qū)ο笠紫瘸橄蟪鲱?、屬性及其方法,然后通過實例化類、執(zhí)行方法來完成功能 。
  • 面向過程是封裝的是功能;面向?qū)ο蠓庋b的是數(shù)據(jù)和功能 。
  • 面向?qū)ο缶哂欣^承性和多態(tài)性;面向過程則沒有 。

2.面向?qū)ο?/h3>
  •  優(yōu)點:易維護、易復(fù)用、易擴展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特 性,可以設(shè)計出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護 。
  • 缺點: 性能比面向過程低。

3.面向過程

  • 優(yōu)點:性能比面向?qū)ο蟾撸驗轭愓{(diào)用時需要實例化,開銷比較大,比較消耗 資源;比如單片機、嵌入式開發(fā)、Linux/Unix 等一般采用面向過程開發(fā),性能是 最重要的因素。
  • 缺點:沒有面向?qū)ο笠拙S護、易復(fù)用、易擴展 。

嗯?講的不錯嘛!看來是有相對應(yīng)的理解在里面?。〔诲e不錯,我再考你一個問題。

3. 那你再講下面向?qū)ο蟮奶卣饔心男┓矫?/h2>

面向?qū)ο蟮奶卣饔芯唧w四個方面:封裝、繼承、抽象、多態(tài)。

  • 封裝:封裝把一個對象的屬性私有化,同時提供一些可以被外界訪問的訪問。
  • 繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程,提供繼承信息的類叫做父類,得到繼承信息的類叫做子類。通過使用繼承我們能夠非常方便地復(fù)用以前的代碼。
  • 抽象:抽象是將一類對象的共同特征總結(jié)出來構(gòu)造類的過程,包括了數(shù)據(jù)抽象和行為抽象。
  • 多態(tài):所謂多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過該引用變量發(fā) 出的方法調(diào)用在編程時并不確定,而是在程序運行期間才確定,即一個引用變量倒底會指向哪個類的實例對象,該引用變量發(fā)出的方法調(diào)用到底是哪個類中 實現(xiàn)的方法,必須在由程序運行期間才能決定。實際上就是用同樣的對象調(diào)用同樣的方法會做出不同的反應(yīng)事情。

4. 請問:我們是否可以繼承 String類?

不可以,在我們查看String源碼的時候,可以發(fā)現(xiàn):String類是被final修飾,是不可以被繼承的。

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    .....
}

而final有什么作用呢?

  • 修飾類時:表示著該類不能被繼承。
  • 修飾方法時:表示方法不能被重寫。
  • 修飾變量時:表示變量不能被一次賦值,不能再修改了。

所以String被final修飾的好處有:安全,高效。 并且在當只有字符串不可變的時候,我們才能實現(xiàn)字符串常量池,字符串常量池可以為我們緩存字符串,提高程序的運行效率。

5. 我再問下final、finally、finalize這三者有什么區(qū)別嗎?

  • final:修飾符(關(guān)鍵字)有三種用法:
    • 如果一個類被聲明為 final,意味著它不能再派生出新的子類,即不能被繼承,因此它和 abstract 是反義詞。
    • 將變量聲明為 final,可以保證它們在使用中不被改變,被聲明為 final 的變量必須在聲明時給定初值,而在以后的引用中只能讀取不可修改。
    • 被聲明為 final 的方法也同樣只能使用,不能在子類中被重寫。
  • finally: 通常放在try…catch…處理異常中,代表著程序無論正常執(zhí)行還是發(fā)生異常,這里的代碼都會執(zhí)行。 一般是把釋放資源的代碼放在finally塊中。
  • finalize: 是Object類中定義的方法,Java中允許使用finalize()方法在垃圾收集器將對象從內(nèi)存中清除出去之 前做必要的清理工作。這個方法是由垃圾收集器在銷毀對象時調(diào)用的。

6. 請講下String和 StringBuilder、StringBuffer之間的區(qū)別?

首先String和 StringBuilder、StringBuffer它們都是可以存儲和操作字符串的。

  • String它是使用final關(guān)鍵字字符數(shù)組來保存字符串,所以String對象是不可變的。
  • 而StringBuilder和StringBuffer都是繼承自AbstractStringBuilder類,這其中也是用字符數(shù)組來保 存字符串,但是沒有被final修飾,所以是可變的。
  • 但是StringBuilder中的方法沒有synchronized修飾,所以它的效率會比StringBuffer高。
  • 安全方面的話:
    • String的對象是不可變的,所以它是線程安全的。
    • StringBuffer因為對方法加了同步鎖,所以也是線程安全,但是StringBuilder沒有加同步鎖,所以 線程不安全的。
  • 性能方面的話:
    • 每次對String類型進行改變的時候,都會生成一個新的String對象, 然后將指針指向新的String的對象。
    • StringBuffer和StringBuilder每次修改,會可以對對象本身進行操作修改,而不是生成新的對象并 改成對象引用。
  • 使用場景:
    • 如果要操作少量的數(shù)據(jù)用 String 。
    • 單線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù)用StringBuilder。
    • 多線程操作字符串緩沖區(qū)下操作大量數(shù)據(jù) 用StringBuffer 。

總結(jié)

這篇文章就到這里了,如果這篇文章對你也有所幫助,希望您能多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • 關(guān)于Spring中@Transactional事務(wù)回滾的注意事項

    關(guān)于Spring中@Transactional事務(wù)回滾的注意事項

    這篇文章主要介紹了關(guān)于Spring中@Transactional事務(wù)回滾的注意事項,回滾(Rollback)指的是程序或數(shù)據(jù)處理錯誤,將程序或數(shù)據(jù)恢復(fù)到上一次正確狀態(tài)的行為?;貪L包括程序回滾和數(shù)據(jù)回滾等類型,需要的朋友可以參考下
    2023-05-05
  • Java編程中的性能優(yōu)化如何實現(xiàn)

    Java編程中的性能優(yōu)化如何實現(xiàn)

    這篇文章主要介紹了Java編程中的性能優(yōu)化如何實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • Java基礎(chǔ)之switch分支結(jié)構(gòu)詳解

    Java基礎(chǔ)之switch分支結(jié)構(gòu)詳解

    這篇文章主要介紹了Java基礎(chǔ)之switch分支結(jié)構(gòu)詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)java的小伙伴們有很大的幫助,需要的朋友可以參考下
    2021-05-05
  • 通過JDK源碼角度分析Long類詳解

    通過JDK源碼角度分析Long類詳解

    這篇文章主要給大家介紹了關(guān)于通過JDK源碼角度分析Long類的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用long類具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Spring?Cloud?Ribbon?負載均衡使用策略示例詳解

    Spring?Cloud?Ribbon?負載均衡使用策略示例詳解

    Spring?Cloud?Ribbon?是基于Netflix?Ribbon?實現(xiàn)的一套客戶端負載均衡工具,Ribbon客戶端組件提供了一系列的完善的配置,如超時,重試等,這篇文章主要介紹了Spring?Cloud?Ribbon?負載均衡使用策略示例詳解,需要的朋友可以參考下
    2023-03-03
  • JavaSE基礎(chǔ)之反射機制(反射Class)詳解

    JavaSE基礎(chǔ)之反射機制(反射Class)詳解

    反射機制有什么用?通過java語言中的反射機制可以操作字節(jié)碼文件,可以讀和修改字節(jié)碼文件。所以本文將為大家講講反射機制的使用,需要的可以參考一下
    2022-09-09
  • java 中ThreadLocal 的正確用法

    java 中ThreadLocal 的正確用法

    這篇文章主要介紹了java 中ThreadLocal 的正確用法的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Post請求參數(shù)是數(shù)組或者List時的請求處理方式

    Post請求參數(shù)是數(shù)組或者List時的請求處理方式

    這篇文章主要介紹了Post請求參數(shù)是數(shù)組或者List時的請求處理方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • SonarQube安裝、配置與使用教程圖解

    SonarQube安裝、配置與使用教程圖解

    這篇文章主要介紹了SonarQube安裝、配置與使用教程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • Spring Boot項目中定制PropertyEditors方法

    Spring Boot項目中定制PropertyEditors方法

    在本篇文章里小編給大家分享的是一篇關(guān)于Spring Boot定制PropertyEditors的知識點內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2019-11-11

最新評論