JVM
文章平均质量分 79
denganming1214
这个作者很懒,什么都没留下…
展开
-
java简介(1)
java简介 楼主最近在看《JVM高级特性与最佳实践》把一些重要的东西记录下,以便以后回顾,并且给大家做个参考参考。以后每日一更。 java是什么 java广义上包括:java程序设计语言、各个硬件平台的java虚拟机、class文件格式、javaAPI类库、第三方类库 JDK:java程序开发的最小环境。包括:java程序设计语言、java虚拟机、javaAPI类库 JRE:jav...原创 2018-09-04 19:21:03 · 142 阅读 · 0 评论 -
垃圾回收算法和垃圾收集器(4)
一、概述 问题: 垃圾回收回收什么(what) 垃圾什么时候回收(when) 怎么回收(how) 回收什么 我们java内存中有:java堆,java栈,方法区,直接内存 其中java栈是跟随线程生命周期的,所以不需要我们回收。 我们主要的回收目标:java堆、方法区、直接内存 方法区主要回收类和常量 什么时候回收 当对象没有引用的时候: 1、引用计数法:当对象被引...原创 2018-09-11 17:25:07 · 146 阅读 · 0 评论 -
java内存模型(2)
java和C++的不同之处,c++是由程序员自己管理内存的,申请和释放,java是由虚拟机帮忙做的这些事,java程序员不要关心内存的问题。 但是产线总是会出现一些内存溢出/内存泄漏的问题,这个时候只有了解其原理,才能有效的解决问题。 类加载子系统:java虚拟机把class字节码类加载到内存中,并初始化,具体加载过程后续章节中会讲到 java方法区: 参数: 堆内存 栈深度 垃...原创 2018-09-06 09:02:42 · 187 阅读 · 0 评论 -
一个对象的内存信息(3)
对象的创建 对象的序列化或者克隆都是调的new 查看类的信息是否在方法区中,并且已经加载、解析、初始化过 确定对象的内存大小,类的信息算出来 分配内存: 指针碰撞:适用规整的内存空间,直接执行后移 空闲列表:不规整的,需要维护空闲列表,分配,hotspot默认方式 为了减少竞争条件,每个线程都有一个TLAB,只有TLAB分配完了,才去堆中申请新的TLAB内存空间(启发:生成分布式ID的方式)...原创 2018-09-06 10:37:50 · 138 阅读 · 0 评论 -
java并发(6)
一、为何会有并发问题 竞争条件:当多于2个程序访问试图读写同一个数据时,会因2个程序的执行顺序影响各自的执行结果,这样的情况叫做竞争条件。就叫有并发问题。 线程安全:当多个线程访问一个对象时,如果我们不需要额外的考虑这些线程在运行时的调度和交替,且不需要额外的同步机制,程序都能运行正确的结果,那么称对象是线程安全的 java内存模型和协议 内存模型 操作系统硬件的并发问题:多个处理器...原创 2018-09-17 19:01:23 · 149 阅读 · 0 评论 -
java内存调试工具(5)
jhat会分析一个dump文件,然后把结果发布到一个html服务器上,有一定的用途,html也是主要看histogram。jdk自带调试工具,在产线环境恶劣的情况下,比如内网隔离,传输信息困难,难以拿到本地调试,没有window环境,初步检查系统的情况下使用。也是监控内存,cpu,线程,类信息和参数的。jstack是比较有用的一个命令,查看线程的情况,包含锁,俗称javacore。是一个比较好用的工具,界面功能更强大,界面更友好。查看jvm的内存,cpu信息,线程,参数,类信息。有几个比较重要的信息。原创 2018-09-13 18:25:19 · 4029 阅读 · 1 评论