奶头挺立呻吟高潮av全片,成人试看120秒体验区,性欧美极品v,A片高潮抽搐揉捏奶头视频

java語言

java的10個謊言

時間:2024-08-25 19:47:15 java語言 我要投稿
  • 相關推薦

關于java的10個謊言

  引言:這些問題都是較為高級的,因為在面試過程中如果遇到,那么,你將會被拒之門外,現在我們不妨來看看這些問題。

關于java的10個謊言

  1、System.exit(0)會跳過finally塊的執行

  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");

  }

  這段代碼為什么會輸出In the finally block?為什么沒有打印出堆棧跟蹤信息呢?

  2、String str =“Hello”;其中str是一個字符串對象

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

  String str = "Hello";

  String text = "Bye";

  str == text; //比較兩個引用,而不是內容

  str = text; //把text的引用賦值給str

  大多數情況下其實沒有太大的區別,不過這么寫容易引起困惑。

  final StringBuilder sb = new StringBuidler();

  sb.append("Hello"); //這個引用是final類型的,而不是這個實例。

  method(sb); //可以通過方法來修改這個實例,不過這個變量是無法修改的

  3. Java的內存泄露跟C++程序員理解的一樣

  內存泄露在維基百科上的定義是”在計算機科學中,如果程序沒有正確地管理好內存分配 ,就會出現內存泄露。在面向對象編程中,如果內存中的一個對象無法在代碼中訪問不到的話,這就是內存泄露。” 不過在Java中,對象總是可達的,那些沒有強引用的對象會被清除掉。內存泄露這個術語在Java中意味著:內存中存在著不該存在的對象,通常來說是有些不再使用的資源卻仍存儲在集合中。

  4. 多線程編程很難

  如果你沒有經驗的話,多線程編程的確很難。如果你只是把一堆代碼扔到一堆線程中去執行,那樣出了問題根本沒法解決,只能是一團糟。 但如果你能進行線程的按需分配,控制線程間的交互,使用一些團隊中的成員也能明白的簡單的模式,問題就變得簡單多了。當然還有一個挑戰就是你得讓團隊中的所有人都遵循你的這個規則:-)

  5. 不用關心不同操作間性能的不同

  最近聽說有個問題,它涉及到了整數的相加,內存訪問,取模,以及輸出到控制臺。盡管在這些操作里面,每一個都比前面一個要慢一個數量級,但這哥們就是想優化這里面最快的操作,加法,還用了些更昂貴的操作來替換它。 如果你真的想要優化性能,你最好用一個廉價的操作來替換掉那些昂貴的操作,如果你的瓶頸在硬件這塊,比方說要從硬盤里面讀取大量的文件,修改軟件的代碼是沒啥用了,因為問題根本 就不在這。

  6. 隨機數都是隨機的

  一組特定的隨機數就像是某種模式的數字。這個問題我在這篇文章中已經講到過了。很多人都不相信隨機數生成器生成的數字其實是不隨機的。

  7. 應該盡量避免使用浮點數,因為它們會產生隨機錯誤

  對于同一個操作而言,浮點數每次都會產生同樣的錯誤。錯誤是可預測的,因此也是可控的。如果你清楚你要做的事情是什么,并且堅持使用一些簡單的規則,比如說對結果進行舍入操作,那么浮點數出的錯也不會比BigDecimal要多,除此之外它的可讀性更強,而且效率快了百倍以上(同時產生的垃圾對象也更少了)。

  8. 時區是永恒不變的

  之所以會有這個誤解是因為,隨著時間的變化,時區是在改變的。這意味著歐洲/倫敦在新紀元的時候是1970/1/1 01:00而不是00:00,為什么?因為倫敦在1968年到1971年這兩年間的時間內使用的是夏令時。

  在過去的這些年里面,還有不少時區也發生了變化。莫斯科以前是東三區(GMT+3),現在是東四區(GMT+4)(從2011年3月27日開始)。如果你看下2010年的時間,你會發現它是東三區而不是東四區。

  還有些事你聽起來或許會感覺很意外:

  1721年的瑞典的2月有30天。

  1751年英格蘭的第一天是3月25日,和法國相比差了11天。

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

  9. 當你在線程中讀取一個非volatile變量時,你最終能讀取它更新的那個值。

  前幾天這個問題在StackOverflow上出現過兩回了。一般來說,JIT編譯器優化代碼的時候會將這個線程沒有修改到的非volatile類型的字段進行內聯。一旦這個代碼被編譯了(你可以通過-XX:+PrintCompilation看到),你在另一個線程對這個字段進行的修改它很可能就永遠也看不到了。加上隨機的同步塊或者打印語句可以推遲這個優化的執行,或者擾亂JIT編譯器,讓它不去執行這個優化。

  10. Java面試題都是正確的

  有很多Java面試題要么是過時了(超過10年沒有更新了,和現在的Java版本已經脫節),要么是誤導大家的,甚至可能是錯的。不幸的是這些答案都沒有檢查過就被到處傳來傳去。

【java的10個謊言】相關文章:

Java與Java web有什么不同08-26

java教程之Java編程基礎09-12

什么是Java09-20

Java的類07-19

java講解06-23

Java發展史之Java的由來08-24

Java的內存模型09-22

Java 的分支結構10-27

Java模擬試題04-27

java的多線程09-09

主站蜘蛛池模板: 汉川市| 封丘县| 峨眉山市| 平塘县| 平谷区| 施甸县| 宜州市| 恩施市| 富锦市| 兴国县| 灵寿县| 江川县| 丰城市| 南宫市| 通渭县| 都匀市| 含山县| 裕民县| 保靖县| 娄烦县| 腾冲县| 宁夏| 新闻| 甘洛县| 兰溪市| 申扎县| 龙口市| 连南| 浏阳市| 微博| 尉氏县| 建始县| 眉山市| 凉城县| 重庆市| 大安市| 合山市| 千阳县| 多伦县| 辽宁省| 平顶山市|