1.Java的内存机制 Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后(比如,在函数A中调用函数B,在函数B中定义变量a,...
分类:
编程语言 时间:
2015-03-18 12:10:04
阅读次数:
144
java中==、equals()、hashCode()都和对象的比较有关。
关于==
==是容易理解的。java设计java就是要比较两个对象是不是同一个对象。
对于引用变量而言,比较的时候两个引用变量引用的是不是同一个对象,即比较的是两个引用中存储的对象地址是不是一样的。
对于基本数据类型而言,比较的就是两个数据是不是相等,没什么歧义。
由于对于...
分类:
编程语言 时间:
2015-03-12 15:05:30
阅读次数:
167
6.3.1 Object类它是所有类,数组,枚举类的父类
Java允许把所有类型的对象赋给Object类型的变量
它有如下几个方法
boolean equals(Object obj):
protected void finalize():当系统没有引用变量引用到该对象时,垃圾回收器调用此方法来清理该对象的资源
Class getClass():
int hashCode():
Str...
分类:
其他好文 时间:
2015-03-12 11:34:45
阅读次数:
178
1.变量变量第一次赋值时被创建,变量在使用前必须赋值变量本身没有类型,变量类型为它引用的对象类型;变量在使用时被替换成它引用的对象2.对象对象本身具有计数和类型,变量引用对象,当对象的引用变为0的时候,回收对象内存。但是类似INT等小类型对象,不一定立马回收它的内存。修改指向同一个可变对象的任何一个...
分类:
编程语言 时间:
2015-03-11 21:09:54
阅读次数:
162
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。(简单说就是变量指向的对象的内存地址是否相同)
如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet obj = new Object();...
分类:
其他好文 时间:
2015-03-10 21:30:24
阅读次数:
117
Java中String是一个特殊的包装类数据有两种创建形式:String s = "abc";String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是否被保存在字符串常量池中,如果没有则在栈中创建三个char型的值'a...
分类:
编程语言 时间:
2015-03-08 17:10:35
阅读次数:
173
java引用变量有2中类型: (1)编译时类型:由声明该变量时使用的类型决定。 (2)运行时类型:由实际赋给该变量的对象决定。如果编译时类型和运行时类型出现不一致时,就可能出现多态!看下面的程序:引用变量bc和sc编译时类型和运行时类型完全相同,没有任何问题。但是,第三个引用变量ploymoph.....
分类:
编程语言 时间:
2015-03-05 00:02:19
阅读次数:
296
栈内存:在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存:堆内存用于存放由new创建的对象和数组。....
分类:
编程语言 时间:
2015-03-01 23:46:20
阅读次数:
245
==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。如果一个变量指向的数据是对象类型的,那么,这时候涉及了两块内存,对象本身占用一块内存(堆内存),变量也占用一块内存,例如Objet ob...
分类:
其他好文 时间:
2015-03-01 10:31:42
阅读次数:
139