Java八股
文章平均质量分 72
Java八股总结
_Hihi_
这个作者很懒,什么都没留下…
展开
-
Java静态代理和动态代理(代理模式)详解
1、代理模式代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义的操作。代理模式有静态代理和动态代理两种实现方式。2、静态代理静态代理中,我们对目标对象的每个方法的增强都是手动完成的(后面会具体演示代码),非常不灵活(比如接口一旦新增加方法,目标对象和代理原创 2022-05-12 22:26:37 · 3640 阅读 · 0 评论 -
Java反射机制分析
反射1、反射机制的概念指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能操作它的任意一个方法和属性。这种动态获取信息,以及动态调用对象方法的功能叫Java语言的反射机制。本质是JVM得到class对象之后,再通过class对象进行反编译,从而获取对象的各种信息。2、反射的原理为了彻底理解反射的原理,可以先理解一下虚拟机的工作机制。通常,java在编译之后,会将Java代码生成为class源文件,JVM启动时,将会载入所有的源文件,并将类型信息存放原创 2022-05-12 17:44:57 · 447 阅读 · 0 评论 -
Java中的I/O流、序列化分析
1、序列化和反序列化如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。简单来说:序列化: 将数据结构或对象转换成二进制字节流的过程 反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程对于 Java 这种面向对象编程语言来说,我们序列化的都是对象(Object)也就是实例化后的类(Class)2、Java 序列化中如果有些字段不想进行序列化,怎么办?对于不想进行序列化的变量,使用tr.原创 2022-05-11 22:06:04 · 220 阅读 · 0 评论 -
Java异常机制
Java 异常类层次结构图概览 :Exception 和 Error 有什么区别?在 Java 中,所有的异常都有一个共同的祖先 java.lang 包中的 `Throwable`类。`Throwable`类有两个重要的子类:- **`Exception`** :程序本身可以处理的异常,可以通过`catch`来进行捕获。`Exception`又可以分为 Checked Exception (受检查异常,必须处理) 和 Unchecked Exception (不受检查异常,可以不处理)。..原创 2022-05-11 17:19:05 · 609 阅读 · 0 评论 -
Java包装类型缓存机制、自动拆/装箱
缓存机制Java 基本数据类型的包装类型的大部分都用到了缓存机制来提升性能。Byte,Short,Integer,Long这 4 种包装类默认创建了数值[-128,127]的相应类型的缓存数据,Character创建了数值在[0,127]范围的缓存数据,Boolean直接返回TrueorFalse。如果超出对应范围仍然会去创建新的对象,缓存的范围区间的大小只是在性能和资源之间的权衡。两种浮点数类型的包装类 Float,Double并没有实现缓存机制。Integer缓存源码...原创 2022-05-09 18:00:14 · 155 阅读 · 0 评论 -
Java接口和抽象类的异同
1、接口概念:接口是对行为的抽象,也可以说是对类局部(行为)的抽象。说明:接口中可以含有变量和方法,但是,接口中的变量会被隐式地指定为public static final。而方法会被隐式地指定为public abstract方法且只能是public abstract方法interface interfaceA { // 接口中的变量必须进行初始化 // 因为接口中的变量会被隐式地指定为public static final // 实现类中有,但是不能访问 in原创 2022-05-10 10:30:16 · 1994 阅读 · 0 评论 -
Java静态分派和动态分派
动态类型和静态类型动态类型和静态类型发生在继承和多态中,在创建对象时,同一个对象有动态类型和静态类型之分,等号左侧的是静态类型,等号右侧new出来的类型是动态类型。动态分派和静态分派静态分派是在编译期发生,动态分派在运行期发生。静态分派和动态分派涉及到对象的动态类型和静态类型。方法执行时,方法传参进去,不管参数的动态类型是什么,都按照静态类型执行。静态分派确定参数静态类型,动态分派决定执行者的类型。class Father { void eat(Father fat原创 2022-05-09 19:39:43 · 510 阅读 · 0 评论 -
Java中局部变量、成员变量、静态变量区分
1、位置不一样局部变量:在方法的内部成员变量:在方法的外部、直接写在类当中静态变量:在方法的外部、直接写在类当中2、作用范围不一样(作用域)局部变量:只有方法当中可用,出了方法就不可用成员变量:整个类都可用静态变量:整个类都可用3、默认值不一样局部变量:没有默认值,使用前必须手动赋值成员变量:如果没有赋值,会有默认值,赋值规则和数组一样4、内存的位置不一样局部变量:位于栈内存成员变量:位于堆内存静态变量:方法区中的静态区5、生命周期不一样局部变原创 2022-05-09 17:12:02 · 664 阅读 · 0 评论