随笔分类 - 【深入浅出-JVM】
摘要:JVM 内存分布 线程共享数据区: 方法区 类信息,静态变量 堆 数组对象 线程隔离区 虚拟机栈 方法 本地方法栈 本地方法库 native 堆、程序计数器 JVM 运行数据 程序计数器 线程隔离 ,比较小的内存空间,当前线程所执行的字节码的行号 线程是一个独立的执行单元,由 CPU执行 唯一没有
阅读全文
摘要:目的 根据音标念单词,根据单词写音标 规律 根据字母写音标 |字母|音标| | | | |a|[æ]| |b|[b]| |c|[k]| |d|[d]| |e|[ɛ]| |f|[f]| |g|[g]| |h|[h]| |i|[ɪ]| |j|[dʒ]| |k|[k]| |字母|音标|首、尾| | | |
阅读全文
摘要:方法 public Class loadClass(String name) throws ClassNotFoundException 通过类名发挥这个类的Class实例 protected final Class defineClass(byte[] b,int off,int len) 根据给
阅读全文
摘要:过程 装载 条件 主动使用 class时 创建一个类的实例 (new 、反射、克隆、反序列化) 调用类的静态方法(invokestatic) 使用类或接口的静态字段(getstatic、putstatic) 使用 reflect反射 初始化子类,先初始化父类 main方法的类 例子 被动引用不会初始
阅读全文
摘要:概念 Service Provider Interface 规则 1. 在resource/META INF/services 创建一个以接口全限定名为命名的文件,内容写上实现类的全限定名 2. 接口实现类在classpath路径下 3. 主程序通过 java.util.ServiceLoader
阅读全文
摘要:概念 方法区是虚拟机规范定义的,是所有线程共享的内存区域,保存系统的类的信息。比如:类的字段、方法、常量池、构造函数的字节码内容、代码、JIT 代码 永久代、metaspace 是对方法区的实现。 Hotspot 实行分代管理内存(新生代、老年代、永久代) jdk8 实现方法区用 metaspace
阅读全文
摘要:概念 TLAB(Thread Local Allocation Buffer)线程本地分配缓冲区(线程私有分配区,私有分配,公共查看),占用 Eden 区(缺省 Eden 的1%),默认开启,JVM 会为每一个线程分配一块 TLAB 区域,避免堆对象共享造成的多线程线程同步。 背景 优化多线程堆空间
阅读全文
摘要:概念 对那些作用于不会逃逸出方法的对象,在分配内存时,不在将对象分配在堆内存中,而是将对象属性打散后分配在线程私有栈内存上,这样随着方法调用结束,栈上分配打散的对象也被回收掉,不在增加 GC 额外压力。 Java 对象分配流程 示例 循环创建1000000000一个对象,阻止栈上分配 栈上分配条件:
阅读全文
摘要:代码 其中 recursion(long a,long b,long c) 方法的栈帧如下,一共13 个long类型的局部变量一共占用 26 个字 感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,您的鼓励是作者写作最大的动力。 作 者 : "@mousycoder
阅读全文
摘要:Java 虚拟机基本结构 Java 堆 新生代、老年代划分 栈帧 感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,您的鼓励是作者写作最大的动力。 作 者 : "@mousycoder" 原文出处 : "http://mousycoder.com/thinking
阅读全文
摘要:环境 mac,xcode,jdk8, "openjdk" ,autoconf 步骤 1. 安装autoconf 2. 下载openjdk源码 3. 在openjdk 根目录下执行编译脚本,大约 10 分钟不到,执行完成 4. 进入编译的输出的jdk目录,执行 感谢您的耐心阅读,如果您发现文章中有一些
阅读全文
摘要:5 浮点数推导 二进制转十进制 1 10000001 01000000000000000000000 1 10000001 101000000000000000000000 如果指数位不全为 0 则尾数位首位+1 ,如果指数位全为 0,则尾数位首位+0 十进制 = 1 2^(129 127) (1
阅读全文
摘要:计算机中有补码表示 0 0 为正数 原码 00000000 00000000 00000000 00000000 反码 00000000 00000000 00000000 00000000 正数反码等于原码 补码 00000000 00000000 00000000 00000000 正数补码等于
阅读全文
摘要:Java 虚拟机地位 种类 BEA的JRockit Solaris的Exact VM IBM的J9 感谢您的耐心阅读,如果您发现文章中有一些没表述清楚的,或者是不对的地方,请给我留言,您的鼓励是作者写作最大的动力。 作 者 : "@mousycoder" 原文出处 : http://mousycod
阅读全文
摘要:本系列主要是让一个刚入门的 java 开发者,也能愉快的从零开始成为一个真正的 jvm 大神。 大纲 java 虚拟机的定义、总体架构、常用配置 垃圾回收算法、各类垃圾回收器 java 虚拟机对多线程的支持 java 虚拟机的 class 文件结构 java 虚拟机的执行系统 待定 感谢您的耐心阅读
阅读全文

浙公网安备 33010602011771号