java自动装箱(是否是误区)
生活随笔
收集整理的這篇文章主要介紹了
java自动装箱(是否是误区)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
從JDK1.5開始,引入了自動裝箱和自動拆箱的概念,實現了把基本數據類型轉化為對象,以及把對象轉化為基本數據類型,這給我們開發中提供了不少的便利,不過也存在一些使用的細節,如果使用不當,也可能造成相當嚴重的后果哦。
首先來看下面一段代碼:
public static void main(String[] args) { Integer sum = 0; for (int i = 0; i <= 100; i++) { sum += i; } System.out.println(sum); }代 碼很簡單,只是對1到100內的數字進行求和,似乎一點問題也沒有,不過當我們把100換成Integer.MAX_VALUE(2147483647) 時,似乎執行的時間有些久哦,廢話,循環次數變多了,當然久了啊,似乎很有道理,真的是這樣嗎?我們再把Integer換成int,同時我們來計算一下時 間,代碼如下:
public static void main(String[] args) { System.out.println(time1()); System.out.println(time2()); } public static long time1() { Date date1 = new Date(); int sum = 0; for (int i = 0; i < Integer.MAX_VALUE; i++) { sum += i; } return new Date().getTime() - date1.getTime(); } public static long time2() { Date date1 = new Date(); Integer sum = 0; for (int i = 0; i < Integer.MAX_VALUE; i++) { sum += i; } return new Date().getTime() - date1.getTime(); }執行結果好可怕,使用int,耗費1859ms,使用Integer耗費20381ms,當然這只有隨機一次執行的結果,使用Integer構造了大約 2147483648的實例,使JVM的壓力驟然增大,效率自然差別很大。因此:我們要優先使用基本類型,而不是裝箱基本類型,要當心無意識的自動裝箱
轉載于:https://www.cnblogs.com/hexie/p/4975247.html
總結
以上是生活随笔為你收集整理的java自动装箱(是否是误区)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则表达式实现将html文本转换为纯文本
- 下一篇: DTV