巴彦淖尔网站建设公司,impreza wordpress,网站申请流程,医药网站怎么做java后端面试题大全 3.JVM3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?3.2 java类的加载流程3.3 java内存溢出什么时候会发生以及解决方法 3.JVM
3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?
堆 对象实例、String常量池、基… java后端面试题大全 3.JVM3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?3.2 java类的加载流程3.3 java内存溢出什么时候会发生以及解决方法 3.JVM
3.1 对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置?
堆 对象实例、String常量池、基本类型常量池、静态变量方法区 类信息、类常量池、运行时常量池虚拟机栈 临时变量
3.2 java类的加载流程
java文件到最终运行, 需要经过编译和类加载这两个阶段 编译的过程:把.java文件编译成.class文件 类加载的过程:把.class文件加载到jvm的内存中
加载 通过类的全限定名获取类的二进制数据, 这可以通过类加载器完成, 类加载器可以从文件系统、网络、ZIP文件等地方获取类文件的二进制数据 将获取的二进制数据转换为方法区或元空间的运行时数据结构, 这个数据结构存储了类的字段、方法、构造方法等信息同时也包含了类的常量池即字面量如字符串、final常量和符号引用等。验证 确保被加载的类的正确性. 这个阶段主要包括文件格式验证、元数据验证、字节码验证等以确保类文件的正确性和安全性。准备 为类的静态变量分配内存并设置初始值, 这里的初始值通常是默认值比如数值类型的默认值是0引用类型的默认值是null解析 类、接口、字段和方法的符号引用解析为直接引用初始化 类的初始化方法
3.3 java内存溢出什么时候会发生以及解决方法
一、内存溢出的原因 如果内存泄露的空间足够大就会导致内存溢出
堆内存中一个对象不再使用时垃圾回收器却无法从内存中删除他们导致内存泄露。
二、内存泄露的影响