深入理解Java虚拟机之判断对象是否存活

深入理解Java虚拟机之判断对象是否存活        我们知道Java虚拟机中对象的存储位置在堆上,所以GC回收主要也就是在堆上进行的,那么垃圾收集器在进行对象回收的时候肯定不能随便收集,必须要判断对象的状态是不是可以被收集,也就是说对象是不是已经“死亡”?那么垃圾收集器是如何判断对象是否已经死亡呢?        在Java虚拟机中判断对象是否死亡有两中算法,分别是引用计数算法和可达性分析算法。 …

垃圾回收算法之路

垃圾收集算法   在上一节我说了我们应该回收哪些内存,什么时候回收,接下来我会谈怎样回收?   对于这样回收在think in java中也有相同的介绍,但是非常的少,译者也翻译得不太详细,之前读了think in java再看一遍 深入理解java虚拟机,加深了很多理解。 标记清除算法   标记-清除算法是最基础的算法,和他名字一样分为两个部分,“标记”和“清除”:首先标记所有需要回收的对象,在标记完成后…

Java垃圾回收机制

学习Java的同学注意了!!!  学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:434987175  我们一起学Java! 最近在啃《深入理解Java虚拟机》, 本文总结了垃圾回收使用的算法。 概述 Lisp 第一门真正使用内存动态分配和垃圾收集技术的语言;为什么学习垃圾回收机制: 当垃圾收集成为系统达到更高并发量的瓶颈时, 我们就需要对这些自动化的技术实施必要的调节和监…

读书笔记–>Java虚拟机垃圾收集算法

前言 熟悉虚拟机的垃圾收集算法有助于我们更好的了解Java内存的分配策略。对我来说,以前也有去了解过虚拟机相关的知识点,但是比较零碎。这次拜读《深入理解Java虚拟机》,真是相当后悔自己为啥不早点去读它。 标记-清除算法 该算法可以说是最基础的收集算法(因为后续的收集算法都是基于这种思路并对其缺点加以改进得到的),显而易见,该算法分为两个阶段:“标记”和“清除”。 首先标记出所有需要回…

初识JVM垃圾回收

这段时间有些悠闲,所以可以安心的更新一波知识,今天简单的记录一下JVM中的垃圾回收和内存分配策略 前面我们讲到Java堆、方法区是共享的,而程序计数器、虚拟机栈、本地方法栈都是线程私有的,所以基本上是不存在垃圾回收的,所以接下来讨论的东西都是基于Java堆和方法区 对象存活判定算法 判断对象是否存活一般有引用计数算法、可达性分析算法, 1、引用计数算法(python似乎使用这种算法判断的) …

java虚拟机—垃圾收集算法

1.标记-清除算法 (标记:就是标记无用的对象.) 正如名字一样,先标记再清除 但是有不足: 1.效率不行,标记和清除都慢 2.清除之后有太多的内存碎片 如下图: 2.复制算法 * 将内存(就是指堆)分为两半,每次只用一半,当这一半满了,就把还存活的对象复制到另外一半去,在清除已使用的那半,回收内存. * 但是相当于内存小了一半,不爽,得改! * 经研究发现,98%的对象都是朝生夕死.所有没必要划一半,于是乎就有了Eden…

Java虚拟机学习笔记(3)——垃圾收集器

          上一篇文章介绍了Java虚拟机的垃圾收集算法,基于根搜索算法思想实现的标记-清除算法、复制算法、标记-整理算法、分代收集算法。并且,我们知道了,现在的Java虚拟机实现,基本上都是使用的分代搜索算法。           这篇文章主要介绍的是Java虚拟机使用的一些垃圾收集器,这些垃圾收集器采用了不同的垃圾收集算法,有不同的垃圾收集特性,适用于不同的垃圾收集区域和垃圾收集场合。 Serial…

J2EE业务层模式–复合实体

问题: 需要用 entity bean 实现业务领域概念模型。 所谓业务对象,就是包含了业务逻辑和业务状态的对象。在J2EE应用系统中,可以用entity bean 实现业务对象;但是在用entity bean 实现业务对象,会产生一些问题。 第一个问题是,需要决定是使用远程entity bean还是本地entity bean ,远程entity bean 会增加网络负载,所以如果使用不懂就会境地系统的性能。EJB2 技术规范引入了本地entity bean,但…

SCJP的听课笔记

整理SCJP的听课笔记toss 原创??? SCJP的笔记第一天前言:?? JAVA的魅力一、1、强大的移植能力:虚拟机的存在,不同的平台存在不同的虚拟机。2、面向对象;3、良好的安全性:虚拟机的安全设置,应用服务器的安全性。4、联网能力。 二、中间件技术:EJB很好解决了和数据库连接的问题。 三、设计模式MVC M?????????????? V?????????????????? C? Model?????????? View??????????????? ControlJavaBean???…

整理SCJP的听课笔记。(辛苦整理出来,希望对象我一样的新手有帮助)

SCJP的笔记第一天前言:   JAVA的魅力一、1、强大的移植能力:虚拟机的存在,不同的平台存在不同的虚拟机。2、面向对象;3、良好的安全性:虚拟机的安全设置,应用服务器的安全性。4、联网能力。二、中间件技术:EJB很好解决了和数据库连接的问题。三、设计模式MVCM               V                   C  Model           View                ControlJavaBean         Jsp                Servlet T…

SCJP的笔记

前言:   JAVA的魅力 一、 1、强大的移植能力:虚拟机的存在,不同的平台存在不同的虚拟机。2、面向对象;3、良好的安全性:虚拟机的安全设置,应用服务器的安全性。4、联网能力。 二、 中间件技术:EJB很好解决了和数据库连接的问题。 三、 设计模式MVC M               V                   C  Model           View                ControlJavaBean         Jsp                Servlet Taglib    …

漫谈EJB在Java中的应用

Java语言最早被称为Oak,它是为了实现嵌入式的消费类电子产品应用而产生的,它的作者是James Gosling.Ed Frank, Patrick Naughton, Jonathan Payne, Chris Warth在随后的几年时间中为Java语言加入了大量的特性,并把Java语言的目标做了一个重新的定位,定位于适合Internet的语言。 Java语言是一种多用途的语言、并发的语言、以类为基础,面向对象的语言。它的设计尽可能的做到和操作系统是无关的,…

初学EJB Could not dereference object

今天写了一个很简单的EJB的例子,使用JUnit测试的时候,remote调用成功,local调用的时候报异常如下:javax.naming.NamingException: Could not dereference object 开始怀疑自己写得有问题,一通搜索下来发现客户端与EJB在不同的虚拟机中的时候访问local接口是会出现这个异常的。原来如此!

java优点之我见

                    个人认为java为什么成功,为什么会这么流行,是因为java到处都是规范,真正的东西其实很少,不管是j2ee,ejb,jdbc,ejb容器,web容器等等,甚至是java虚拟机也都是规范而已,这样的好处就是规范定义了大的方向,剩下的就看百家齐放,不管谁实现的好,那么都是在推动java的发展,实现的越好,那么用java的人也就越多,那么自己就更流行,如果不是推行规范,仅仅是个人实现的话,那…

EJB基础之RMI入门

做过UNIX下编程的朋友应该都听说过RPC的概念了,RPC的全称是Remote Procedure Call;如果和RMI的全称(Remote Method Invocation)比较,聪明的你应该知道了他们的 区别了:RPC是基于过程的,RMI是面向对象的.实际上,RMI是RPC的JAVA版本,因此,Java RMI具有Java的"Write Once,Run Anywhere"的优点,是分布式应用系统的百分之百纯 Java解决方案。 1)为什么序列化既然是分布式应用系统,就涉及多JRE的问题.在A J…
下一页 »