Java中的數據類型分爲兩大類,基本數據類型和引用數據類型
一、數據類型
- 基本數據類型
基本數據類型只有8種,可按照如下分類
①整數類型:long、int、short、byte
②浮點類型:float、double
③字符類型:char
④布爾類型:boolean
- 引用類型
引用數據類型非常多,大致包括:類、 接口類型、 數組類型、 枚舉類型、 註解類型、 字符串型
例如,String類型就是引用類型。
簡單來說,所有的非基本數據類型都是引用數據類型
二、基本數據類型和引用數據類型的區別
- 存儲位置
基本變量類型:在方法中定義的非全局基本數據類型變量的具體內容是存儲在棧中的
引用變量類型:只要是引用數據類型變量,其具體內容都是存放在堆中的,而棧中存放的是其具體內容所在內存的地址
ps:通過變量地址可以找到變量的具體內容,就如同通過房間號可以找到房間一般
public class Main{
public static void main(String[] args){
//基本數據類型
int i=1;
double d=1.2;
//引用數據類型
String str="helloworld";
}
}
2. 傳遞方式
基本變量類型:在方法中定義的非全局基本數據類型變量,調用方法時作爲參數是按數值傳遞的
//基本數據類型作爲方法參數被調用
public class Main{
public static void main(String[] args){
int msg = 100;
System.out.println("調用方法前msg的值:\n"+ msg); //100
fun(msg);
System.out.println("調用方法後msg的值:\n"+ msg); //100
}
public static void fun(int temp){
temp = 0;
}
}
引用變量類型:引用數據類型變量,調用方法時作爲參數是按引用傳遞的
//引用數據類型作爲方法參數被調用
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開發指南",66.6);
book.getInfo(); //圖書名稱:Java開發指南,價格:66.6
fun(book);
book.getInfo(); //圖書名稱:Java開發指南,價格:99.9
}
public static void fun(Book temp){
temp.setPrice(99.9);
}
}