Java面试题笔记
415 序列化&反序列化 将Object转为字节流,或反之 普通:实现serializable接口 ˈsɪərɪəlaɪzəbl 使用Jackon,Obj => json格式 416 Java中的不可变类 final 修饰,例如String类 🎉优点: 线程安全 缓存友好 缺点 性能问题,因为不能修改,所有每次状态变化,都需要生成新的对象。 411 多态特性 继承 方法重载,函数名相同,但是函数签名需要有差异(参数类型&数量) 重写,子类重写父类方法,通过父类调用方法时,调用的是子类重写后的函数。 412 Java参数传值是副本还是引用呢? 基本类型是传值副本,int… 引用数据类型是传引用副本。 including:obj,array 425 Java中 包装类型和基本类型 🏷️基本类型 => int long float double … 位于栈上(局部变量的话) ,性能好,但不支持为null (局部变量在栈上,成员变量在堆上,静态字段在方法区) 🏷️包装类型 => 每一个基本类型都对应一个包装类型。包装类型是类,在堆中,支持null JVM内存模型 ❗❗❗内存堆和数据结构堆不是同一个东西(不是堆的结构) 1+--------------------------------------------+ 2| 方法区(Method Area) | ← 线程共享 3| - 类元数据(Class 信息) | 4| - 静态变量(static 变量) | 5| - 常量池(字符串常量等) | 6+--------------------------------------------+ 7 ↑ ↑ 8 | | 9+----------------+ +-----------------+ 10| 栈(Stack) | | 堆(Heap) | ← 线程共享 11| - 局部变量 | | - Java 对象实例 | 12| - 方法调用栈 | | - 数组 | 13+----------------+ +-----------------+ 413 interface & abstract class interface(自上而下) 知晓某一种行为,基于这些行为约束定义的接口, 一些类需要有这些行为的话,需要实现这些接口 abstract class(自下而上): 有许多类,它们有共同点,很多代码可以复用,因此将公共逻辑封装为抽象对象。 100 hashCode & equals & == hashCode用于散列表(hashMap)用于计算hash值,从而计算存储位置; ...