容易混淆的内容

1、JVM内存模型
2、Java内存模型
3、Java对象模型

JVM内存模型

1、堆
2、虚拟机栈
3、本地方法栈
4、程序计数器
5、方法区

Java内存模型

Java堆和方法区的区域是多个线程共享的数据区域。也就是说,多个线程可能可以操作保存在堆或者方法区中的同一个数据。这也就是我们常说的“Java的线程间通过共享内存进行通信”。
Java的多线程之间是通过共享内存进行通信的,而由于采用共享内存进行通信,在通信过程中会存在一系列可见性、原子性、顺序性等问题,而JMM就是围绕着多线程通信以及与其相关的一系列特性而建立的模型。JMM定义了一些语法集,这些语法集映射到Java语言中就是volatile、synchronized等关键字。

Java对象模型

Java对象自身的存储模型称之为Java对象模型
每一个Java类,在被JVM加载的时候,JVM会给这个类创建一个instanceKlass,保存在方法区,用来在JVM层表示该Java类。
当我们在Java代码中,使用new创建一个对象的时候,JVM会创建一个instanceOopDesc对象,保存在堆中

最新文章

  1. mysql之旅【第二篇】
  2. spring第一课,beans配置(中)——自动装配
  3. 【leetcode】Next Permutation
  4. html图片上下翻滚展示代码
  5. URAL 1934 Black Spot(最短路)
  6. [jquery] jQuery jsTree V3.2.1 基础Demo
  7. 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
  8. 《dive into python3》 笔记摘录
  9. C#常用格式输出
  10. S2S:分享出的营销机遇
  11. 【转】EI收录的中国期刊
  12. 实战DeviceIoControl 之六:访问物理端口
  13. BZOJ_1778_[Usaco2010 Hol]Dotp 驱逐猪猡_概率DP+高斯消元
  14. python实现列表去重的方法
  15. sql server 计算两个时间 相差的 几天几时几分几秒
  16. Easy and cheap cluster building on AWS backup
  17. mongo之 ReadConcern 与 Read Preference
  18. Cygwin、MinGw、mingw-w64,MSys msys2区别与联系
  19. IBM MQ + WebSphere + Spring JMS配置方法
  20. 关于removeChild

热门文章

  1. SDN第六次上机作业
  2. spring boot +dubbo+zookeeper
  3. pxe问题
  4. html苹方字体
  5. Android HIDL学习(2) ---- HelloWorld【转】
  6. Python17个常用内置模块总结
  7. [Angular] ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'name' of undefined
  8. 含有虚拟列的表 怎么用EXP导出?
  9. dotfuscator 在混淆.Net Framework 4.0以上版本的时候报错的解决方法2
  10. 【curl】certificate is bad 问题解决