- 浏览: 249518 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (192)
- 技术研究学习 (19)
- 工作总结 (4)
- spring3.x (11)
- mail (2)
- jar (2)
- FCKeditor (1)
- quartz (2)
- json (1)
- jdbc (5)
- struts2 (6)
- java基础 (18)
- jboss (3)
- IT名称解析 (1)
- 测试工具 (2)
- 工作趣谈 (1)
- 数据库 (8)
- js (8)
- jquery (1)
- mysql (20)
- Sql (3)
- Oracle (1)
- easyui (0)
- log4j (1)
- 源码研究 (1)
- Jasper Report (0)
- Jbpm4 (4)
- xml (1)
- ireport (0)
- javavm (1)
- sitemesh (5)
- compass (1)
- jvm (1)
- ext (1)
- lucene (0)
- cxf (1)
- Blazeds (0)
- Resteasy (1)
- jaxb (1)
- tomcat (1)
- Rmi (1)
- BoneCP (1)
- velocity (3)
- OSCache (1)
- EHCache (1)
- 高性能开发 (9)
- 设计模式 (0)
- 网络协议应用 (1)
- Ibatis (1)
- powerdesigner (1)
- 架构师之路 (2)
- memcached (4)
- MapReduce (1)
- 测试组 (1)
- 图像处理 (2)
- LoadRunner (2)
- 报表 (1)
- 负载均衡 (1)
- 分布式 (3)
- c# (1)
- java中一些特殊问题 (3)
- java 8 (1)
- Mogodb (1)
- 项目设计与实现 (2)
- Ubuntu (1)
- eclipse (1)
- gradle (1)
- 私有云 (1)
- redis (1)
- 移动前端 (1)
最新评论
1. 强可触及
垃圾收集器不会回收强可触及对象占据的空间。
2. 软可触及(SoftReference)
垃圾收集器可能回收软可触及对象的内存。如果发生了,它会清除这些软可触及对象的软引用。当垃圾收集器清除了一个和引用队列有关联的软引用对象时,它把该软引用对象加入队列。
SoftReference可以用来创建内存中缓存,JVM的实现需要在抛出OutOfMemoryError之前清除软引用,但在其他的情况下可以选择清理的时间或者是否清除它们。
3. 弱可触及 (WeakReference)
垃圾收集器必须归还弱可触及对象所占据的内存。
WeakReference 可以用来创建规范映射,比如哈希表,它的关键字在没有其他程序部分的引用时可以从映射中清除。java.util.WeakHashMap就用弱引用提供了这样的规范映射。
4. 可复活的
对象既不是强可触及、软可触及,也不是弱可触及,但是仍然可能通过执行某些终结(finalizer)方法复活到这几种状态之一。
5. 影子可触及
垃圾收集器不会清除一个影子引用,所有的影子引用都必须由程序明确的清除。
调用影子对象的get()方法只能得到null。
6. 不可触及
不可触及对象已经准备好回收了。
垃圾收集器不会回收强可触及对象占据的空间。
2. 软可触及(SoftReference)
垃圾收集器可能回收软可触及对象的内存。如果发生了,它会清除这些软可触及对象的软引用。当垃圾收集器清除了一个和引用队列有关联的软引用对象时,它把该软引用对象加入队列。
SoftReference可以用来创建内存中缓存,JVM的实现需要在抛出OutOfMemoryError之前清除软引用,但在其他的情况下可以选择清理的时间或者是否清除它们。
3. 弱可触及 (WeakReference)
垃圾收集器必须归还弱可触及对象所占据的内存。
WeakReference 可以用来创建规范映射,比如哈希表,它的关键字在没有其他程序部分的引用时可以从映射中清除。java.util.WeakHashMap就用弱引用提供了这样的规范映射。
4. 可复活的
对象既不是强可触及、软可触及,也不是弱可触及,但是仍然可能通过执行某些终结(finalizer)方法复活到这几种状态之一。
5. 影子可触及
垃圾收集器不会清除一个影子引用,所有的影子引用都必须由程序明确的清除。
调用影子对象的get()方法只能得到null。
6. 不可触及
不可触及对象已经准备好回收了。
发表评论
-
jdk1.4,jdk1.5和jdk1.6的区别
2013-05-14 18:54 1202来源:http://blog.csdn.net/f ... -
Response.ContentType 详解
2013-03-13 09:45 1350不同的ContentType 会影响客户端所看到的效果.默认的 ... -
JAVA获取本地,远程macAddress
2013-02-27 13:56 976来源:http://www.2cto.com/kf/20110 ... -
java中断点续传
2013-02-22 15:38 1282转载自 http://www.ibm.com/ ... -
nio
2013-02-22 09:39 921来源http://blog.chinaunix.net ... -
使用非阻塞ServerSocketChannel、SocketChannel代替ServerSocket和Socket
2013-02-19 09:52 2570来源:http://blog.sina.com.cn/s/ ... -
java字符串编码类型获取
2012-10-05 10:11 934原创作品,允许转载,转载时请务必以超链接形式标明文章 ... -
Java网络编程总结
2012-09-29 14:42 0http://www.cnblogs.com/oubo/arc ... -
Java使用JNDI技术获取DataSource对象
2012-09-29 11:28 1219package common; imp ... -
Java并发包探秘 (二) ConcurrentHashMap
2012-09-27 10:49 948Java并发包中有很多精心设计的高并发容器。有Concur ... -
Java并发包探秘 (一) ConcurrentLinkedQueue
2012-09-27 10:47 1124Java并发包中有很多精心设计的高并发容器。有Conc ... -
集合之线程安全
2012-09-27 10:28 982Map map = Collections.synchro ... -
Collections.synchronizedMap(new LinkedHashMap())
2012-09-27 10:24 1256LinkedHashMap和LinkedHashSet是J ... -
Java栈与堆
2012-08-16 12:26 730Java栈与堆 ----对这两 ... -
多线程 sleep()和wait()的区别
2012-08-14 10:12 1024接触了一些多线程的东西,还是从java入手吧。 相信看这篇文 ... -
java oop
2012-08-14 10:13 870对象一般都有两个特征:状态和行为 类实质上定义的是一种数据类 ... -
override与overload
2012-08-14 10:12 724重载Overload特点(两必须一可以) public boo ... -
Java中堆栈和内存分配原理
2012-08-13 09:32 783来源:http://uule.iteye.com/blog/1 ...
相关推荐
面向对象的编程思维是Java等现代编程语言的核心思想,它强调将现实世界中的事物抽象为对象,通过对象之间的交互来实现程序的功能。在Java中,面向对象编程(OOP)包含三大特性:封装、继承和多态。 1. 封装:封装是...
也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把...
9.11.2 可触及性状态的变化 9.11.3 缓存、规范映射和临终清理 9.12 一个模拟:“heap of fish” 9.12.1 分配鱼 9.12.2 设置引用 9.12.3 垃圾收集 9.12.4 压缩堆 9.13 随书光盘 9.14 资源页 ...
通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥,通常应对私钥加密后再保存、如何从...
当我们创建一个类的对象时,实际上是根据类的定义在内存中分配空间并初始化对象的状态。对象可以通过其方法来改变状态或执行行为。 总结起来,面向对象编程的四大特性——抽象、封装、继承和多态,共同构成了Java等...
9.11.2 可触及性状态的变化 9.11.3 缓存、规范映射和临终清理 9.12 一个模拟:“Heap of Fish” 9.12.1 分配鱼 9.12.2 设置引用 9.12.3 垃圾收集 9.12.4 压缩堆 9.13 随书光盘 9.14 资源页 ...
以下是从给定的文件标题、描述、标签及部分内容中提取的关键知识点,它们不仅覆盖了JAVA的基础,还触及了高级特性,如面向对象编程、字符串处理、异常管理、集合类、Servlet与EJB等。 ### 一、面向对象编程的四大...
总的来说,`Unsafe`类提供了一种强大的手段来触及Java的底层机制,但它也带来了潜在的风险,因为直接操作内存和线程状态可能导致数据一致性问题和并发错误。在实际开发中,除非有特殊需求,否则通常应优先选择Java...
- **不可变对象**: 创建不可变对象,确保对象状态不变。 **示例**: ```java public class ThreadSafeExample { private int count = 0; public synchronized void increment() { count++; } public ...
9.11.2 可触及性状态的变化 9.11.3 缓存、规范映射和临终清理 9.12 一个模拟:“Heap of Fish” 9.12.1 分配鱼 9.12.2 设置引用 9.12.3 垃圾收集 9.12.4 压缩堆 9.13 随书光盘 9.14 资源页 第10章 栈...
Java中的对象存在三种状态:可触及状态、可复活状态和不可触及状态。当对象被创建并被至少一个引用指向时,它处于可触及状态。如果所有引用都被移除,对象进入可复活状态。在这一状态下,垃圾回收器可能会调用对象的...
9.11.2 可触及性状态的变化 9.11.3 缓存、规范映射和临终清理 9.12 一个模拟:“Heap of Fish” 9.12.1 分配鱼 9.12.2 设置引用 9.12.3 垃圾收集 9.12.4 压缩堆 9.13 随书光盘 9.14 资源页 ...
- 对象引用的四种状态:可达、可触及、可复活、不可达。 - 垃圾回收机制:如何判断对象是否可回收,以及GC算法。 7. **IO流** - 流的概念:数据的输入输出模型。 - 文件操作:读写文件,文件复制。 - 字节流与...
书中的Java知识点可能涵盖基础语法、面向对象设计原则、异常处理、集合框架、多线程编程、网络编程以及JVM内部机制等。作者可能通过具体的案例和实践,帮助读者理解如何编写出高效、可维护的Java代码。 其次,书中...
- Java虚拟机栈中引用的对象。 - 本地方法栈中JNI(Native方法)引用的对象。 - 方法区中类静态属性引用的对象。 - 方法区中常量引用的对象。 ##### 2. 常见的垃圾回收算法 - **标记-清除算法**: - **优点**:...
此外,开发技术选用了JSP(Java Server Pages),这是一种动态网页技术,能够与后端Java代码紧密结合,实现数据的动态展示和处理。 系统分为前台和后台两大部分。前台主要是用户界面,包括用户注册、购物车管理、...
- **可达性分析算法**:通过一系列名为“GC Roots”的对象作为起点,跟踪所有从这些根对象可达的对象,未被触及的对象即被认为是垃圾。 - **引用计数算法**:简单而直观,但难以处理循环引用的问题。 - **分代假设**...