基本数据类型存放在栈中,引用数据类型其具体内容存放在堆中栈中存放的是其具体内容所在内存的地址。通过变量地址可以找到变量的具体内容,就像通过房间号可以找到房间一样。
public class Main{
public static void main(String[] args){
//基本数据类型
int i=1;//1叫直接量(或字面量),整数字面量默认都为int类型,所以在定义long类型数据后面
加L或l。小于32位数的变量,都按int结果结算。
double d=1.2;//浮点数 字面量默认都为double类型,在定义float类型数据后面加F或f,
double类型可不写,但是在小数计算中一定要写D
//引用数据类型
String str="helloworld";
}
}
基本数据类型-传递方式
在方法中定义的数据类型变量,调用方法时作为参数是按数值传递的。
//基本数据类型作为方法参数被调用
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();
fun(book);
book.getInfo();
}
public static void fun(Book temp){
temp.setPrice(99.9);
}
}