日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

CoreJava学习3——​基本类型的包装类

發(fā)布時間:2024/4/15 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CoreJava学习3——​基本类型的包装类 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

基本類型的包裝類 ? ?

? ?Java語言的8種基本類型分別對應8種“包裝類”,每一種包裝類都封裝了一個對應的基本類型成員變量,同時還提供了一些針對該數據類型的實用方法。

? ?包裝類是讓基本數據數據以對象的形式存在和使用。

1、編譯器對包裝類的支持

在JDK5之前,使用包裝類進行運算較繁瑣的“拆箱”和“裝箱”操作:即運算前先包裝類對象所封裝的基本數據類型,運算后在將結果封裝成包裝類對象。

? ?Integer i = Integer.valueOf(100);

? ?Integer i = Integer.valueOf(200);

? ?Integer k = Integer.valueOf(i.intValue()+j.intValue());

JDK5增加了自動“拆箱”和“裝箱”的功能,就簡單多了。

? ?Integer i = 100;

? ?Integer i = 200;

? ?Integer k = i+j;

自動“拆箱”和“裝箱”是編譯器的“預處理”操作。


2、Integer和Double常用方法 ? ?

? Integer.parseInt(obj):轉換為int或者double,無法解析時候拋出 NumberFormatException ? ?

? Integer.toBinaryString(int);

? Integer.toHexString(int);

? 分別把int轉換成二進制和十六進制的字符串序列。


3、BigDecimal類

Java浮點數據類型(float/double)在運算時會有舍入誤差,如果希望得到精確的計算結果,可以使用java.math.BigDecimal類。

? ? ? ?BigDecimal d1 = new BigDecimal("2.5");

? ? ? ?BigDecimal d2 = new BigDecimal("3.6");

? ? ? ?System.out.println(d1.subtract(d2));//減法

? ? ? ?System.out.println(d1.add(d2));//加法

? ? ? ?System.out.println(d1.multiply(d2));//乘法

? ? ? ?//除法

? ? ? ?/*注意:

? ? ? ? * ? ? 使用除法要使用舍入原則

? ? ? ? * ? ? 否則當遇到無限小數時,會一直除到溢出,無限下去就溢出。

? ? ? ? * ? ? 使用BigDecimal.ROUND_HALF_UP 為其四舍五入。

? ? ? ? */

? ? ? ?System.out.println(d1.divide(d2, BigDecimal.ROUND_HALF_UP));

當我們對計算精度有嚴格要求時,會使用該類,不過在大多情況下double足夠。

4、BigInteger類

java提供的整數類型(int和long)的儲存范圍有限,當需要進行在更大的整數運算時可以使用這個類,理論上講BigInteger的儲存范圍之受內存容量的限制。

同樣也有加減乘除運算。只不過只針對整數運算。

? ? ? ?BigInteger sum = BigInteger.valueOf(1);

? ? ? ?for (int i = 2; i <= 200; i++) {

? ? ? ? ? ?//multiply參數要求BigInteger,所以i也要轉換為BigInteger

? ? ? ? ? ?sum = sum.multiply(BigInteger.valueOf(i));

? ? ? ?}

? ? ? ?System.out.println(sum.toString().length());//結果的長度

? ? ? ?System.out.println(sum);


? ? ? ?//試試看有多少光年?

? ? ? ?sum = sum.divide(BigInteger.valueOf(3600*24*360).multiply(BigInteger.valueOf(300000)));

? ? ? ?System.out.println(sum);


轉載于:https://blog.51cto.com/huing/1294992

總結

以上是生活随笔為你收集整理的CoreJava学习3——​基本类型的包装类的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。