最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

不可不知道的10個(gè)java謊言

 更新時(shí)間:2016年09月28日 14:41:27   投稿:lijiao  
這篇文章主要為大家詳細(xì)介紹了不可不知道的10個(gè)java謊言,大家一定要謹(jǐn)慎,需要了解的朋友可以參考一下

下面的這些都算是比較高級(jí)的問(wèn)題了,面試中一般也很少問(wèn)到,因?yàn)樗鼈兛赡軙?huì)把面試者拒之門外。不過(guò)你可以自己找個(gè)時(shí)間來(lái)實(shí)踐一下。 

1. System.exit(0)會(huì)跳過(guò)finally塊的執(zhí)行

 System.setSecurityManager(new SecurityManager() {
  @Override
  public void checkExit(int status) {
   throw new ThreadDeath();
  }
 });
 try {
  System.exit(0);
 } finally {
  System.out.println("In the finally block");
 } 

這段代碼為什么會(huì)輸出In the finally block?為什么沒(méi)有打印出堆棧跟蹤信息呢? 

2. String str = “Hello”;其中str是一個(gè)字符串對(duì)象

 跟C++不同的是,Java里的變量要么是基礎(chǔ)類型,要么是引用。變量不可能是對(duì)象。這意味著像這樣的表達(dá)式:

 String str = "Hello";
 String text = "Bye";
 str == text; // 比較兩個(gè)引用,而不是內(nèi)容
 str = text; // 把text的引用賦值給str 

大多數(shù)情況下其實(shí)沒(méi)有太大的區(qū)別,不過(guò)這么寫(xiě)容易引起困惑。

 final StringBuilder sb = new StringBuidler();
 sb.append("Hello"); // 這個(gè)引用是final類型的,而不是這個(gè)實(shí)例。
 method(sb); // 可以通過(guò)方法來(lái)修改這個(gè)實(shí)例,不過(guò)這個(gè)變量是無(wú)法修改的 

3.Java的內(nèi)存泄露跟C++程序員理解的一樣 

內(nèi)存泄露在維基百科上的定義是”在計(jì)算機(jī)科學(xué)中,如果程序沒(méi)有正確地管理好內(nèi)存分配 ,就會(huì)出現(xiàn)內(nèi)存泄露。在面向?qū)ο缶幊讨?,如果?nèi)存中的一個(gè)對(duì)象無(wú)法在代碼中訪問(wèn)不到的話,這就是內(nèi)存泄露?!?不過(guò)在Java中,對(duì)象總是可達(dá)的,那些沒(méi)有強(qiáng)引用的對(duì)象會(huì)被清除掉。內(nèi)存泄露這個(gè)術(shù)語(yǔ)在Java中意味著:內(nèi)存中存在著不該存在的對(duì)象,通常來(lái)說(shuō)是有些不再使用的資源卻仍存儲(chǔ)在集合中。 

4.多線程編程很難 

如果你沒(méi)有經(jīng)驗(yàn)的話,多線程編程的確很難。如果你只是把一堆代碼扔到一堆線程中去執(zhí)行,那樣出了問(wèn)題根本沒(méi)法解決,只能是一團(tuán)糟。 但如果你能進(jìn)行線程的按需分配,控制線程間的交互,使用一些團(tuán)隊(duì)中的成員也能明白的簡(jiǎn)單的模式,問(wèn)題就變得簡(jiǎn)單多了。當(dāng)然還有一個(gè)挑戰(zhàn)就是你得讓團(tuán)隊(duì)中的所有人都遵循你的這個(gè)規(guī)則 

5.不用關(guān)心不同操作間性能的不同 

最近聽(tīng)說(shuō)有個(gè)問(wèn)題,它涉及到了整數(shù)的相加,內(nèi)存訪問(wèn),取模,以及輸出到控制臺(tái)。盡管在這些操作里面,每一個(gè)都比前面一個(gè)要慢一個(gè)數(shù)量級(jí),但這哥們就是想優(yōu)化這里面最快的操作,加法,還用了些更昂貴的操作來(lái)替換它。 如果你真的想要優(yōu)化性能,你最好用一個(gè)廉價(jià)的操作來(lái)替換掉那些昂貴的操作,如果你的瓶頸在硬件這塊,比方說(shuō)要從硬盤里面讀取大量的文件,修改軟件的代碼是沒(méi)啥用了,因?yàn)閱?wèn)題根本 就不在這。 

6.隨機(jī)數(shù)都是隨機(jī)的 

一組特定的隨機(jī)數(shù)就像是某種模式的數(shù)字。這個(gè)問(wèn)題我在這篇文章中已經(jīng)講到過(guò)了。很多人都不相信隨機(jī)數(shù)生成器生成的數(shù)字其實(shí)是不隨機(jī)的。 

7.應(yīng)該盡量避免使用浮點(diǎn)數(shù),因?yàn)樗鼈儠?huì)產(chǎn)生隨機(jī)錯(cuò)誤 

對(duì)于同一個(gè)操作而言,浮點(diǎn)數(shù)每次都會(huì)產(chǎn)生同樣的錯(cuò)誤。錯(cuò)誤是可預(yù)測(cè)的,因此也是可控的。如果你清楚你要做的事情是什么,并且堅(jiān)持使用一些簡(jiǎn)單的規(guī)則,比如說(shuō)對(duì)結(jié)果進(jìn)行舍入操作,那么浮點(diǎn)數(shù)出的錯(cuò)也不會(huì)比BigDecimal要多,除此之外它的可讀性更強(qiáng),而且效率快了百倍以上(同時(shí)產(chǎn)生的垃圾對(duì)象也更少了)。 

8.時(shí)區(qū)是永恒不變的 

之所以會(huì)有這個(gè)誤解是因?yàn)椋S著時(shí)間的變化,時(shí)區(qū)是在改變的。這意味著歐洲/倫敦在新紀(jì)元的時(shí)候是1970/1/1 01:00而不是00:00,為什么?因?yàn)閭惗卦?968年到1971年這兩年間的時(shí)間內(nèi)使用的是夏令時(shí)。

在過(guò)去的這些年里面,還有不少時(shí)區(qū)也發(fā)生了變化。莫斯科以前是東三區(qū)(GMT+3),現(xiàn)在是東四區(qū)(GMT+4)(從2011年3月27日開(kāi)始)。如果你看下2010年的時(shí)間,你會(huì)發(fā)現(xiàn)它是東三區(qū)而不是東四區(qū)。 

還有些事你聽(tīng)起來(lái)或許會(huì)感覺(jué)很意外:
 1721年的瑞典的2月有30天。
 1751年英格蘭的第一天是3月25日,和法國(guó)相比差了11天。

美國(guó)采用公歷紀(jì)年后,它往前追溯了上百年,這樣原先記錄的那些日期都可以用兩種日歷來(lái)進(jìn)行表示(通常為了更精確會(huì)同時(shí)提供兩個(gè)日期)。比如喬治華盛頓的生日從1731年2月11變成了1732年2月22。 

9.當(dāng)你在線程中讀取一個(gè)非Volatile變量時(shí),你最終能讀取它更新的那個(gè)值。 

前幾天這個(gè)問(wèn)題在StackOverflow上出現(xiàn)過(guò)兩回了。一般來(lái)說(shuō),JIT編譯器優(yōu)化代碼的時(shí)候會(huì)將這個(gè)線程沒(méi)有修改到的非volatile類型的字段進(jìn)行內(nèi)聯(lián)。一旦這個(gè)代碼被編譯了(你可以通過(guò)-XX:+PrintCompilation看到),你在另一個(gè)線程對(duì)這個(gè)字段進(jìn)行的修改它很可能就永遠(yuǎn)也看不到了。加上隨機(jī)的同步塊或者打印語(yǔ)句可以推遲這個(gè)優(yōu)化的執(zhí)行,或者擾亂JIT編譯器,讓它不去執(zhí)行這個(gè)優(yōu)化。 

10.Java面試題都是正確的 

有很多Java面試題要么是過(guò)時(shí)了(超過(guò)10年沒(méi)有更新了,和現(xiàn)在的Java版本已經(jīng)脫節(jié)),要么是誤導(dǎo)大家的,甚至可能是錯(cuò)的。不幸的是這些答案都沒(méi)有檢查過(guò)就被到處傳來(lái)傳去。 

我會(huì)參考Stackoverflow上面的答案,因?yàn)檫@里的答案同行審查做的更好些??偟膩?lái)說(shuō),像rose india這樣的網(wǎng)站就不要上了,上面的答案的質(zhì)量差的離譜。如果你喜歡刨根究底的話,可以看看上面一篇文章里有多少拼寫(xiě)錯(cuò)誤(類名以及專業(yè)術(shù)語(yǔ))或者錯(cuò)誤的言論。存在這些問(wèn)題的一個(gè)原因在于沒(méi)有一個(gè)有效的反饋機(jī)制來(lái)糾正這些錯(cuò)誤。 

為大家推薦一些Java面試題:

最有價(jià)值的50道java面試題 適用于準(zhǔn)入職Java程序員

10個(gè)經(jīng)典的Java main方法面試題

探討Java中最常見(jiàn)的十道面試題(超經(jīng)典)

適用于Java程序員的10道XML面試題 新鮮出爐

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

相關(guān)文章

  • java實(shí)現(xiàn)字符串匹配求兩個(gè)字符串的最大公共子串

    java實(shí)現(xiàn)字符串匹配求兩個(gè)字符串的最大公共子串

    這篇文章主要介紹了java實(shí)現(xiàn)求兩個(gè)字符串最大公共子串的方法,詳細(xì)的描述了兩個(gè)字符串的最大公共子串算法的實(shí)現(xiàn),需要的朋友可以參考下
    2016-10-10
  • Java將對(duì)象寫(xiě)入文件讀出_序列化與反序列化的實(shí)例

    Java將對(duì)象寫(xiě)入文件讀出_序列化與反序列化的實(shí)例

    下面小編就為大家?guī)?lái)一篇Java將對(duì)象寫(xiě)入文件讀出_序列化與反序列化的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • Java實(shí)現(xiàn)順序棧原理解析

    Java實(shí)現(xiàn)順序棧原理解析

    這篇文章主要介紹了Java實(shí)現(xiàn)順序棧原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • SpringCloud之Feign示例詳解

    SpringCloud之Feign示例詳解

    本篇文章主要介紹了SpringCloud之Feign示例詳解,詳細(xì)的介紹了Feign簡(jiǎn)介和使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • ThreadPoolExecutor中的submit()方法詳細(xì)講解

    ThreadPoolExecutor中的submit()方法詳細(xì)講解

    在使用線程池的時(shí)候,發(fā)現(xiàn)除了execute()方法可以執(zhí)行任務(wù)外,還發(fā)現(xiàn)有一個(gè)方法submit()可以執(zhí)行任務(wù),本文就詳細(xì)的介紹一下ThreadPoolExecutor中的submit()方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2022-04-04
  • 談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    談?wù)剬?duì)Java多態(tài)性的一點(diǎn)理解

    多態(tài)就是指程序中定義的引用變量所指向的具體類型和通過(guò)該引用變量發(fā)出的方法調(diào)用在編程時(shí)并不確定,而是在程序運(yùn)行期間才確定,即一個(gè)引用變量倒底會(huì)指向哪個(gè)類的實(shí)例對(duì)象,該引用變量發(fā)出的方法調(diào)用到底是哪個(gè)類中實(shí)現(xiàn)的方法,必須在由程序運(yùn)行期間才能決定
    2017-08-08
  • java排序算法圖文詳解

    java排序算法圖文詳解

    這篇文章主要為大家詳細(xì)介紹了Java經(jīng)典排序算法之歸并排序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望可以對(duì)你有所幫助
    2021-07-07
  • Java實(shí)現(xiàn)計(jì)網(wǎng)循環(huán)冗余檢驗(yàn)算法的方法示例

    Java實(shí)現(xiàn)計(jì)網(wǎng)循環(huán)冗余檢驗(yàn)算法的方法示例

    這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)計(jì)網(wǎng)循環(huán)冗余檢驗(yàn)算法的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Kotlin + Spring Boot 請(qǐng)求參數(shù)驗(yàn)證的代碼實(shí)例

    Kotlin + Spring Boot 請(qǐng)求參數(shù)驗(yàn)證的代碼實(shí)例

    本篇文章主要介紹了Kotlin + Spring Boot 請(qǐng)求參數(shù)驗(yàn)證的代碼實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)

    java數(shù)組排序示例(冒泡排序、快速排序、希爾排序、選擇排序)

    java中在運(yùn)用數(shù)組進(jìn)行排序功能時(shí),一般有四種方法:快速排序法、冒泡法、選擇排序法、插入排序法(希爾排序(Shell Sort)是插入排序的一種),下面是一些示例,需要的朋友可以參考下
    2014-03-03

最新評(píng)論

紫阳县| 渑池县| 大同市| 万载县| 宁明县| 永顺县| 扶余县| 花莲县| 綦江县| 上高县| 宽城| 平南县| 广昌县| 大安市| 芒康县| 佛冈县| 墨竹工卡县| 威海市| 镇巴县| 宁安市| 陆河县| 三江| 汝城县| 贡山| 明水县| 惠来县| 崇礼县| 长治县| 山阴县| 枣强县| 清徐县| 太谷县| 和静县| 天气| 澜沧| 天柱县| 商洛市| 浦北县| 青岛市| 泉州市| 启东市|