Java
文章平均质量分 96
Java 基础
tmacfrank
这个作者很懒,什么都没留下…
展开
-
序列化基础
源码流程中提到,在 writeSerialData() 中,如果 Serializable 的实现类自定义了 writeObject(),那么就通过反射调用到这个 writeObject(),否则就调用 defaultWriteFields() 执行一般的序列化过程。因此,重写 writeObject()、readObject() 可以实现自定义序列化。自定义序列化机制可以让程序控制如何序列化实例变量,甚至完全不序列化。原创 2023-11-26 22:42:07 · 866 阅读 · 0 评论 -
深入理解对象与垃圾回收机制
类加载:把 class 加载到 JVM 运行时数据区的过程。可以通过本地文件的形式,也可以通过网络加载。检查加载:首先检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查类是否已经被加载、解析和初始化过。符号引用 :以一组符号来描述所引用的目标,比如 String 类的符号引用是全类名 java.lang.String。分配内存:从堆内存中划分出一部分给新创建的对象。划分内存有两种方式:指针碰撞与空闲列表。内存空间初始化。原创 2023-11-26 22:37:34 · 1211 阅读 · 0 评论 -
JVM 内存管理深度剖析
JVM 能识别 class 后缀的文件,并且能够解析它的指令,最终调用操作系统上的函数,完成指定操作。操作系统并不认识这些 class 文件,是 JVM 将它们翻译成操作系统可识别的机器码,最终由操作系统执行这些机器码。Java 具有跨平台、跨语言的特性,也是因为 JVM 可以把 Java 字节码、Kotlin 字节码、Groovy 字节码等翻译成可以被 Linux、Windows、Mac 系统识别的机器码。原创 2023-11-26 22:36:16 · 1361 阅读 · 0 评论 -
Java 注解在 Android 中的使用场景
Java 元注解有 5 种,常用的是 @Target 和 @Retention 两个。这三个值表示的生命周期为 SOURCE < CLASS < RUNTIME,即 RUNTIME 生命周期最长,涵盖了 SOURCE 和 CLASS,其次是 CLASS 的生命周期涵盖了 SOURCE。原创 2023-11-26 19:30:07 · 1168 阅读 · 0 评论 -
Java 泛型知识总结
泛型是 JDK5 引入的特性,所谓参数化类型就是把类型当成参数一样传递,它使得一个类型在定义类、接口和方法时成为一个参数,类似于方法声明中的形式参数,不同之处在于形式参数的输入是值,而类型形参的输入是类型。原创 2023-11-26 15:18:42 · 846 阅读 · 0 评论 -
JDK 动态代理
代理模式会给某个对象提供一个代理对象,并由代理对象控制原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。代理模式一般会有三个角色:抽象接口:代理角色和真实角色对外提供的公共方法,一般为一个接口。真实角色:需要实现抽象接口,定义了真实角色所要实现的业务逻辑,以便供代理角色调用。真正的业务逻辑在此。代理角色:需要实现抽象接口,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并。将统一的流程控制都放到代理角色中处理。一个简单的例子就是,业务中需要统计某些方法的执行时间。原创 2023-11-18 15:25:48 · 148 阅读 · 0 评论