《深入理解Java虚拟机》读书笔记之垃圾收集算法 标记-清除算法算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象,它的标记过程其实在前一节讲述对象标记判定时已经介绍过了。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其不足进行改进而得到的。它的主要不足有两个:一个是效率问 2021-05-17 JVM
《深入理解Java虚拟机》读书笔记之对象存活判断 概述前面我们介绍了Java内存运行时区域的各个部分,其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的。因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自 2021-05-17 JVM
《深入理解Java虚拟机》读书笔记之运行时数据区 运行时数据区Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机 2021-04-22 JVM
Feign传参问题 今天学习feigen遇到了一些问题,在此记录一下。feigen用GET方式传递对象的时候遇到405错误。配置使用HttpClient的时候遇到java.lang.NoSuchMethodError: feign.Response.create(ILjava/lang/String;Ljava/uti 2021-04-19 springcloud
Java对象实例初始化过程 前言前面我们讲到Java类加载机制和 Java类的初始化,了解了Java代码从编译,到加载到虚拟机的基本步骤,接下来我们讲Java对象实例初始化过程,让我们更清楚的了解类的实例化的顺序。类的实例化我们在讲类的初始化的时候,提到类初始化其实就是执行< clinit >()方法,其实,实例化 2021-04-16 JVM #类加载机制
Java类的初始化 前言上一篇文章中我们讲到Java类加载机制,我们知道Java类加载需要经过装载、验证,准备,解析,初始化这几个阶段。但是类在什么时候会进行初始化呢?初始化的过程又是怎样的呢?这篇文章我们会简单的梳理一下。类的初始化时机什么时候需要开始类加载的第一个步骤“装载”。虚拟机规范中并没有强行约束,可以交给虚 2021-04-15 JVM #类加载机制
Java类加载机制 字节码Java有一个很出名的口号:“Write Once, Run Anywhere”,他是如何实现这句口号的呢,这其中就离不开字节码。Sun公司开发了在不同平台上运行的Java虚拟机JVM,用来执行和载入编译后生成的字节码文件。类加载机制虚拟机把Class文件加载到内存并对数据进行校验,转换解析和 2021-04-13 JVM #类加载机制
设计模式-代理模式 代理模式定义创建一个对象的代理,用以控制这个对象的访问静态代理Subject类public interface Subject { void request();}RealSubject类public class RealSubject implements Subject{ @Over 2021-03-19 设计模式