串行回收器 串行回收器只有一个工作线程,串行回收器可以在新生代和老年代使用,根据作用于不同的堆和空间,分为新生代串行回收器和老年代串行回收器. 1.新生代串行回收器 串行收集器是所有垃圾回收器中最古老的一种,也是JDK中最基本的垃圾回收器之一.串行回收器主要有两个特点: 使用单线程进行垃圾回收 独占式垃圾回收 在串行收集器进行垃圾回收时,Java应用程序中的线程都需要暂停,等待垃圾回收完成.这种现象成为Stop-The-World.它将造成非常糟糕的用户体验,在实时性要求较高的应用场景中,这种现…
参考博客:Java 对象的串行化(Serialization) 1,什么是串行化 对象的寿命通常随着生成该对象的程序的终止而终止.有时候,可能需要将对象的状态保存下来,在需要时再将对象恢复.我们把对象的这种能记录自己的状态以便将来再生的能力.叫作对象的持续性(persistence).对象通过写出描述自己状态的数值来记录自己,这个过程叫对象的串行化(Serialization).串行化的主要任务是写出对象实例变量的数值.如果变量是另一对象的引用,则引用的对象也要串行化.这个过程是递归的,串行化可…
首先,我们必须建立一个良好的环境,那是,jdk并且tomcat.如果它不必须是web装了! 还有就是配置,也就是默认的comm.jar ,javax.comm.properties , win32com.dll这几个文件要放对地方 comm.jar放到C:\Program Files (x86)\Java\jdk1.7.0_01\jre\lib\ext 同一时候也放到jre同样文件夹下 javax.comm.properties放到 C:\Program Files (x86)\Java\jdk…
一.运行class文件 执行带main方法的class文件,Java虚拟机命令参数行为: java <CLASS文件名> 注意:CLASS文件名不要带文件后缀.class 例如: java Test 如果执行的class文件是带包的,即在类文件中使用了: package <包名> 那应该在包的基路径下执行,Java虚拟机命令行参数: java <包名>.CLASS文件名 例如: PackageTest.java中,其包名为:com.ee2ee.test,对应的语句为:…
并行回收器 新生代ParNew回收器 ParNew只是简单地将串行回收器多线程化,他的回收策略,算法以及参数都喝新生代串行回收器一样.由于并行回收器使用多线程进行垃圾回收,因此,在并发能力强的CPU上,它产生的停顿时间要短语串行回收器. 开启ParNew可以使用以下参数. -XX:+UseParNewGC  新生代使用ParNew回收器,老年代使用串行回收器. -XX:+UseConcMarkSweepGC:新生代使用ParNew回收器,老年代使用CMS. ParNew回收器工作时的线程数量可以…
Java 虚拟机       一.Java虚拟机的基本结构 ①类加载子系统:从文件系统或者网络中加载Class信息,存放在方法区中. ②方法区中存放放进来的Class信息,也包括一些运行时常量池信息包括字符串字面量和数字字面量. ④java堆外的直接内存,访问速度优于Java堆.可以申请用于读写频繁的场合.不会受限于最大堆大小,但会受限于操作系统给出的最大内存. ⑥垃圾回收系统自动处理②③④的回收 ⑧Java虚拟机线程都有一个私有的java栈,其中保存着帧信息,局部变量,方法参数和java方法的…
深入理解Java虚拟机--下 参考:https://www.zybuluo.com/jewes/note/57352 第10章 早期(编译期)优化 10.1 概述 Java语言的"编译期",可能是指一个前端编译器把.java文件转变成.class文件的过程:也可能是指虚拟机的后端运行期编译器(JIT编译器,Just In Time Compiler,即时编译器)把字节码转变成机器码的过程:还可能是指使用静态提前编译器(AOT编译器,Ahead Of Time Compiler)直接把*…
目录 1.Java虚拟机内存模型 1.1 程序计数器 1.2 Java虚拟机栈 局部变量 1.3 本地方法栈 1.4 Java堆 1.5 方法区(永久区.元空间) 附图 2.JVM内存分配参数 2.1 设置最大堆内存 2.2 设置最小堆内存 2.3 设置新生代 2.4 设置持久代 2.5 设置线程栈 2.6 堆的内存分配 2.7 堆分配参数总结 3.垃圾收集基础 3.1 垃圾收集的作用 3.2 垃圾回收算法与思想 3.2.1 引用计数法(Reference Counting) 3.2.2 标记-…
所谓虚拟机,就是一台虚拟的机器.它是一款软件,用来执行一系列虚拟计算机指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机,Visual Box .Vmare就属于系统虚拟机.他们完全是对物理计算机的仿真,提供了一个可运行完成操作系统的软件平台.程序虚拟机典型代表就是java虚拟机,它专门为执行单个计算机程序而设计,在java 虚拟机中执行的指令,我们称为java字节码指令.无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚拟机提供的资源中.java发展至今,出现过很多虚拟机,最初Sun使…
堆分配参数: -XX:+PrintGC 使用该参数,虚拟机启动后,只要遇到GC就会打印日志: -XX:+UseSerialGC 配置串行回收器: -XX:+PrintGCDeltails 可以查看详细信息,包括各个区的情况 -Xms:设置Java程序启动时初始堆的大小(主要参数) -Xmx:设置Java程序能获得的最大堆大小(主要参数) 新生代的配置: -Xmn: 可以设置新生代的大小,设置一个比较大的新生代会减少老年代的大小,这个设置对系统性能以及GC行为有很大的影响,新生代大小一般会设置整个…