JAVA引用的误区以及应用
呵呵!还是先给大家出个题吧!
public class PreferenceTest {
public int testVar = 0;
/**
* create data: 2009-12-30</br> Just for me to test preference.
*
* @author XiangJie
* @param args
*
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PreferenceTest test1 = new PreferenceTest();
test1.testVar = 10;
PreferenceTest test2 = test1;
test2.testVar = 5;
test1 = null;
System.out.println(test2.testVar);
}
}
请问打印结果是什么?
下面我来分析一下这个问题,和以前一样先不给出答案啊!
要讨论这个问题,就首先要了解JAVA对象和引用的关系,以及堆栈的存储关系!
以这个例子来讨论:PreferenceTest test1 = new PreferenceTest();在初始化的时候,首先是在堆中new出一片区域用于存储对象,也就是说对象是存储在堆中的,而PreferenceTest test1 只是一个引用,它存在与栈中,“=”的目的是让这个引用指向对应的对象,
。理清了这些关系我们来讨论结果到底是什么,首先是引用test1指向已经初始化的Object(对象),然后,test1.testVar=10的意思就是通过这个引用拿到object,再将它的变量testVar赋值为10,而PreferenceTest test2 = test1是指引用test2通过引用test1拿到object,也就是说现在object有两个引用指向它,test2.testVar=5实质上还是在操作当前的object,现在它的变量testVar赋值为5了,现在最关键的也就是test1=null,这句的意思是什么呢?其实很简单,将它的引用指向空(null),而并不是说当前的object变为null了,通过这一句,其实在栈中只有test2指向当前的object,答案也就出来了。
打印的结果为:5
大家也许会觉的这些都是小儿科,其实当真正遇到这个问题的时候,大家会发现往往是最基础的问题把你给栏注了。
下面给大家说一下在项目中实实在在遇到的问题:
开发过eclipse的朋友也许遇到过No more handles Exception ,引起这个exception的具体原因以及该怎么解决以后在讲,现在只是简单的说一下,其实SWT与JAVA的一个区别说造成的,java有一套完整的垃圾回收机制,所以我们不用担心垃圾回收的问题,而在SWT中的很多对象有一个dispose方法,这个方法就是用于释放对象的,只不过是它已经处理了很多实现类,但是有一种资源它没有处理过,那就是Resource对象,这个有点类似于C++,你要手动的去释放这些
相关文档:
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
今天是上课的第一天,新的老师、新的同学、新的环境,一切都是新的,从今天起我将在众多java大师的悉心辅导下进行为期四个月的魔鬼学习,以求使自己有一个脱胎换骨的变化,为自己将来的工作和生活奠定一个坚实的基础。
“工欲善其事,必先利其器”,对于MyEclipse的学习和使用就显得尤为重要:
&nb ......
如何解决OutOfMemoryError: Java heap space
http://www.busfly.cn/csdn/post/OutOfMemoryError-Java-heap-space.html
使用Java程序从数据库中查询大量的数据时出现异常:
java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。
JVM堆的设 ......
J2SE部分:
13本经典的Java书,新人必看:
http://www.ibeifeng.com/read.php?tid=846&u=14387
尚学堂马士兵ooa&ood免费
http://www.ibeifeng.com/read-htm-tid-14397.html&u=14387
Java高清PDF书籍大杂烩
http://www.ibeifeng.com/read.php?tid=4580&u=1438 ......