易截截图软件、单文件、免安装、纯绿色、仅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编程中的异常处理是一个很常见的话题了,几乎任何一门介绍性的Java课程都会提到异常处理。不过,我认为很多人其实并没有真正掌握正确处理异常情况的方法和策略,最多也就不过了解个大概,知道点概念。本文就对三种不同程度和质量的Java异常处理进行了讨论,所阐述的处理异常的方式按手法的高下分为:好,不好和恶劣 ......

Java中将数组各元素作为数据项插入到数据库中

private PreparedStatement pstmt;
String sql="INSERT INTO TABLE(id,名称,用户id,Stbid,MAC,用户状态,总次数,Ip地址,资料更新时间) " +
           "VALUES(?,?,?,?,?,?,?,?,?)";
 pstmt=connection.prepareStatement(sql);
 pstmt.setString(1,array[0]);
......

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 ......

面对Scala四大特性 Java程序员能否抗拒

如果你是一名Java程序员,并且关注这编程语言方面的发展,比如经常去TIOBE网站了解编程语言流行度排行,那么你应该听说过Scala,如果你还没有开始学习Scala,或者打算下个礼拜开始学的话,请先看看下面这篇文章,看看能不能改变你的想法。
Scala是为你准备的吗?你必须自己看明白并做决定。除了伸展性之外,我们发现喜欢用S ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号