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++,你要手动的去释放这些
    
     
	
	
    
    
	相关文档:
        
    
    
如何解决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堆的设 ......
	
    
        
    
    
java中的字符串也是一连串的字符。但是与许多其他的计算机语言将字符串作为字符数组处理不同,Java将字符串作为String类型对象来处理。将字符串作为内置的对象处理允许Java提供十分丰富的功能特性以方便处理字符串。下面是一些使用频率比较高的函数及其相关说明。 
String相关函数
1)substring()
它有两种形式,第一种 ......
	
    
        
    
          前一段时间我需要制作一个在线html编辑器,而在这方面使用最流行,功能最全面的就是fckeditor。但说实话,这个插件还真是配置复杂。我在网上搜索了很多java上的使用,但最后都有问题,出现问题最多的还是上传。最后通过大牛帮忙,我找到一个可以用的版本。该插件下载请查看我的下载资源中的 ......
	
    
        
    
    首先介绍一下环境变量的设置方法:
(这里以jdk1.6来安装,其他版本一样)
在把jdk安装到计算机中之后,我们来进行设置使java环境能够使用。
         
首先右键点我的电脑。打开属性。然后选择“高级”里面的“环境变量”,在新的打开界面中的系统变量需 ......