栈管运行,堆管存储。传值示例如下:
/**
* @author luffy
**/
@Data
class Person{
String name;
int age;
public Person(String name,int age){
this.name = name;
this.age = age;
}
}
public class TransferValueDemo {
public void changeAge(int age){
age = 30;
}
public void changeName(Person person){
person.setName("xxx");
}
public void changeName2(String name){
name = "abc";
}
public static void main(String[] args){
TransferValueDemo demo = new TransferValueDemo();
int age = 20;
demo.changeAge(20);
System.out.println(age);
Person person = new Person("hello",2);
demo.changeName(person);
System.out.println(person.getName());
String str = "xxx";
demo.changeName2(str);
System.out.println(str);
}
}

字符串常量池-位于Java堆(jdk1.7以后)。如下代码创建了几个对象:
String str=new String("abc"+"def");
网友评论