JVM:一台用来模拟计算机执行计算指令的虚拟计算机,拥有自己的指令,指令执行环境,虚拟内存等。

下面介绍虚拟机(JVM)--cpu,寄存器,内存,指令

======================================================================================================

1.创建JVM装载环境和配置(GetApplicationHome取得Java.exe进程的路径,chshi)

2.装载JVM.dll

3.初始化JVM.dll并挂界到JNIENV(JNI调用接口)实例,此时JVM与操作系统联系起来,因为JVM是构建在操作系统上面。此时它属于操作系统的一个进程有自己的环境空间

4.调用JNIEnv实例装载并处理class类。(加载class文件)。

  当运行程序时,java文件编译成特定指令的class文件,就是JVM指令,虚拟机JVM再执行指令,最后底层通过操作系统来实现调用。JNIEnv调用GetStaticMethodID

  查找main类,之后调用CallStaticVoidMethod执行main方法,于是java程序就会在JVM里面执行。

5.加载class文件到内存空间之后,就会把内存进行分配成(针对线程而言):全局共享的:堆以及方法区,线程似有的栈,PC计数器以及本地方法区。

======================================================================================================

happens-before:原则----

线程内存与主内存---------共享内存复制数据到线程内存,之后同步刷新到主内存 volatile就是直接共享内存,达到内存一致性

重排序-------------------JVM对指令进行优化排序,和代码的顺序不一致

===

最新文章

  1. git stash和git stash pop
  2. Delphi的哈希表(一)
  3. shell 检测ip的合法性与检测网络掩码的合法性
  4. HDU 4763 (KMP算法)
  5. .getBoundingClientRect()
  6. 《Java程序员面试笔试宝典》终于在万众期待中出版啦~
  7. Android学习之Drawable(一)
  8. window.name 跨域
  9. [置顶] 纯手工打造漂亮的垂直时间轴,使用最简单的HTML+CSS+JQUERY完成100个版本更新记录的华丽转身!
  10. android下拉刷新控件 android-pulltorefresh
  11. 本元鼠标自动点击器 v1.31 官方绿色版
  12. oracle的exp和imp命令的使用【转载】
  13. 怎么从一台电脑的浏览器输入地址访问另一台电脑服务器(WAMP服务器已搭建,PHPSTORM装好了)
  14. 爬虫之Scrapy框架介绍
  15. JdbcTemplate 配置多数据源(完全照抄,完整)
  16. Tomcat8源码笔记(一)Lifecycle接口
  17. 28BYJ-48步进电机
  18. int __get_order(unsigned long size)
  19. ​插件化DPI在商用WIFI中的价值
  20. Evaluate Reverse Polish Notation (STRING-TYPE CONVERTION)

热门文章

  1. python 判断列表的包含关系
  2. python批量修改ssh密码
  3. 222. Count Complete Tree Nodes -- 求完全二叉树节点个数
  4. wikioi 1028 花店橱窗布置 最大权匹配
  5. MsWord 操作总结
  6. bzoj3901
  7. 有效二叉查找树判断(java实现)
  8. Robot Framework中使用HttpLibrary教程and中文支持
  9. ConcurrentHashMap 分析
  10. 回测框架pybacktest简介(一)