首页 > 编程语言 > 详细

java随笔2019/10/09

时间:2019-10-09 16:59:49      阅读:65      评论:0      收藏:0      [点我收藏+]

 

 

 

1.jdk/jre/jvm关系图如下:

技术分享图片

jdk:开发工具包(包含java运行环境jre、工具编译器、调试器java/javac/jdb、基础类库java API等)--开发人员必备

jre:运行时环境(包含虚拟机jvm->bin、java核心类库->lib)--普通用户使用必备

jvm:虚拟机 运行.class文件 实现跨平台的核心部分 --普通用户使用必备

2.jdk1.8中内存区域划分的:

技术分享图片

 

 

堆:是线程共享的内存区域。存放数组和对象的实例。是java垃圾收集器管理的主要区域,因此很多时候也称为GC堆。

方法区:也是各个线程共享的内存区域:用于存储已被虚拟机加载的类信息(版本、字段、方法、接口)、常量、静态变量。

虚拟机栈:虚拟机栈描述的是Java方法执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧(Stack Frame)用于存储局部变量表、操作栈、动态链接、方法出口等信息,每一个方法的调用直至完成的过程,就对应着一个栈帧在虚拟机栈中的入栈和出栈过程

本地方法栈:本地方法栈则是为虚拟机使用到的Native方法服务

程序计数器:字节码解释器工作时,通过改变这个计数器的值选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都要依赖该计数器。多线程中,为了让线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间互不影响、独立存储,因此这块是线程私有。

3.jmm内存模型:

指多线程并发时候,如何解决多线程之间的通信问题和如何解决线程操作 的原子性、可见性和有序性。

 

java随笔2019/10/09

原文:https://www.cnblogs.com/liupeng0204/p/11642754.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!