
java虚拟机
文章平均质量分 85
果子狸的大果果
幸运的是,我是一个喜欢编程的人。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Synchonized锁的优化
Synchonized锁做了哪些优化?昨天面试的时候被面试官问到这个问题,但是不够了解,所以在面试结束后查阅资料,在此作下总结。Synchonized锁的原理以及作用此次不再过多介绍,可以参考此前文章Java多线程及Synchonized关键字;Synchronized锁在JDK1.6的时候做了大量优化,从而实现高效并发,如下:1、自适应的自旋锁在原有的Synchronized锁中,如果线程B想要获得object对象的锁,但是发现已经被线程A占有,则会选择阻塞,等到线程A释放锁的时候,线原创 2020-09-15 12:30:44 · 208 阅读 · 0 评论 -
学习java多线程2——volatile关键字作用及其原理
并发编程中的三个概念1、原子性和数据库事务的原子性概念是一样的,一组操作要么全部成功要么全部失败,不可分割。 x = 10; //语句1y = x; //语句2x++; //语句3x = x + 1; //语句4其实只有语句1是原子性操作,其他三个语句都不是原子性操作。语句...原创 2020-05-06 18:57:29 · 216 阅读 · 0 评论 -
Java虚拟机——运行时数据区域
java虚拟机章执行java程序的过程中会把它所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。1、程序计数器(线程私有程序计数器是一块较小的 内存区域,它可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理等基础功能都需要依赖这个计数器来完成。因为处理器在一个确定是时刻只会...原创 2018-10-25 18:57:15 · 178 阅读 · 0 评论 -
Java虚拟机——内存管理
虽然由于java虚拟机的存在,使得java的内存实现“自动化”,但是JVM也不是万无一失的,有时候还是需要我们去了解内存的分配和回收策略。一、内存分配对象的创建Java是一门面向对象的语言,在java虚拟机运行的过程中,时刻都有对象被创建出来。在语法层面,创建对象可能就是一个 new 关键字而已,我们需要了解的是在虚拟机中一个对象的创建过程。虚拟机遇到一个new指令时,首先回去检查...原创 2018-10-26 22:14:44 · 164 阅读 · 0 评论 -
Java虚拟机——类加载机制
一、类加载概述我们平时所写的java代码,基本都是在一个类/接口中,存储在一个.java类型的文件中。这个文件在使用时首先会被javac编译器编译为.class文件,.class文件时一组8位字节为基础的二级制流。java虚拟机把描述类数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 ...原创 2018-10-27 14:01:43 · 194 阅读 · 0 评论