「003期」JavaSE面試題(三):JavaSE語法(1)

2020-12-25 酷扯兒

本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫

開篇介紹

大家好,我是Java面試題庫提褲姐,今天這篇是JavaSE系列的第三篇,主要總結了JavaSE語法中會出現的相關面試題,在後續,會沿著第一篇開篇的知識線路一直總結下去,做到日更!如果我能做到百日百更,希望你也可以跟著百日百刷,一百天養成一個好習慣。

Q:

& 和 && 的區別?

&運算符有兩種用法:

按位與邏輯與&&運算符是短路與運算。邏輯與跟短路與的差別是很大的,雖然二者都要求運算符左右兩端的布爾值都是true 整個表達式的值才是 true。

&&之所以稱為短路運算是因為,如果&&左邊的表達式的值是 false,右邊的表達式會被直接短路掉,不會進行運算。

很多時候我們可能都需要用&&而不是&,例如在驗證用戶登錄時判定用戶名不是 null

且不是空字符串,應當寫為:

username != null &&!username.equals("")

二者的順序不能交換,更不能用&運算符,因為第一個條件如果不成立,根本不能進行字符串的 equals 比較,否則會產生

NullPointerException

異常。

注意:邏輯或運算符(|)和短路或運算符(||)的差別也是如此。

Q:

== 和 equals 的區別?

==與 equals 的主要區別是:

equals 和== 最大的區別是一個是方法,一個是運算符== 常用於比較原生類型,而 equals() 用來比較方法兩個對象的內容是否相等。== 如果比較的對象是基本數據類型,則比較的是數值是否相等;如果比較的是引用數據類型,則比較的是對象的地址值是否相等。如果 == 和 equals() 用於比較對象,當兩個引用地址相同,== 返回 true。而 equals() 可以返回 true 或者 false 主要取決於重寫實現。最常見的一個例子,字符串的比較,不同情況 == 和 equals() 返回不同的結果。

注意:equals 方法不能用於基本數據類型的變量,如果沒有對 equals 方法進行重寫,則比較的是引用類型的變量所指向的對象的地址。

Q:

在 Java 中,如何跳出當前的多重嵌套循環?

方案一:使用標記

1 public static void main(String[] args) {2 System.out.println("標記前"); 3 ok: 4 for (int i = 0; i < 10; i++) { 5 for (int j = 0; j < 10; j++) { 6 System.out.println("i=" + i + ",j=" + j); 7 if (j == 5) { 8 break ok; 9 }10 }11 }12 System.out.println("標記後");13 }

運行結果:

1標記前2i=0,j=03i=0,j=14i=0,j=25i=0,j=36i=0,j=47i=0,j=58標記後

方案二:使外層的循環條件表達式的結果可以受到裡層循環體代碼的控制

1 public static void main(String[] args) {2 System.out.println("標記前"); 3 boolean flag = true; 4 for (int i = 0; i < 10; i++) { 5 for (int j = 0; j < 10 && flag; j++) { 6 System.out.println("i=" + i + ",j=" + j); 7 if (j == 5) 8 flag = false; 9 }10 }11 System.out.println("標記後");12 }

註:不推薦使用標記,因為它容易破壞代碼的執行順序

Q:

為什麼重寫 equals時必須重寫 hashCode 方法?

hashCode() 的作用是獲取哈希碼,也稱為散列碼;它實際上是返回一個 int 整數。這個哈希碼的作用是確定該對象在哈希表中的索引位置。hashCode() 定義在 JDK 的 Object.java 中,這就意味著 Java 中的任何類都包含有 hashCode() 函數。散列表存儲的是鍵值對(key-value),它的特點是:能根據「鍵」快速的檢索出對應的「值」。這其中就利用到了散列碼。(可以快速找到所需要的對象)

為什麼要有 hashCode?

這裡以「HashSet 如何檢查重複」 為例子來說明為什麼要有 hashCode :當你把對象加入 HashSet 時,HashSet 會先計算對象的 hashcode 值來判斷對象加入的位置,同時也會與其他已經加入的對象的 hashcode 值作比較,如果沒有相符的 hashcode,HashSet 會假設對象沒有重複出現。但是如果發現有相同 hashcode 值的對象,這時會調用 equals()方法來檢查 hashcode 相等的對象是否真的相同。如果兩者相同,HashSet 就不會讓其加入操作成功。如果不同的話,就會重新散列到其他位置。這樣我們就大大減少了 equals 的次數,相應就大大提高了執行速度。

hashCode()與 equals()的相關規定:

如果兩個對象相等,則 hashcode 一定也是相同的兩個對象相等,對兩個對象分別調用 equals 方法都返回 true兩個對象有相同的 hashcode 值,它們也不一定是相等的因此,equals 方法被覆蓋過,則 hashCode 方法也必須被覆蓋hashCode() 的默認行為是對堆上的對象產生獨特值。如果沒有重寫hashCode(),則該 class 的兩個對象無論如何都不會相等(即使這兩個對象指向相同的數據)

Q:

Java中的Math.round(1.5)等於多少?

等於-1在數軸上取值時,中間值(0.5)向右取整:

+0.5是往上取整-0.5直接捨棄

相關焦點

  • 「005期」JavaSE面試題(五):String類
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇介紹大家好,我是Java面試題庫的提褲姐,本篇文章是面試系列文章的第五篇,主要介紹了
  • 「002期」JavaSE面試題(二):基本數據類型與訪問修飾符
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫開篇導讀大家好,我是Java面試題庫的提褲姐,今天這篇是JavaSE系列的第二篇,
  • 「英語教資面試VS綜藝節目」第一期,抽考題
    首先恭喜大家順利通過2020年下半年英語教師資格證的筆試,明年1月份就是面試時間了,面試需要注意什麼呢?【英語教資面試VS綜藝節目】系列中將以輕鬆的方式給大家分享面試過程中需要注意的地方。關注我,乾貨滿滿,面試路上不迷路。
  • 「2021國考進面分數線及名單」國考進面試比例
    「2021國考進面分數線及名單」國考進面試比例由國家公務員考試網考試快訊欄目由提供,更多關於國考面試,國家公務員考試網,國家公務員考試考試快訊的內容,請關注國家公務員考試網/廣東公務員考試網!
  • golang面試之精編100題
    Golang精編100題能力模型選擇題1. 【初級】下面屬於關鍵字的是()A. funcB. defC. structD. class參考答案:AC2.【初級】定義一個包內全局字符串變量,下面語法正確的是()A. var str stringB. str := ""C. str = ""D. var str = ""參考答案:AD3. 【初級】通過指針變量 p 訪問其成員變量 name,下面語法正確的是()A. p.nameB.
  • 「JavaSE」關鍵字、保留字、標識符、分隔符
    1.關鍵字定義:被Java語言賦予了特殊含義,用做專門用途的字符串(單詞)特點:所有關鍵字都是小寫,TRUE、FALSE、NULL都不是關鍵字。分隔符4.1 分號分號:採用(;)作為語句的分隔每個Java語句採用分號作為結尾允許一行書寫多個語句,每個語句之間以分號隔開一個語句也可以跨多行
  • 高中英語「語法填空」+「作文」常用的固定搭配,背熟全搞定!
    #英語#中的重點在於單詞和語法對於同學們而言,掌握基本的單詞量是關鍵,學習語法是對於單詞的一種檢驗,也是對於英語基礎的一種提升。但是背固定搭配當然也很重要!固定搭配整張卷子都用得到吧。比如語法填空or改錯,還有很重要的是寫作文也可以用。
  • 《面試攻略》別被對方問倒了!一篇文破解最常見的3大面試問題
    面試問題百百種!其中又以「為何離職」、「你的缺點是什麼」、「為何選擇跨產業、非原本職務」幾乎是面試官必問的三大挑戰,要如何回答才不會演變成誤踩禁忌的災難呢?一起跟小編來看看三大問題要如何化解!一、面試官:「你為什麼離開上一份工作?」
  • 普華永道、三一集團、Shopee等名企筆面試經驗分享
    三一集團:《三一集團2020提前批+長沙+財務管理+已拿offer》LZ本碩某985會計學,今年5月投了三一集團提前批的財務管理崗。流程如下:1、網申+筆試 正常流程,網申提交上之後直接發來了筆試連結,主要是性格測試+行測題,能做完。
  • 沒錯,看完這篇Exception 和 Error,和面試官扯皮就沒問題了
    下面列出了一些 Java 中常見的異常及其分類,這塊面試官也可能讓你舉出幾個常見的異常情況並將其分類RuntimeException序號異常名稱異常描述1ArrayIndexOutOfBoundsException數組越界異常2NullPointerException空指針異常
  • 2018年自考《日語語法》模擬練習題三
    2018年《日語語法》模擬練習題三101 子供(   )我が家、子供がいなかったら、即離婚だな。 1)あるべき 2)あればの 3)あったの 4)あっての  答案:4 102 主婦のパートだったら、時給700円から1000円(    )が相場だろう。
  • 「面試」Offer收割機的書單!
    這本書有不少的例子去練習,加深對三次握手四次揮手的影響,同時也可以嘗試分析下密文流量。redis設計與實現這部門主要從面試的角度和項目中的使用的角度來闡述redis,可能對於面試來說還可我的第一本算法書推薦原因:去面試之前,最好自覺把這本書的算法手寫兩遍。尤其的中大廠,只要讓你寫算法,百分之七八十都會有其中一道題。
  • 700個面試題(MBA最全的面試訓練)
    問這個問題的目的有兩個:一、考官在面試了許多考生後一般不願再仔細的去看你的簡歷,讓你自己說說省了他 的麻煩。二、讓你穩定一下情緒,消除緊張感。對這個問題的保守回答應該還是簡要的說一下自己的工作經歷即可,不要涉及自己的別的什麼想法。    抽題                    桌上擺著幾個信封,一般情況是三個信封。
  • 以「から」開頭的語法有哪些?
    今天給大家總結一下以「から」開頭的語法,除了意思以外,也希望大家能夠記住如何運用哦~1、「からいうと
  • 北大武協雷火杯「一站到底」武俠知識競答場外題及答案
    答案:③(倚天屠龍記「河間雙煞」之一,使打穴橛(點穴橛)) 4題:舊版金庸小說中,會降龍十八掌的人有哪些?①陳家洛;②張無忌;③謝遜;④滅絕師太;⑤丐幫幫主解風。答案:①②③(在舊版《書劍恩仇錄》中,「降龍十八掌」是少林武功,少林天鏡禪師傳給了陳家洛。
  • 語法辨析|「そうだ」、「ようだ」、「らしい」、「みたい」的用法
    語法辨析|「そうだ」、「ようだ」、「らしい」、「みたい」的用法   日劇《最完美的離婚》取景地 黑目川
  • 80頁語法精美海報+300多張語法練習卡,get英語語法全部知識點!
    它關係到後面時態,語態,三單等語法知識的學習,是語法的重中之重。海報中首先總結了幾種不同的動詞詞性。孩子們最熟悉的單詞dig,swim,run...是實義動詞Action Verbs,也就是句子中主語具體發出的動作。
  • 10道虐心的Java面試題,被面試官虐哭了,同事一題都沒答對
    有一天,小王告訴我,他去一家公司面試 Java 崗,結果被面試官虐哭了。整整 10 道 Java 面試題,小王一道也沒答正確。  他沮喪地給我說,「哥,說點我的情況,你願意聽嗎?我和一個女孩相處,女孩大我兩歲,我非科班。本來打算國慶換一家薪水高點的,好確認關係。
  • 國家公務員面試2017年3月8日海關系統面試題
    【導讀】華圖國家公務員考試網同步華圖教育發布:國家公務員面試2017年3月8日海關系統面試題,詳細信息請閱讀下文!如有疑問請加【2021國家公務員考試微信客服】 ,更多資訊請關注寧夏華圖微信公眾號(ningxiaht),國家公務員培訓諮詢電話:0951-6028571/6027571 18295188220,微信號:HT15202602573   國家公務員面試2017年3月8日海關系統面試題   1.拍賣行通過網絡平臺對扣押的車進行拍賣,很多人在網上詢問車型