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

1.Java中的基本類型有哪些?String 是最基本的數(shù)據(jù)類型嗎?
基本數(shù)據(jù)類型:byte,short,char,int,long,float,double,boolean 一共8種。String不是基本數(shù)據(jù)類型,屬于引用類型。
2.char型變量中能不能存儲(chǔ)一個(gè)中文漢字,為什么?
java的char類型可以用來(lái)存儲(chǔ)Unicode編碼字符,而Unicode編碼包含了中文,所以char類型可以用來(lái)存儲(chǔ)一個(gè)中文漢字,但是某些特殊的生僻漢字可能沒(méi)有包含在Unicode編碼字符集中,這種情況下就不能用來(lái)存儲(chǔ)一個(gè)漢字了。
3.short s1=1; s1=s1+1;有什么錯(cuò)?short s1=1;s1+=1; 有什么錯(cuò)?
1.對(duì)于s1定義是short類型,但是在進(jìn)行s1+1運(yùn)算時(shí)類型自動(dòng)提升為了int類型,所以在將int賦值給short類型的s1時(shí),就會(huì)發(fā)生類型轉(zhuǎn)換錯(cuò)誤,2. 由于+=是符合java標(biāo)準(zhǔn)的運(yùn)算符,java編輯器在進(jìn)行運(yùn)算時(shí)會(huì)進(jìn)行特殊處理,所以可以正確執(zhí)行。
4.Java中的Integer和int有什么區(qū)別?
int 是Java的內(nèi)置基本數(shù)據(jù)類型之一,Java為每一個(gè)基本數(shù)據(jù)類型都提供了封裝類型(包裝類型),Integer就是int的封裝類,int的默認(rèn)值為0,Integer的默認(rèn)值為null,所以Integer可以區(qū)分出來(lái)賦值未賦值與0的區(qū)別。
5.能否在不進(jìn)行強(qiáng)制轉(zhuǎn)換的情況下將一個(gè) double 值賦值給 long 類型的變量?
不行,我們不能在沒(méi)有強(qiáng)制類型轉(zhuǎn)換的前提下將一個(gè) double 值賦值給 long 類型的變量,因?yàn)?double 類型的范圍比 long 類型更廣,所以必須要進(jìn)行強(qiáng)制轉(zhuǎn)換。(只能小轉(zhuǎn)大,大轉(zhuǎn)小要強(qiáng)轉(zhuǎn))
6.java 中 3*0.1 == 0.3 將會(huì)返回什么?true 還是 false?
false,因?yàn)楦↑c(diǎn)數(shù)不能完全精確的表示出來(lái),一般都會(huì)損失精度。
7.java 中 float f = 3.4; 是否正確?
不正確,3.4 是雙精度數(shù),將雙精度型(double)賦值給浮點(diǎn)型(float)屬于向下轉(zhuǎn)型(down-casting,也稱為窄化)會(huì)造成精度損失,需要強(qiáng)制類型轉(zhuǎn)換 float f = (float)3.4; 或者寫(xiě)成 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); }
第一個(gè)是true,第二個(gè)是false,原因是-128~127之間不會(huì)new新的對(duì)象,參見(jiàn)源碼:
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.用最有效率的方法計(jì)算2乘以8?
2 << 3(左移3位相當(dāng)于乘以2的3次方,右移3位相當(dāng)于除以2的3次方)
11.&和&&的區(qū)別?
&按位與;&&邏輯與。&&運(yùn)算符進(jìn)行短路與運(yùn)算。&和&&二者都要求運(yùn)算符左右兩端的布爾值都是true整個(gè)表達(dá)式的值才是true。&&之所以稱為短路運(yùn)算是因?yàn)槿绻?amp;&左邊的表達(dá)式的值是false,右邊的表達(dá)式會(huì)被直接短路掉,不會(huì)進(jìn)行運(yùn)算。很多時(shí)候我們可能都需要用&&而不是&,例如在驗(yàn)證用戶登錄時(shí)判定用戶名不是null而且不是空字符串,應(yīng)當(dāng)寫(xiě)為:password != null &&!password.equals(“”),二者的順序不能交換,更不能用&運(yùn)算符,因?yàn)榈谝粋€(gè)條件如果不成立,根本不能進(jìn)行字符串的equals比較,否則會(huì)產(chǎn)生NullPointerException異常。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java程序員面試經(jīng)常問(wèn)到的30道基礎(chǔ)題
這篇文章主要介紹了Java程序員面試經(jīng)常問(wèn)到的30道基礎(chǔ)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-12-17- 這篇文章主要介紹了我掏空了各大搜索引擎,給你整理了154道Java面試題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-12-12
- 這篇文章主要介紹了華為java社招面試題目、參考答案及全部流程,講述了參加華為java社招面試的全部流程、遇到的面試題目、參考答案以及相關(guān)的注意事項(xiàng),需要的朋友可以參考下2019-10-22
百度java后臺(tái)實(shí)習(xí)生招聘面試題集錦
這篇文章主要介紹了百度java后臺(tái)實(shí)習(xí)生招聘面試題,整理總結(jié)了百度java后臺(tái)招聘過(guò)程中一面、二面與三面所遇到的各種問(wèn)題,涉及Java相關(guān)概念、原理及算法等,需要的朋友可以參2019-09-27- 這篇文章主要介紹了Java多線程與并發(fā)面試題(小結(jié)),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-09-26
9月最新184道阿里、百度、騰訊、頭條Java面試題合集(小結(jié))
這篇文章主要介紹了9月最新184道阿里、百度、騰訊、頭條Java面試題合集,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-09-09字節(jié)跳動(dòng)java研發(fā)面試題整理(含答案)
這篇文章主要介紹了字節(jié)跳動(dòng)java研發(fā)面試題整理,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-08-29銀行java開(kāi)發(fā)筆試面試題13道(含答案)
這篇文章主要介紹了銀行java開(kāi)發(fā)筆試面試題13道,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-08-27- 這篇文章主要介紹了15個(gè)Java線程并發(fā)面試題和答案,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-08-27
- 這篇文章主要介紹了10個(gè)最難回答的Java面試題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-08-07