JVM
程序员老任
Coding my passion!
展开
-
【问题驱动学习】-当你new一个对象的时候,JVM都做了什么?
构造器Java代码里面用new生成一个对象的时候,JVM会执行用来请求内存的 new 指令,以及用来调用构造器的 invokespecial 指令。通过使用javap命令查看生成的字节码,就能清晰的看到。// Foo foo = new Foo(); java代码 0 new Foo //申请内存 3 dup 4 invokespecial Foo() //调用构造器 7 a...原创 2020-03-13 12:01:58 · 157 阅读 · 0 评论 -
可能是最详细的HashMap(Java8)实现详解-原理+源码解析
1、预备知识hashhash又称散列或杂凑,一般音译为哈希,是指一种算法、函数或数据结构,可以根据key值直接映射为存储位置,为了方便理解,见下图:示例:假如key是一个数字,hash函数为取余,存储为数组key=100,hash为模10,经过hash后为0,即存储在数组的0号位置key也可以是字符串等,采用合适的hash函数,即可将key值散列到存储数组中链表红黑树红黑树是...原创 2020-03-09 16:11:31 · 611 阅读 · 0 评论 -
JVM1.8规范-运行时数据区(Run-Time Data Areas)
运行时数据区(Run-Time Data Areas)pc寄存器(The pc Register)如果当前执行的是java方法,pc寄存器包含当前执行的方法虚拟机当前执行的指令(instruction),如果当前执行的是native方法,pc寄存器的值为undefinedJVM栈(Java Virtual Machine Stacks)每个java线程都有私有的JVM栈,在线程创建...原创 2020-02-25 14:52:08 · 172 阅读 · 0 评论