
JVM
文章平均质量分 95
Money、坤
人间烟火 各有遗憾 今天比昨天好就有希望
展开
-
【面经】某团面经---一篇到底
RuntimeException:运行异常一般是Java虚拟机正常运行期间抛出的异常的超类,程序中可以处理这些异常,也可以不处理这些异常,编译器并不会提示我们来处理这些异常。因为Java浮点数使用二进制数据的科学记数法来表示浮点数,因此可能不能精确表示一个浮点数,使用double类型的浮点数比float类型的浮点数更精确,但如果浮点数的精度足够高,依然可能发生这种情况,如果开发者需要精确保存一个浮点数,则可以考虑使用BigDecimal类。实现依赖注入的关键是IoC容器,它的本质就是一个工厂。原创 2022-09-25 23:47:59 · 595 阅读 · 1 评论 -
【JVM】JVM内存模型详解
JVM屏蔽了与操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可在多种平台上不加修改的运行,这也是Java能够“一次编译,到处运行的”原因。方法区存储的内容有:类型信息(比如类全称、父类全称)、域信息(域名称、域修饰符private等)、方法信息(方法名称、方法修饰符、返回类型等)、字面量(字面量包括文本字符串、八种基本类型的值 、被声明为final的常量等)。Java虚拟机栈是当前线程在执行方法时存储所需的数据、指令、返回地址的一种栈结构(先进后出)。原创 2022-08-24 01:14:00 · 16042 阅读 · 0 评论 -
【JVM】深入理解JVM垃圾回收机制及其垃圾回收算法
在 JVM 进行垃圾回收之前,首先就是判断哪些对象是垃圾,也就是说,要判断哪些对象是可以被销毁的,其占有的空间是可以被回收的。根据 JVM 的架构划分,我们知道, 在 Java 世界中,几乎所有的对象实例都在堆中存放,所以垃圾回收也主要是针对堆来进行的。在 JVM 的眼中,垃圾就是指那些在堆中存在的,已经“死亡”的对象。而对于“死亡”的定义,我们可以简单的将其理解为“不可能再被任何途径使用的对象”。那怎样才能确定一个对象是存活还是死亡呢?这就涉及到了垃圾判断算法,其主要包括引用计数法和可达性分析法。...原创 2022-08-14 23:47:12 · 598 阅读 · 0 评论 -
【JVM】JVM类加载全过程以及双亲委派模型详解
如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到最顶层的启动类加载器中,只有当上一层类加载器反馈自己无法完成这个加载请求(它的搜索范围中没有找到这个类)时,下一层类加载器才会尝试自己去加载;综上可得,如果想要打破JVM双亲委派模型,那么就自定义一个类加载器,继承classLoader类,重写其中的loadClass方法,使其不进行双亲委派即可。双亲委派模型是可以打破的;...原创 2022-08-12 20:45:31 · 388 阅读 · 0 评论