文章 2022-01-07 来自:开发者社区

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(五)

②⑤. 既然Tomcat不遵循双亲委派机制,那么如果我自己定义一个恶意的HashMap,会不会有风险呢显然不会有风险,如果有,Tomcat都运行这么多年了,那能不改进吗?tomcat不遵循双亲委派机制,只是自定义的classLoader顺序不同,但顶层还是相同的,还是要去顶层请求classloader②⑥. 我们思考一下:Tomcat是个web容器,那么它要解决什么问题?一个web容器可能需要部....

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(五)
文章 2022-01-07 来自:开发者社区

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(四)

⑩⑧. 字节码文件中都有什么?①. 魔术、版本(副版本、主版本)、常量池(字节码文件的基石)、访问标识、类索引|父类索引|接口索引集合、字段表集合、方法表集合、属性表集合⑩⑨. 常量池中都有什么?①. 字面量和符号引号②. 字面量:Java中的常量和字符串③. 符号引号:类和接口的全限定名属性的名称和修饰符方法的名称和修饰符②0.JVM的永久代中会发生垃圾回收么?①. 方法区中的垃圾回收主要是:....

文章 2022-01-07 来自:开发者社区

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(三)

⑩②. 双亲委派机制的优势①. 避免类的重复加载,确保一个类的全局唯一性(当父ClassLoader已经加载了该类的时候,就没有必要子ClassLoader再加载一次)比如:我们如果是引导类加载器加载了,就没必要再一次使用扩展类加载器进行加载②. 保护程序安全,防止核心API被随意篡改⑩③. 双亲委托模式的弊端检查类是否加载的委托过程是单向的,这个方式虽然从结构上说比较清晰,使各个ClassLo....

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(三)
文章 2022-01-07 来自:开发者社区

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(二)

⑧. 判定一个常量是否"废弃”还是相对简单,而要判定一个类型是否属于"不再被使用的类”的条件就比较苛刻了。需要同时满足下面三个条件①. 该类所有的实例都已经被回收。也就是Java堆中不存在该类及其任何派生子类的实例②. 加载该类的类加载器已经被回收。这个条件除非是精心设计的可替换类加载器的场景。如JSP重加载等。否则通常是很难达成的③. 该类对应的Java.lang.Class对象没有在任何地方....

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(二)
文章 2022-01-07 来自:开发者社区

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(一)

①. JDK中包含了哪些内容?①. JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等②. JRE(Java Runtime Environment Java运行环境):包括Java虚拟机(JVM Java Virtual Machine)和J....

JVM00_面试官对类加载器子系统、运行时数据区、内存分布、执行引擎的灵虚拷问,你能坚持到第几问?(一)
文章 2022-01-07 来自:开发者社区

JVM17_Tomcat打破双亲委派机制、执行顺序、底层代码原理、Tomcat|JDBC破坏双亲委派机制带来的面试题(三)

④. ClassLoader加载过程①. 接打开 ParallelWebappClassLoader ,至于为啥不是看 WebappClassLoader ,从名字上就知道 ParallelW ebappClassLoader 是一个并行的 WebappClassLoader然后看下 ParallelWebappClassLoader 的 loadclass 方法是在它的父类 WebappCla....

文章 2022-01-07 来自:开发者社区

JVM17_Tomcat打破双亲委派机制、执行顺序、底层代码原理、Tomcat|JDBC破坏双亲委派机制带来的面试题(二)

③. ClassLoader的创建①. 加载器类图:②. 先从 BootStrap 的main方法看起:可以看到这里先判断了bootstrap是否为null,如果不为null直接把CatalinaClassLoader设置到了当前线程,如果为null下面是走到了init()方法public static void main(String args[]) { synchronized (d...

JVM17_Tomcat打破双亲委派机制、执行顺序、底层代码原理、Tomcat|JDBC破坏双亲委派机制带来的面试题(二)
文章 2022-01-07 来自:开发者社区

JVM17_Tomcat打破双亲委派机制、执行顺序、底层代码原理、Tomcat|JDBC破坏双亲委派机制带来的面试题(一)

①. Tomcat类加载机制①. 可以看到,在原来的 JVM 的类加载机制上面,Tomcat 新增了几个类加载器,包括 3 个基础类加载器和每个 Web 应用的类加载器。3个基础类加载器在 conf/catalina.properties 中进行配置:common.loader="${catalina.base}/lib","${catalina.base}/lib/*.jar","${cata....

JVM17_Tomcat打破双亲委派机制、执行顺序、底层代码原理、Tomcat|JDBC破坏双亲委派机制带来的面试题(一)
文章 2022-01-05 来自:开发者社区

大厂必问的JVM面试题

本文目录:讲一下JVM内存结构?程序计数器虚拟机栈本地方法栈堆方法区运行时常量池直接内存Java对象的定位方式说一下堆栈的区别?什么情况下会发生栈溢出?类文件结构什么是类加载?类加载的过程?什么是双亲委派模型?为什么需要双亲委派模型?什么是类加载器,类加载器有哪些?类的实例化顺序?如何判断一个对象是否存活?可作为GC Roots的对象有哪些?什么情况下类会被卸载?强引用、软引用、弱引用、虚引用是....

大厂必问的JVM面试题
文章 2021-12-27 来自:开发者社区

面试必问|聊聊JVM性能调优?

大家好,我是冰河~~之前在写【字节码编程】系列时,不少小伙伴希望我能写一些关于面试的知识,出一些相对来说有一点技术深度的面试知识点。经过几天的思考,我决定暂时放下【字节码编程】的更新,先更新一些面试中经常会被问及的一些知识点,以便能够帮助小伙伴们系统的梳理面试中需要掌握的知识技能。主要的方式是以面试的角度,深度聊聊面试中经常被问及的各项知识点。对于工作3年左右的Java程序员来说,在面试大厂的过....

面试必问|聊聊JVM性能调优?

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注