jvm
为什么jvm很重要
1.任何java上的技术问题,都可以追溯到jvm上.
2.当前社会一些公司,衡量java技术水平,看懂多少jvm知识
世界上有多少种jvm
oracle官方
IBM J9
TaobaoVM 等等
一些大型公司(淘宝,阿里巴巴,腾讯)为了解决一些高并发等问题都会在
oracle官方jvm的规范上进行一些更改.
为什么叫虚拟机
1.普通的应用程序运行在操作系统之上,应用程序需要进行一些操作,就得向操作系统申请分配内存资源.
2. java程序运行在java虚拟机之中,java虚拟机运行在操作系统之中.
对于java程序来说,java虚拟机就是操作系统,就是一台计算机
Java程序>Java虚拟机>操作系统
jvm作用
跨平台
1.c语言,汇编语言等一些古老的编程语言不能跨平台,因为它们代码编译之后会与cpu,操作系统等底层产生关联.
2.众所周知,一个,java文件编译后是一个字节码(.class)文件.jvm有多种不同版本(window系统有专门的JVM,Linux也有专门的JVM,苹果系统)由jvm将字节码文件翻译为平台相关的指令,这也就实现了jvm的跨平台
jdk与jre目录
jdk目录一般用于我们程序猿开发用
jre用于运行class文件用,无编译功能
自动内存管理(垃圾回收)
转载:
JVM自动内存管理机制
jvm如何启动
java.exe > jvm.dl l> rt.jar > main
dll文件是Windows系统的动态链接库
rt.jar是java语言的核心类库(java.lang,java.util等等包)
jvm总体结构
类加载器:加载class文件
方法区:存放class文件
堆:存放创建的对象
栈的特点:
FILO先进后出(栈就是先进后出)
第一个进去的,最后一个出来
FILO先进先出(队列就是先进先出)
第一个进去的,先出来