当前位置: 首页 > news >正文

常州网站开发公司推荐wordpress注册跳转

常州网站开发公司推荐,wordpress注册跳转,火脉推广平台,西城专业网站建设公司大家好#xff0c;我是程序员大猩猩。 今天我们来讲一下JVM#xff0c;好多面试者在面试的时候#xff0c;都会被问及JVM相关知识。那么JVM到底是什么#xff0c;要理解它到底是出于什么原因#xff1f; JVM俗称Java虚拟机#xff0c;它是一个抽象的计算机#xff0c;…大家好我是程序员大猩猩。 今天我们来讲一下JVM好多面试者在面试的时候都会被问及JVM相关知识。那么JVM到底是什么要理解它到底是出于什么原因 JVM俗称Java虚拟机它是一个抽象的计算机是提供一个可以运行java程序的软件环境。 JVM主要的任务是加载字节码文件Java文件编译后的.class文件、验证字节码、执行字节码。 首先看看JVM的结构模型 类加载器Class Loader 负责将.class文件加载到JVM中 JVM预定义了三个类加载器Bootstrap Class Loader、Extension Class Loader和System Class Loader。 可以自定义类加载器。 如何自定义类加载器呢? 重新ClassLoader类并重写了findClass方法 public class CustomClassLoader extends ClassLoader {Overrideprotected Class? findClass(String name) throws ClassNotFoundException {try {// .... } catch (IOException e) {throw new ClassNotFoundException(name);}}public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {CustomClassLoader loader new CustomClassLoader();Class? clazz loader.findClass(com.example.MyClass);Object instance clazz.newInstance();System.out.println(Loaded class: instance.getClass().getCanonicalName());} } 那么实现自定义类加载器可以用来干什么呢 实现热部署即在运行时重新加载类的修改版本。 加密类文件然后在加载时解密。 从非标准位置如数据库、网络或其他专用格式加载类文件。 2. 运行时数据区Runtime Data Area 方法区Method Area 1.  被所有线程共享用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。 2.  当方法区无法满足内存分配需求时将抛出OutOfMemoryError异常。 堆Heap 1. Java虚拟机管理的内存中最大的一块被所有线程共享在虚拟机启动时创建。 2. 唯一的目的就是存放对象实例几乎所有的对象实例都在这里分配内存。 3. 垃圾回收器管理的主要区域因此也被称作“GC堆” 栈Stack 1. 每个线程创建时都会创建一个虚拟机栈其生命周期与线程相同。 2. 虚拟机栈描述的是Java方法执行的内存模型每个方法被执行时都会同时创建一个栈帧Stack Frame用于存储局部变量表、操作数栈、动态链接、方法出口等信息。 3. 局部变量表存放了编译期可知的各种基本数据类型boolean、byte、char、short、int、float、long、double、对象引用reference类型它不等同于对象本身可能是一个指向对象起始地址的引用指针也可能是指向代表对象的句柄或其他与此对象相关的位置和返回地址。 程序计数器Program Counter Register 1. 存储当前线程执行的字节码的地址。每个线程都有一个程序计数器是线程私有的。 2. 执行Java方法时程序计数器记录的是正在执行的虚拟机字节码指令的地址。如果是本地方法程序计数器的值则为空Undefined。 本地方法栈Native Method Stack 1. 为使用Java Native InterfaceJNI的本地方法服务。 2. Native方法栈也会在栈深度溢出或栈扩展失败时抛出StackOverflowError和OutOfMemoryError异常。 3. 执行引擎Execution Engine 字节码加载 类加载器将.class文件加载到JVM的方法区。 执行引擎通过方法区的字节码来执行程序。 解释执行 字节码最初是通过解释器逐条解释执行的。 解释器快速地将字节码转换成对应的机器指令然后执行。 即时编译Just-In-Time CompilationJIT 为了提高执行效率现代JVM通常包含一个即时编译器JIT编译器。 JIT编译器将热点代码即执行频率高的代码编译成机器码并将其存储起来以便后续可以直接执行编译后的机器码而不是再次解释执行。 这种混合使用解释执行和编译执行的方法称为“即时编译”。 优化 JIT编译器在编译字节码时会进行各种优化如方法内联、逃逸分析、循环展开等以提高执行效率。 4.本地库接口Native Interface 执行引擎支持JNI允许Java代码调用其他语言编写的本地库如C/C库。 通过JNIJava程序可以执行本地方法这些方法通常是用C/C等语言编写的并编译成了本地机器码。 5.垃圾回收器Garbage Collector 负责自动管理内存回收不再使用的对象占用的内存。 减轻了开发者手动管理内存的负担。 执行引擎与垃圾回收器紧密合作确保在执行过程中不再使用的对象可以被及时回收从而释放内存资源。 6.本地方法库Native Method Libraries 提供了一系列本地方法供Java程序调用。 这些方法通常是用C/C等语言编写的。 JVM的设计允许Java程序在不同的平台上运行而无需为每个平台编译一个版本。 Java程序首先被编译成字节码然后由JVM在各个平台上解释执行或编译执行。 这使得Java语言具有“一次编写到处运行”Write Once, Run Anywhere的特性。
http://www.pierceye.com/news/592014/

相关文章:

  • 网站建设公司哪家好 都来磐石网络推广软件平台排行榜
  • 个人博客网站开发毕业设计东莞建设网站官网住房和城乡
  • 怎么下载网站的视频室内设计专业网站
  • 和幼儿做网站爱wordpress主题简
  • wordpress 大型网站吗怎么做网站超市
  • 太原建设厅官方网站做电商需要准备多少钱
  • 公司网站建设安全的风险wordpress t1主题
  • 手机下载视频网站模板下载失败杭州做网站五
  • 招聘wordpress网站高手兼职wordpress会员付费插件
  • 网站建设综合报告威海网站建设兼职
  • 做的网站浏览器提示不安全网站开发四川
  • 高端网站设计有哪些企业网站开发php
  • php网站模块网站建设协议 模板
  • 怎么做像知乎一样的网站网络营销案例分析模板
  • 网站开发 h5 h4网站运作模式
  • 竞彩网站开发那些市区做网站群
  • 建投五公司网站找苏州网站建设
  • 徐州IT兼职网站开发中国做陶壶的网站有哪些
  • WordPress模板转换typecho郑州搜索引擎优化
  • 个人怎么做贷款网站什么是网络营销产品
  • 网站你的后台管理系统用什么做外包公司与劳务派遣区别
  • 设计师资源网站价格低油耗低的车
  • 中山快速做网站服务wordpress建站ftp
  • 做酒类直供网站行吗网站seo检测报告
  • 南昌建站费用网站建设出错1004
  • 十堰做网站的公司阿里巴巴外贸网站论坛
  • 品牌网站建设代理网站建设公司易下拉软件
  • 移动网站模板响应式网站开发教程pdf
  • 怎么设计网站内容小程序seo帝搜软件sem880官网
  • 十堰秦楚网 十堰新闻门户网站wordpress 点赞 开启