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

歡迎訪問 生活随笔!

生活随笔

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

java

java分装_Java ——Number Math 类 装箱 拆箱 代码块

發(fā)布時間:2024/10/12 java 75 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java分装_Java ——Number Math 类 装箱 拆箱 代码块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本節(jié)重點思維導(dǎo)圖

當需要使用數(shù)字的時候,我們通常使用內(nèi)置數(shù)據(jù)類型,如:byte、int、long、double 等

int a = 5000;float b = 13.65f;byte c = 0x4a;

需要使用對象,而不是內(nèi)置數(shù)據(jù)類型的情形。Java 為每一個內(nèi)置數(shù)據(jù)類型提供了對應(yīng)的包裝類。

所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類 Number 的子類

當內(nèi)置數(shù)據(jù)類型被當作對象使用的時候,編譯器會把內(nèi)置類型裝箱為包裝類。相似的,編譯器也可以把一個對象拆箱為內(nèi)置類型

public classTest{public static voidmain(String args[]){

Integer x= 5;

x= x + 10;

System.out.println(x);

}

}/*當 x 被賦為整型值時,由于x是一個對象,所以編譯器要對x進行裝箱。然后,為了使x能進行加運算,所以要對x進行拆箱。*/

Java Math類

包含了用于執(zhí)行基本數(shù)學(xué)運算的屬性和方法,如初等指數(shù)、對數(shù)、平方根和三角函數(shù)。

Math 的方法都被定義為 static 形式,通過 Math 類可以在主函數(shù)中直接調(diào)用。

System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));

System.out.println("0度的余弦值:" + Math.cos(0));

System.out.println("60度的正切值:" + Math.tan(Math.PI/3));

System.out.println("1的反正切值: " + Math.atan(1));

System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));

System.out.println(Math.PI);

Math方法

/***@authorDale

* java中的自動裝箱與拆箱

* 簡單一點說,裝箱就是自動將基本數(shù)據(jù)類型轉(zhuǎn)換為包裝器類型;拆箱就是自動將包裝器類型轉(zhuǎn)換為基本數(shù)據(jù)類型。*/

public classNumber {public static voidmain(String[] args) {/**Integer i1 = 128; // 裝箱,相當于 Integer.valueOf(128);

int t = i1; //相當于 i1.intValue() 拆箱

System.out.println(t);*/

/**對于–128到127(默認是127)之間的值,被裝箱后,會被放在內(nèi)存里進行重用

但是如果超出了這個值,系統(tǒng)會重新new 一個對象*/Integer i1= 200;

Integer i2= 200;/**注意 == 與 equals的區(qū)別

== 它比較的是對象的地址

equals 比較的是對象的內(nèi)容*/

if(i1==i2) {

System.out.println("true");

}else{

System.out.println("false");

}

}

}

int 和 Integer 的區(qū)別

1. int 是基本數(shù)據(jù)類型,int 變量存儲的是數(shù)值。Integer 是引用類型,實際是一個對象,Integer 存儲的是引用對象的地址。

2.

Integer i = new Integer(100);

Integer j= new Integer(100);

System.out.print(i== j); //false

因為 new 生成的是兩個對象,其內(nèi)存地址不同。

3.

int 和 Integer 所占內(nèi)存比較:

Integer 對象會占用更多的內(nèi)存。Integer 是一個對象,需要存儲對象的元數(shù)據(jù)。但是 int 是一個原始類型的數(shù)據(jù),所以占用的空間更少。

4. 非 new 生成的 Integer 變量與 new Integer() 生成的變量比較,結(jié)果為 false。

/*** 比較非new生成的Integer變量與new生成的Integer變量*/

public classTest {public static voidmain(String[] args) {

Integer i= new Integer(200);

Integer j= 200;

System.out.print(i==j);//輸出:false

}

}

因為非 new 生成的 Integer 變量指向的是 java 常量池中的對象,而 new Integer() 生成的變量指向堆中新建的對象,兩者在內(nèi)存中的地址不同。所以輸出為 false。

5. 兩個非 new 生成的 Integer 對象進行比較,如果兩個變量的值在區(qū)間 [-128,127] 之間,比較結(jié)果為 true;否則,結(jié)果為 false。

/*** 比較兩個非new生成的Integer變量*/

public classTest {public static voidmain(String[] args) {

Integer i1= 127;

Integer ji= 127;

System.out.println(i1== ji);//輸出:true

Integer i2 = 128;

Integer j2= 128;

System.out.println(i2== j2);//輸出:false

}

}

java 在編譯 Integer i1 = 127 時,會翻譯成 Integer i1 = Integer.valueOf(127)。

6. Integer 變量(無論是否是 new 生成的)與 int 變量比較,只要兩個變量的值是相等的,結(jié)果都為 true。

/*** 比較Integer變量與int變量*/

public classTest {public static voidmain(String[] args) {

Integer i1= 200;

Integer i2= new Integer(200);int j = 200;

System.out.println(i1== j);//輸出:true

System.out.println(i2 == j);//輸出:true

}

}

包裝類 Integer 變量在與基本數(shù)據(jù)類型 int 變量比較時,Integer 會自動拆包裝為 int,然后進行比較,實際上就是兩個 int 變量進行比較,值相等,所以為 true。

分裝類深入

public static voidmain(String[] args) {int a = 88;

System.out.println(a+ 3);

System.out.println(a- 3);

System.out.println(a* 3);

System.out.println(a/ 3);

System.out.println(a% 3);

System.out.println(a++);

System.out.println(--a);

System.out.println(a>> 3);

Integer b= 4;

System.out.println(b.MAX_VALUE);

System.out.println(Integer.MIN_VALUE);int max = Integer.min(23, -89);

System.out.println(max);

String binaryString= Integer.toBinaryString(24);

System.out.println(binaryString);

System.out.println(Integer.toHexString(123345));char aa = Character.toUpperCase('a');

System.out.println(aa);

}

代碼塊

所有的Java語句都必須寫到代碼塊中,聲明語句除外。

靜態(tài)代碼塊

static{

}

構(gòu)造代碼塊

{

}

結(jié)論:

??只要程序啟動,就會運行靜態(tài)代碼塊中的代碼

??靜態(tài)代碼塊只運行一次

??當定義類的對象時,系統(tǒng)會依次調(diào)用:靜態(tài)代碼塊---構(gòu)造代碼塊---構(gòu)造方法

其中,靜態(tài)代碼塊只調(diào)用一次,構(gòu)造代碼塊和構(gòu)造方法是每new一次就調(diào)用一次

public classDemo {publicDemo() {

System.out.println("第三個調(diào)用,new一次,調(diào)用一次");

}

{

System.out.println("第二個調(diào)用,new一次,調(diào)用一次");

}static{

System.out.println("第一個調(diào)用,且只調(diào)用一次");

}public static voidmain(String[] args) {newDemo();newDemo();newDemo();

}

}

總結(jié)

以上是生活随笔為你收集整理的java分装_Java ——Number Math 类 装箱 拆箱 代码块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。