基本數(shù)據(jù)類型
- 整數(shù)類型:byte划栓、short淋肾、int邀桑、long
- 浮點類型:float善玫、double
- 字符類型:char
- 布爾類型:Boolean
不同基本數(shù)據(jù)類型占用的字節(jié)數(shù)
Java語言對布爾類型的存儲并沒有做規(guī)定,因為理論上存儲布爾類型只需要1 bit濒析,但是通常JVM內(nèi)部會把boolean表示為4字節(jié)整數(shù)正什。
引用數(shù)據(jù)類型
引用數(shù)據(jù)類型非常多啥纸,大致包括:
類号杏、 接口類型、 數(shù)組類型、 枚舉類型盾致、 注解類型主经、 字符串型
例如,String類型就是引用類型庭惜。
區(qū)別
存儲位置不同
- 基本變量類型
在方法中定義的非全局基本數(shù)據(jù)類型變量的具體內(nèi)容是存儲在棧中的 -
引用變量類型
引用數(shù)據(jù)類型變量罩驻,其具體內(nèi)容都是存放在堆中的,而棧中存放的是其具體內(nèi)容所在內(nèi)存的地址
傳遞方式不同
- 基本類型的變量作為參數(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ù)傳遞時惠遏,傳的是地址
//引用數(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);
}
}