亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java基本類型和運算符(面試題)

  發(fā)布時間:2019-12-23 16:21:12   作者:面試題整理賬號   我要評論
這篇文章主要介紹了Java基本類型和運算符(面試題),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

1.Java中的基本類型有哪些?String 是最基本的數(shù)據(jù)類型嗎?

基本數(shù)據(jù)類型:byte,short,char,int,long,float,double,boolean 一共8種。String不是基本數(shù)據(jù)類型,屬于引用類型。

2.char型變量中能不能存儲一個中文漢字,為什么?

java的char類型可以用來存儲Unicode編碼字符,而Unicode編碼包含了中文,所以char類型可以用來存儲一個中文漢字,但是某些特殊的生僻漢字可能沒有包含在Unicode編碼字符集中,這種情況下就不能用來存儲一個漢字了。

3.short s1=1; s1=s1+1;有什么錯?short s1=1;s1+=1; 有什么錯?

1.對于s1定義是short類型,但是在進(jìn)行s1+1運算時類型自動提升為了int類型,所以在將int賦值給short類型的s1時,就會發(fā)生類型轉(zhuǎn)換錯誤,2. 由于+=是符合java標(biāo)準(zhǔn)的運算符,java編輯器在進(jìn)行運算時會進(jìn)行特殊處理,所以可以正確執(zhí)行。

4.Java中的Integer和int有什么區(qū)別?

int 是Java的內(nèi)置基本數(shù)據(jù)類型之一,Java為每一個基本數(shù)據(jù)類型都提供了封裝類型(包裝類型),Integer就是int的封裝類,int的默認(rèn)值為0,Integer的默認(rèn)值為null,所以Integer可以區(qū)分出來賦值未賦值與0的區(qū)別。

5.能否在不進(jìn)行強(qiáng)制轉(zhuǎn)換的情況下將一個 double 值賦值給 long 類型的變量?

不行,我們不能在沒有強(qiáng)制類型轉(zhuǎn)換的前提下將一個 double 值賦值給 long 類型的變量,因為 double 類型的范圍比 long 類型更廣,所以必須要進(jìn)行強(qiáng)制轉(zhuǎn)換。(只能小轉(zhuǎn)大,大轉(zhuǎn)小要強(qiáng)轉(zhuǎn))

6.java 中 3*0.1 == 0.3 將會返回什么?true 還是 false?

false,因為浮點數(shù)不能完全精確的表示出來,一般都會損失精度。

7.java 中 float f = 3.4; 是否正確?

不正確,3.4 是雙精度數(shù),將雙精度型(double)賦值給浮點型(float)屬于向下轉(zhuǎn)型(down-casting,也稱為窄化)會造成精度損失,需要強(qiáng)制類型轉(zhuǎn)換 float f = (float)3.4; 或者寫成 float f = 3.4F才可以

8.下面Integer類型的數(shù)值比較輸出的結(jié)果為?

public static void main(String[] args) {
    Integer n1 =100,n2 =100,n3 =150,n4 =150;
    System.out.println(n1 == n2);
    System.out.println(n3 == n4);
}

第一個是true,第二個是false,原因是-128~127之間不會new新的對象,參見源碼:

    private static class IntegerCache {
        static final int low = -128;
        static final int high;
        static final Integer cache[];

        static {
            // high value may be configured by property
            int h = 127;
            String integerCacheHighPropValue =
                sun.misc.VM.getSavedProperty("java.lang.Integer.IntegerCache.high");
            if (integerCacheHighPropValue != null) {
                try {
                    int i = parseInt(integerCacheHighPropValue);
                    i = Math.max(i, 127);
                    // Maximum array size is Integer.MAX_VALUE
                    h = Math.min(i, Integer.MAX_VALUE - (-low) -1);
                } catch( NumberFormatException nfe) {
                    // If the property cannot be parsed into an int, ignore it.
                }
            }
            high = h;

            cache = new Integer[(high - low) + 1];
            int j = low;
            for(int k = 0; k < cache.length; k++)
                cache[k] = new Integer(j++);

            // range [-128, 127] must be interned (JLS7 5.1.7)
            assert IntegerCache.high >= 127;
        }

        private IntegerCache() {}
    }

9.Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?

Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在參數(shù)上加0.5然后進(jìn)行下取整。

10.用最有效率的方法計算2乘以8?

2 << 3(左移3位相當(dāng)于乘以2的3次方,右移3位相當(dāng)于除以2的3次方)

11.&和&&的區(qū)別?

&按位與;&&邏輯與。&&運算符進(jìn)行短路與運算。&和&&二者都要求運算符左右兩端的布爾值都是true整個表達(dá)式的值才是true。&&之所以稱為短路運算是因為如果&&左邊的表達(dá)式的值是false,右邊的表達(dá)式會被直接短路掉,不會進(jìn)行運算。很多時候我們可能都需要用&&而不是&,例如在驗證用戶登錄時判定用戶名不是null而且不是空字符串,應(yīng)當(dāng)寫為:password != null &&!password.equals(“”),二者的順序不能交換,更不能用&運算符,因為第一個條件如果不成立,根本不能進(jìn)行字符串的equals比較,否則會產(chǎn)生NullPointerException異常。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論