淘先锋技术网

首页 1 2 3 4 5 6 7

Java中的引用分为符号引用和值引用两种类型。

符号引用指的是一种字符串形式的引用,用于表示类、方法、字段等元素。在字节码中,符号引用被用来描述被引用元素的名称、类型、所属类等信息。在程序运行时,虚拟机需要将符号引用转换为实际的内存地址。

//符号引用
class Test{
void print(){
System.out.println("Hello World!");
}
}

值引用是指直接引用对象的值,用于表示对象在内存中的地址或实际内容。在程序运行时,引用被用来访问对象和调用方法。

//值引用
public class Test{
public static void main(String[] args){
String str = new String("Hello World!");
System.out.print(str);
}
}

Java中的变量分为基本类型和引用类型,基本类型的变量保存值本身,而引用类型的变量保存的是对象的地址。在引用类型中,传递变量时传递的是对象的引用,而不是对象本身。因此,对于引用类型的变量,其赋值和传递也可分为符号引用和值引用两种形式。

//符号引用
class Test{
String str;
Test(String s){
str = s;
}
}
public class Main{
public static void main(String[] args){
Test t1 = new Test("Hello");
Test t2 = t1;
System.out.print(t1.str + " " + t2.str);
t2.str = "World";
System.out.print(t1.str + " " + t2.str);
}
}
//值引用
class Test{
String str;
Test(String s){
str = s;
}
}
public class Main{
public static void main(String[] args){
Test t1 = new Test("Hello");
Test t2 = new Test(t1.str);
System.out.print(t1.str + " " + t2.str);
t2.str = "World";
System.out.print(t1.str + " " + t2.str);
}
}

总的来说,Java中的引用除了表示对象的地址或实际内容外,还包括符号引用和值引用两种类型。在变量的赋值和传递时,要注意选择符号引用和值引用两种不同的方式。