一、數(shù)據(jù)類型
Java中的數(shù)據(jù)類型分為兩大類爷辱,基本數(shù)據(jù)類型和引用數(shù)據(jù)類型录豺。
1、基本數(shù)據(jù)類型
基本數(shù)據(jù)類型只有8種托嚣,可按照如下分類 ①整數(shù)類型:long巩检、int、short示启、byte ②浮點類型:float兢哭、double ③字符類型:char ④布爾類型:boolean
No. | 數(shù)據(jù)類型 | 大小/位 | 可表示數(shù)據(jù)范圍 | 默認值 |
---|---|---|---|---|
1 | byte(字節(jié)型) | 8 | -128~127 | 0 |
2 | short(短整型) | 16 | -32768~32767 | 0 |
3 | int(整型) | 32 | -2147483648~2147483647 | 0 |
4 | long(長整型) | 64 | -9223372036854775808~9223372036854775807 | 0 |
5 | float(單精度) | 32 | -3.4E38~3.4E38 | 0.0 |
6 | double(雙精度) | 64 | -1.7E308~1.7E308 | 0.0 |
7 | char(字符) | 16 | 0~255 | '\u0000' |
8 | boolean(布爾) | - | true或false | false |
2、引用數(shù)據(jù)類型
引用數(shù)據(jù)類型非常多夫嗓,大致包括: 類迟螺、 接口類型、 數(shù)組類型舍咖、 枚舉類型矩父、 注解類型、 字符串型
例如排霉,String 類型就是引用類型窍株。 簡單來說,所有的非基本數(shù)據(jù)類型都是引用數(shù)據(jù)類型攻柠。
二球订、基本數(shù)據(jù)類型和引用數(shù)據(jù)類型的區(qū)別
1、存儲位置
基本變量類型
- 在方法中定義的非全局基本數(shù)據(jù)類型變量的具體內(nèi)容是存儲在棧中的
引用變量類型
- 只要是引用數(shù)據(jù)類型變量瑰钮,其具體內(nèi)容都是存放在堆中的冒滩,而棧中存放的是其具體內(nèi)容所在內(nèi)存的地址
ps:通過變量地址可以找到變量的具體內(nèi)容,就如同通過房間號可以找到房間一般
public class Main{
public static void main(String[] args){
//基本數(shù)據(jù)類型
int i=1;
double d=1.2;
//引用數(shù)據(jù)類型
String str="helloworld";
}
}
2浪谴、傳遞方式
基本變量類型
-
在方法中定義的非全局基本數(shù)據(jù)類型變量开睡,調(diào)用方法時作為參數(shù)是按數(shù)值傳遞的
//基本數(shù)據(jù)類型作為方法參數(shù)被調(diào)用 public class Main{ public static void main(String[] args){ int msg = 100; System.out.println("調(diào)用方法前msg的值:\n"+ msg); //100 fun(msg); System.out.println("調(diào)用方法后msg的值:\n"+ msg); //100 } public static void fun(int temp){ temp = 0; } }
引用變量類型
- 引用數(shù)據(jù)類型變量因苹,調(diào)用方法時作為參數(shù)是按引用傳遞的 ```java //引用數(shù)據(jù)類型作為方法參數(shù)被調(diào)用
class Book{ String name; double price;
public Book(String name,double price){
this.name = name;
this.price = price;
}
public void getInfo(){
System.out.println("圖書名稱:"+ name + ",價格:" + price);
}
public void setPrice(double price){
this.price = price;
}
}
public class Main{ public static void main(String[] args){ Book book = new Book("Java開發(fā)指南",66.6); book.getInfo(); //圖書名稱:Java開發(fā)指南篇恒,價格:66.6 fun(book); book.getInfo(); //圖書名稱:Java開發(fā)指南扶檐,價格:99.9 }
public static void fun(Book temp){ temp.setPrice(99.9); } } ``` 調(diào)用時為temp在棧中開辟新空間,并指向book的具體內(nèi)容婚度,方法執(zhí)行完畢后temp在棧中的內(nèi)存被釋放掉
有不對的地方請指正