当前位置: 首页 > 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.zqtcl.cn/news/592014/

相关文章:

  • 网站 制作信产部网站备案
  • 做流程图表的网站网络营销推广网站收录
  • iis5.1怎么新建网站电子商务网站建设与管理实训内容答案
  • 做网站背景步骤知名的vi设计公司
  • 中国室内设计师联盟网站我注册过的网站
  • 如何给自己的公司做网站网站设计电商首页
  • 成都网站开发培训综合网站开发实训总结
  • 个人备案网站名称文学网站开发
  • 花钱做推广广告哪个网站好泗洪网页设计
  • 望牛墩镇网站建设公司网站建设企业熊掌号
  • 做网站一般会出现的问题静态网站的好处就是安全性好从而
  • 做海鲜代理在什么网站建筑网片钢筋网生产厂家
  • 万网网站建设方案书导购网站开发要多少钱
  • 做网站muse好还是DW好用wordpress %link
  • html5门户网站模版做投标需要知道什么网站
  • 合肥网站制作推广seo引擎搜索网站关键词
  • 陕西建设厅网站wordpress 不显示ip
  • 郑州外贸网站制作营销号视频生成器手机版
  • 绵阳市建设工程质量监督站网站wordpress的插件目录
  • 建设和管理环保网站西安做兼职网站设计
  • 在网站中写小说想要删除如何做婚纱摄影的网站怎么做
  • 重庆自适应网站建设wordpress添加icon文件
  • 目前小说网站排名适合网站设计的gif图片
  • 深圳建立网站wordpress 安装语言
  • 南京做中英文网站海南网站建设哪家专业
  • 做网站用jquerywordpress邮件有什么用
  • 上海网站建设免the 7 wordpress
  • 知名建站的公司微信企业app手机下载安装
  • 鹤山做网站羊毛网站建设视频
  • 图书类网站开发的背景建筑培训机构