随笔分类 - java基础进阶(JVM)
摘要:概述 多任务的处理在现在的计算机中可以说是“标配”了,在许多的情况下,让计算机同时做几件事情,不仅是因为计算机的运算能力的强大,还有一个重要的原因是:cpu的运算速度和计算机的存储以及通讯子系统的相差的比较大,大部分的时间都花在了磁盘I/O,网络通信和数据库访问上面了,为了充分的利用资源,具体的说就是为了充分的利用cpu的“计算资源”。 高并发的一个典型的应用场景就是:一个服务端同时对多个客户端提...
阅读全文
摘要:override(重写) 1、方法名、参数、返回值相同。2、子类方法不能缩小父类方法的访问权限。3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。4、存在于父类和子类之间。5、方法被定义为final不能被重写。 父类和之类之间的,对于方法中含义的重新的定义逻辑overload(重载)1、参数类型、个数、顺序至少有一个不相同。 2、不能重载只有返回值不同的方法名。...
阅读全文
摘要:JVM设置过程中的一般的规范 在JVM的设置中,年轻代的设置比较的重要,因为年轻代存储空间分配的比较的块,可以说触发GC的机会比较的大。 默认的情况下:-XX:NewRatio 默认为2 说明:年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代),设置为2,则年轻代与年老代所占比值为1:2,年轻代占整个堆的1/3 -Xmx:设置JVM最大可用内存。 -Xms:设置JV...
阅读全文
摘要:垃圾回收算法中收集器 接着上面的说,了解了JVM收集垃圾的过程,然后我们看一看收集器。 串行收集器:用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以看到中间是一个直接的停顿的状态。可以使用-XX:+UseSerialGC打开。 示意图: 并...
阅读全文
摘要:垃圾回收算法中的一些问题 再上一遍中,说道JVM并不是采用一种垃圾回收的方法,因为不同的内存块采取的方法是不样的,那么:为什么要分块?为什么不采用同一种方法回收垃圾,这样不是更加的统一吗? 分块的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。 在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信...
阅读全文
摘要:主要讲解垃圾回收的算法 上面我们已经了解到了,JVM的体系的结构,这次我们来说一下垃圾回收的算法。 1. 最开始的想法,或者说垃圾回收的最容易想到的就是:引用计数(reference count) 我们记录每一个对象受到引用的次数,每增加一个引用就在这个对象对应的引用次数加一,每减少一次对对象的印象对应的引用次数就减一,回收的时候直接检查引用的次数,次数为零的时候直接的回收。这个有一个缺点就是循...
阅读全文
摘要:主要讲述java虚拟机的内存体系结构 了解了JVM 的一些基础之后,我们来看看java虚拟机内存的体系结构,这个是理解JVM垃圾收集算法的前提,理解了内存结构我们才能够针对不同的部分根据我们的程序进行优化。前面已经说明了,java的堆和栈,但是只是局部的说了一下,没有在java内存体系中说明。 这一节,主要来学习jvm的基本结构,也就是概述。说是概述,内容很多,而且概念量也很大,不过关于概念方面...
阅读全文
摘要:最近的项目中,出现了内存和性能的问题,需要优化,所以趁着这个机会,把自己关于java虚拟机的东整理一下,不对的地方,欢迎指出。 数据类型,因为在java的优化的过程中,检测到的数据类型一般比较的基础,毕竟复杂的数据类型就是有基础的组合而来的。 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,表示的是数据本身的值,是数据中的最基础的部分,一般包含: byte,...
阅读全文
浙公网安备 33010602011771号