加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 综合聚焦 > 资源网站 > 空间 > 正文

对JVM还有什么不懂的?带你深入浅出JVM!

发布时间:2019-10-14 07:29:56 所属栏目:空间 来源:java互联网架构
导读:副标题#e# JVM JVM = 类加载器(classloader) + 执行引擎(execution engine) + 运行时数据区域(runtime data area) 下面这幅图展示了一个典型的JVM(符合JVM Specification Java SE 7 Edition)所具备的关键内部组件。 组件中的多线程处理 多线程处理或自由线

当一个异常被抛出,JVM会为当前方法寻找一个匹配的处理器。如果没有找到,那么该方法最终会唐突地出栈当前stackframe而异常会被重新抛出到调用链(新的frame)。如果在所有的frame都出栈之前还是没有找到异常处理器,那么当前线程将会被终止。当然这也可能会导致JVM被终止,如果异常被抛出到最后一个非后台线程的话,比如该线程就是主线程。

最终异常处理器会匹配所有的异常类型并且无论什么时候该类型的异常被抛出总是会得到执行。在没有异常抛出的例子中,finally块仍然会在方法的最后被执行。一旦return语句被执行就会立即跳转到finally代码块继续执行。

字符比较

字符比较(character comparison)是指按照字典次序对单个字符或字符串进行比较大小的操作,一般都是以ASCII码值的大小作为字符比较的标准。

符号表

符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。如常数表、变量名表、数组名表、过程名表、标号表等等,统称为符号表。对于符号表组织、构造和管理方法的好坏会直接影响编译系统的运行效率。

在JVM中,内部字符串被存储在字符串表中。字符串表是一个hashtable映射对象指针到符号(比如:Hashtable

当类被加载时,字符串字面量会被编译器自动“内部化”并且被加入到字符表。另外字符串类的实例可以通过调用String.intern()来明确地内部化。当String.intern()被调用,如果符号表里已经包含该字符串,那么指向该字符串的引用将被返回。如果该字符串没有包含在字符表,则会被加入到字符串表同时返回其引用

【编辑推荐】

  1. Tomcat 和 JVM 的性能调优经验总结!拿走不谢
  2. Jvm内部缓存选型?一篇文章为你解答疑惑
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读