乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Java知識體系冷門篇

       碼農(nóng)9527 2021-12-15

      通常在面試中,面試官會提出一些冷的基礎(chǔ)知識,比如基礎(chǔ)數(shù)據(jù)類型占用的字節(jié)數(shù),或者Unicode和UTF-8的區(qū)別,所以很多考生會回答錯誤。此外,在正常編碼過程中,除法經(jīng)常用于計算。例如,對于一個長度為100萬的List中的所有元素進行除16操作,CPU對element的計算將快于element/16操作

      Java知識體系冷門篇

        因此,本文總結(jié)了一些容易被遺忘的基知識,適合有一定Java基礎(chǔ)的技術(shù)人員閱讀。有些內(nèi)容可能對初學者來說比較困難,希望能幫助大家輕松應對面試官的基本技術(shù)問題,提高編碼效率。

        1、Java中的基本數(shù)據(jù)類型和內(nèi)存大小。

        (1)整形

        byte1字節(jié)。

        short2字節(jié)。

        int4字節(jié)。

        long8字節(jié)。

        (2)浮點型。

        float4字節(jié)。

        double8字節(jié)。

        (3)字符類型。

        char2字節(jié)(Unicode-16)

        (4)布爾類型。

        布爾型boolean很特別。雖然Java虛擬機定義了boolean類型,但虛擬機對boolean類型的支持有限,沒有為boolean值單獨設計JVM指令。編譯后,操作布爾值的表達式使用JVM的int數(shù)據(jù)類型,即占用4個字節(jié)。

        JVM不會直接支持boolean數(shù)組。boolean數(shù)組編譯后,其元素采用byte數(shù)據(jù)類型,0表示false,1表示true,即boolean數(shù)組的元素只占用一個字節(jié)。

        2、UTF-8與Unicode的關(guān)系。

        Unicode是一個統(tǒng)一的編碼標準,對所有現(xiàn)有字符進行唯一的編碼。在第一個Unicode版本中,使用兩個字節(jié)(16位)來表示一個字符。請注意,這里的字節(jié)不是指計算機內(nèi)存中的存儲單元,而是數(shù)學長度單元。然而,Unicode字符在內(nèi)存中存儲的長度需要一個特定的編碼規(guī)則,如UTF-8、因此,Unicode只是一個編碼標準,UTF-8是該標準的實現(xiàn)。UTF-8規(guī)定了Unicode字符在內(nèi)存中占用的空間(英語和中文占用的空間不同,感興趣的讀者可以查閱相關(guān)信息)。

        代碼點是指可用于編碼字符集的數(shù)字。例如,在16位Unicode編碼字符集中,字符A編碼為U+0041、0041為代碼點。

        代碼單元是指字符占用空間的單元。例如,在UTF-32中,一個代碼單元為32位,一個字符占32位,只是使用一個代碼單元,這將消耗大量的內(nèi)存。在UTF-16中,一個代碼單元為16位,值U+0000-U+FFFF代碼對應一個字符,每個字符占用一個代碼單元。然而,對于超出此范圍的增加字符的編碼,需要兩個這樣的單元(即32位)。在UTF-8中,一個代碼單元為8位,UTF-8使用一到四個字節(jié)序列編碼Unicode代碼點,原則與UTF-32和UTF-16相同。

        3、String字符串常量。

        在Java語言中,一個String字符串的常量對應于一個String對象,是不可改變和繼承的(因為String類被final關(guān)鍵字修改)。Java語言的設計主要是為了分享字符串的常量(注意字符串的常量,字符串的變量不符合這里提到的規(guī)則),因為JVM將字符串的常量放入公共存儲池中,不同的變量可以引用相同的字符串常量。

        上述代碼的運行結(jié)果是:true。這表明a和b引用相同的String對象。

        4、基本數(shù)據(jù)類型轉(zhuǎn)換規(guī)則。

        在雙操作數(shù)操作中,低級型將根據(jù)操作數(shù)類型轉(zhuǎn)換為高級型。

        1)只要兩個操作數(shù)中有一個是double類型,另一個將轉(zhuǎn)換為double類型,結(jié)果也是double類型;

        2)只要兩個操作數(shù)中有一個是float類型,另一個將轉(zhuǎn)換為float類型,結(jié)果也是float類型;

        3)只要兩個操作數(shù)中有一個是long類型,另一個將轉(zhuǎn)換為long類型,結(jié)果也是long類型;

        4)兩個操作數(shù)(包括byte、short、int、char)都會轉(zhuǎn)換成int類型,結(jié)果也是int類型。

        5、按值調(diào)用和引用調(diào)用。

        按值調(diào)用表示方法接收調(diào)用人提供的參數(shù)值。根據(jù)引用調(diào)用表示方法,調(diào)用人提供調(diào)用人提供的參數(shù)地址。Java程序設計語言總是按值調(diào)用。以下是反例代碼:

        上述代碼啟動交換a和b引用的對象,但實際編譯執(zhí)行會發(fā)現(xiàn)交換不成功。這證明Java不是按引用調(diào)用的,a和b只代表兩個Person對象的值,而不是兩個對象的引用,在參數(shù)傳輸上與int等基本類型的值沒有區(qū)別。

        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多