String ss = "GG"; 像上面的代码:声明了一个字符串“GG”对象,而ss就是字符串“GG”对象的引用; PS:有不对的望高手指正!!!
比如:String s = new String("aaa"); 这里的s保存在栈内存,而s所指向的对象保存在堆内存,通过s可以找到堆内存中对应的对象。
打个比方,源引thinking in java里的说法,电视机->对象,引用->遥控器 引用存储于堆栈中,对象存储于堆中。 java的引用在语法上更“接近“于c++的引用而不是指针。
比如:String s = new String("aaa"); 这里的s保存在栈内存,而s所指向的对象保存在堆内存,通过s可以找到堆内存中对应的对象。
public class Text { public static void main(String[] args) { int a=10; Text Text=new Text(); Text.aaaa(a); System.out.println("========="+a); } public void aaaa(int b){ b=3; }} 上面是引用啊, 下面是传递 public class Text { int a=10; public static void main(String[] args) {
Text Text=new Text(); Text.aaaa();
} public void aaaa(){ a=3; System.out.println("========="+a); }} 传递到方法中就是引用,还要看作用域啊
比如A a = new A(); B b = a; new出来的A其实在这里 ____ a --------> | | b --------> |____| 使用a和b就能对new出来的A对象进行调用 a和b就叫对象的引用
声明一个新的对象String newString = new Stirng();
java用引用操纵对象,学java一定要好好的理解
在TIJ中给了个比喻 引用--》遥控器 对象--》电视机 呵呵
对象与引用。 对象是真实存在的,存放于堆中;而引用是一种指向对象的虚拟的指针,指向对象,存在于堆栈中。 例如: A a = new A(); 在这里 a是一个引用,而生成的对象 new A()则是真实存在的对象。
理解下这句就好懂了。 A a = new A();//用A类创建一个对象,并把这个对象的引用放到a对象里去。
像上面的代码:声明了一个字符串“GG”对象,而ss就是字符串“GG”对象的引用;
PS:有不对的望高手指正!!!
这里的s保存在栈内存,而s所指向的对象保存在堆内存,通过s可以找到堆内存中对应的对象。
引用存储于堆栈中,对象存储于堆中。
java的引用在语法上更“接近“于c++的引用而不是指针。
这里的s保存在栈内存,而s所指向的对象保存在堆内存,通过s可以找到堆内存中对应的对象。
public static void main(String[] args) {
int a=10;
Text Text=new Text();
Text.aaaa(a);
System.out.println("========="+a);
}
public void aaaa(int b){
b=3;
}}
上面是引用啊,
下面是传递
public class Text {
int a=10;
public static void main(String[] args) {
Text Text=new Text();
Text.aaaa();
}
public void aaaa(){
a=3;
System.out.println("========="+a);
}}
传递到方法中就是引用,还要看作用域啊
B b = a;
new出来的A其实在这里
____
a --------> | |
b --------> |____| 使用a和b就能对new出来的A对象进行调用
a和b就叫对象的引用
引用--》遥控器
对象--》电视机
呵呵
对象是真实存在的,存放于堆中;而引用是一种指向对象的虚拟的指针,指向对象,存在于堆栈中。
例如:
A a = new A();
在这里 a是一个引用,而生成的对象 new A()则是真实存在的对象。
A a = new A();//用A类创建一个对象,并把这个对象的引用放到a对象里去。
s是一个引用 ,尚未开辟内存 而加入new String ();时会在堆里开辟空间 而s在栈里存储数据,而指向堆里的类 这是s可以称为对象呢