近期研究Java Cache实现,发现使用到了软引用(SoftReference),不太理解,查阅了JDK文档、代码以及几篇文章。做个小结,如有错误,欢迎指正。之所以想学习一下Java的几种引用类型,原因有两个:理解Java Cache实现、学习Java引用与Java垃圾回收机制的关系内存资源是有限...
分类:
编程语言 时间:
2015-05-07 23:37:19
阅读次数:
199
问题:在JDK1.2以前,对象只有“被引用”和“不被引用”两种状态,对于一些“现在没用,但不确定以后是否有用”的对象,在这种场景下只能被定义为“不被引用”,因而会被垃圾回收。一旦将来使用到该对象,就会发现这个对象找不到了。我们希望描述这样的一类对象:如果内存空间充足,则保持在内存中;如果垃圾回收后的...
分类:
编程语言 时间:
2015-04-08 12:24:08
阅读次数:
140
JAVA中没有指针一说,但也有引用的概念。这里要说的主要是Integer是不是同一个对象。
1、先看一段代码:
public static void main(String[] args){
Integer a1 = 100;
Integer b1 = a1;//另一种也可以b1=100
Field field = null;
try {
field = a1.getCl...
分类:
编程语言 时间:
2015-04-07 00:47:51
阅读次数:
162
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会...
分类:
编程语言 时间:
2015-03-14 18:15:06
阅读次数:
163
java引用变量有2中类型: (1)编译时类型:由声明该变量时使用的类型决定。 (2)运行时类型:由实际赋给该变量的对象决定。如果编译时类型和运行时类型出现不一致时,就可能出现多态!看下面的程序:引用变量bc和sc编译时类型和运行时类型完全相同,没有任何问题。但是,第三个引用变量ploymoph.....
分类:
编程语言 时间:
2015-03-05 00:02:19
阅读次数:
296
封装、继承、多态是面向对象的三大特征,在Java中什么是多态?
Java引用变量有两种类型,分别是编译时类型和运行时类型。何为编译时类型,编译时类型就是由声明该变量时使用的类型决定,而运行时类型是由实际赋给该变量的对象决定
的,也就是说如果编译时类型和运行时类型不一致时,就可能出现上面提到的多态。
我们看下下面的程序:
class BaseClass {
publ...
分类:
编程语言 时间:
2015-02-17 23:35:39
阅读次数:
277
1、Java 引用变量有两个类型:一个是编译时的类型,一个是运行时的类型,编译时的类型由声明该变量时使用的类型决定,运行时的类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就会出现所谓的多态性;
2、引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法,这就是方法多态性的体现。
3、多态性是针对方法的,对象的属性不具备多态性。...
分类:
编程语言 时间:
2015-01-08 13:24:52
阅读次数:
177
如图,eclipse中我的包结构为:,我在 spt.app.MainFrame 中可以通过一下代码段使用资源:public static Object obj = ImageIconProxy.class.getClassLoader().getResource("img/absent.png");...
分类:
编程语言 时间:
2014-12-24 01:15:22
阅读次数:
227
前一段时间,我在 cnblogs 别人的博客中,谈到:java 中的引用/指针,与 c++/C# 中的引用/指针不是一个概念.Java 引用,相当于 c++ 指针(fun3)。Java 引用可以赋值 null, 而 c++ 引用 (见 fun2) 不能赋值 null,c++ 指针可以赋值 null(...
分类:
编程语言 时间:
2014-10-07 22:19:14
阅读次数:
298