CoreJava学习3——基本类型的包装类
基本類型的包裝類 ? ?
? ?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——基本类型的包装类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机专业的一个四年工作的总结
- 下一篇: java美元兑换,(Java实现) 美元