jvm生产环境问题汇总,jvm常见问题及解决方法
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。谈一下对jvm的理解jvm是存在于操作系统上(Linux,Windows,Mac)的java程序是跑在jvm上的jvm是用c
本内容由系统网小编为大家分享,Windows系统安装教程、办公系统、软件怎么使用、软件使用教程、办公软件攻略等信息。
谈一下对jvm的理解
jvm是存在于操作系统上(Linux,Windows,Mac)的 java程序是跑在jvm上的 jvm是用c语言实现的 安装JRE即包含安装了jvm环境,如果只是跑程序不需要安装jdk jvm一共有三种: sun公司的Hotspot,可通过java -version查看当前jvm版本 IBM的J9VM JIT编译器 BEA的 JRockitjvm的体系结构
JVM模型 class loader:类加载器 根据《Java 虚拟机规范》中的说法,Java 虚拟机的内存结构可以分为【公有】和【私有】两部分。 私有指的是每个线程的私有数据,包括:PC寄存器、Java 虚拟机栈、本地方法栈。 公有指的是所有线程都共享的部分,指的是Java 堆、方法区、常量池Class Loader类加载器【重要!】
类加载器工作流程
类加载器作用 加载编译后的class文件 加载后生成【可实例化对象实例的class模版类对象】 根据类模板对象【实例化对象】(new 对象) class模版类对象 与 普通类对象区别: 一个class文件对应一个class模板类对象,即不管Car.class执行多少个carClass,这些carClass都是同一个class模板对象 java类加载器的类型 Bootstrap Loader:启动类加载器,也叫根加载器,其可加载到的类对应jre环境中rt目录下的jar包 ExtClassLoader:扩展类加载器,其可加载到的类对应jre环境中EXC目录下的jar包 AppClassLoader:应用程序加载器,即开发人员自定义的类,这些类会生成对应的应用程序加载类,比如Student加载类 类加载器的加载机制 双亲委派机制: jvm接收到加载class文件的请求 先使用【启动类加载器】加载该class文件,如果需要加载的类的全包名在rt下存在,则使用启动类加载器加载rt下的类 再使用【扩展类加载器加载】 最后【使用应用程序加载器】 比如:新建一个 java.lang.String类,但是该类与【启动类加载器】中的String类重包且重名,则此时使用String类时,就会使用rt下的String类 沙箱安全机制 目的:防止恶意代码被执行 native关键字 凡是带了native关键字的方法,说明这java的作用范围达不到了,会去调用底层C语言的库; 凡是带了native关键字的,会进入native本地方法栈,然后调用本地方法接口【JNI-Java native interface】 JNI作用:扩展Java的使用,融合不同的编程语言为Java所用,比如C、C++ 程序结束器【线程独有】 每个线程都有一个程序计数器,作用是记住当前线程执行的位置。 方法区【全局共享】 方法区可以看成是一个接口,对于方法区的实现,不同虚拟机中策略也不同。以我们常用的HotSpot虚拟机为例,其设计团队使用永久带来实现方法区,并把GC的分代收集扩展至永久带 方法区中保存: JDK1.6XTw.com.Cn系统网专业应用软件下载教程,免费windows10系统,win11,办公软件,OA办公系统,OA软件,办公自动化软件,开源系统,移动办公软件等信息,解决一体化的办公方案。
免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!
联系邮箱:773537036@qq.com