易截截图软件、单文件、免安装、纯绿色、仅160KB

Java对象、引用

Java对象及引用
    Java对象及引用是容易混淆却又必须掌握的基础知识,本章阐述Java对象和引用的概念,以及与其密切相关的参数传递。
    先看下面的程序:
    StringBuffer s;
    s = new StringBuffer("Hello World!");
    第一个语句仅为引用(reference)分配了空间,而第二个语句则通过调用类(StringBuffer)的构造函数StringBuffer(String str)为类生成了一个实例(或称为对象)。这两个操作被完成后,对象的内容则可通过s进行访问——在Java里都是通过引用来操纵对象的。
    Java对象和引用的关系可以说是互相关联,却又彼此独立。彼此独立主要表现在:引用是可以改变的,它可以指向别的对象,譬如上面的s,你可以给它另外的对象,如:
    s = new StringBuffer("Java");
    这样一来,s就和它指向的第一个对象脱离关系。
    从存储空间上来说,对象和引用也是独立的,它们存储在不同的地方,对象一般存储在堆中,而引用存储在速度更快的堆栈中。
    引用可以指向不同的对象,对象也可以被多个引用操纵,如:
    StringBuffer s1 = s;
    这条语句使得s1和s指向同一个对象。既然两个引用指向同一个对象,那么不管使用哪个引用操纵对象,对象的内容都发生改变,并且只有一份,通过s1和s得到的内容自然也一样,如下面的程序:
    StringBuffer s;
    s = new StringBuffer("Java");
    StringBuffer s1 = s;
    s1.append(" World");
    System.out.println("s1=" + s1.toString());//打印结果为:s1=Java World
    System.out.println("s=" + s.toString());//打印结果为:s=Java World
    上面的程序表明,s1和s打印出来的内容是一样的,这样的结果看起来让人非常疑惑,但是仔细想想,s1和s只是两个引用,它们只是操纵杆而已,它们指向同一个对象,操纵的也是同一个对象,通过它们得到的是同一个对象的内容。这就像汽车的刹车和油门,它们操纵的都是车速,假如汽车开始的速度是80,然后你踩了一次油门,汽车加速了,假如车速升到了120,然后你踩一下刹车,此时车速是从120开始下降的,假如


相关文档:

JAVA的参数传递机制

参数传递机制主要有两种:值调用(call-by-value),引用调用(call-by-reference)。
值调用(call-by-value):会对实在参数求值(如果是表达式)或拷贝(如果是变量)。这些值被放在属于被调用过程的响应形式参数的内存位置上。
引用调用(call-by-reference):实在参数的地址作为相应的形式参数的值被传递给被调用者。在被调 ......

JAVA参数传递值传递的理解。

首先明确一下:java里面只有值传递,引用传递只是一只误读而已。
来看一个例子:
public static void main(String[] args)
{
StringBuffer str1 = new StringBuffer("hello");
test(str1);
System.out.println("main : " + str1);
}
public static void test(StringBuffer s ......

所有学java网址

http://edu.itfuture.org/index.jsp  程序员之家
www.8isp.com
www.wang48.com  
www.topsage.com  大家网
www.cnsd.com     
http://www.jpeixun.com   / 时代骏晟
http://bbs.langsin.com/forum-9-3.html  浪曦网
www.123w.net 
w ......

JavaScript和Java的区别


JavaScript和Java的区别
作为本站的宗旨--提供学习web编程的所有知识,特开设本专栏JavaScript基础教程.本JavaScript基础教程的内容从互联网上转载,原则上会带有原教程的链接,所以本JavaScript基础教程的版权归原处所有,特此声明.热切的希望本JavaScript基础教程能为你带来帮助--康盛博客.
JavaScript语言和J ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号