面试题
文章平均质量分 51
面试题
丈剑走天涯
这个作者很懒,什么都没留下…
展开
-
序列化 反序列化 transient关键字
Java中对象的序列化指的是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输,一般当我们使用缓存cache(内存空间不够有可能会本地存储到硬盘)或远程调用rpc(网络传输)的时候,经常需要让我们的实体类实现Serializable接口,目的就是为了让其可序列化。当然,序列化后的最终目的是为了反序列化,恢复成原先的Java对象,要不然序列化后干嘛呢,所以序列化后的字节序列都是可以恢复成Java对象的,这个过程就是反序列化。原创 2024-07-05 23:27:44 · 350 阅读 · 0 评论 -
重写(override) 重载(overload)
但是在重写这个方法的时候不能抛出 Exception 异常,因为 Exception 是 IOException 的父类,只能抛出 IOException 的子类异常。访问权限不能比父类中被重写的方法的访问权限更低。返回类型与被重写方法的返回类型可以不相同,但是必须是父类返回值的派生类(java5 及更早版本返回类型要一样,java7 及更高版本可以不同)。重写方法不能抛出新的检查异常或者比被重写方法申明更加宽泛的异常。重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。原创 2024-07-05 22:24:27 · 122 阅读 · 0 评论 -
volatile 的特性
在程序运行时,为了提高执行性能,编译器和处理器会对指令进行重排序,JMM 为了保证在不同的编译器和 CPU 上有相同的结果,通过插入特定类型的内存屏障来禁止特定类型的编译器重排序和处理器重排序,保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。插入一条内存屏障会告诉编译器和 CPU:不管什么指令都不能和这条 Memory Barrier 指令重排序。volatile 只能保证对单次读/写的原子性。内存屏障,又称内存栅栏,是一个 CPU 指令。原创 2024-07-05 21:16:01 · 291 阅读 · 0 评论 -
接口和抽象类有什么区别?
f. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问权限可以是任意的,但接口中定义的变量只能是 public static final 类型的,并且默认即为 public static final 类型。接口可以说成是一种特殊的抽象类,接口中的所有方法都必须是抽象的,接口中的方法定义默认为 public abstract 类型,接口中的成员产量类型默认为 public static final。c. 抽象类中可以包含非抽象普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的方法。原创 2024-07-05 19:59:01 · 192 阅读 · 0 评论 -
基本数据类型与包装类
(因为被final修饰),但是我们应用对象,正是因为面向对象的几个特征:封装、继承、多态、抽象。本质是上,编译器编译时自动添加:int a = new Integer(100).intValue();int 4个字节 -2^31~2^31-1(-2147483648~2147483647)short 2个字节 -2^15~2^15 - 1(-32768~+32767)char 1个字节 -2^7~2^7-1(-128 ~127)//将字符串”120”按照十进制转换为int,则结果为120。原创 2024-07-04 01:20:39 · 324 阅读 · 0 评论 -
final、finally、finalize的区别与用法
finalize: 是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。final: 用于声明属性,方法和类,分别表示属性不可交变,方法不可覆盖,类不可继承。finally: 是异常处理语句结构的一部分,表示总是执行。(类,方法,属性,参数)原创 2024-07-04 01:13:59 · 302 阅读 · 0 评论 -
String StringBuilder StringBuffer
可变字符串序列,线程安全,效率低于 StringBuilder。final 修饰类,不可拓展,字符串序列不可变。可变字符串序列,非线程安全,效率高,速度快。(适合单线程操作场景使用)原创 2024-07-04 01:12:13 · 134 阅读 · 0 评论 -
Object 类的方法
java.lang.Object, 所有类的父类。原创 2024-07-04 01:08:50 · 557 阅读 · 0 评论 -
Java中创建(实例化)对象的五种方式
3、运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。5、通过I/O流(包括反序列化),如运用反序列化手段,调用java.io.ObjectInputStream对象的 readObject()方法。如:Object obj = Class.forName("java.lang.Object").newInstance();4、调用对象的clone()方法。(3).clone(勉强算)原创 2024-07-04 00:58:30 · 148 阅读 · 0 评论 -
MySQL的四种事务隔离级别
4、持久性(Durability):事务完成后,事务对数据库的所有更新将被保存到数据库,不能回滚。2、不可重复读:事务 A 多次读取同一数据,事务 B 在事务A多次读取的过程中,对数据作。3、隔离性(Isolation):同一时间,只允许一个事务请求同一数据,不同的事务之。1、原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,1、脏读:事务A读取了事务B更新的数据,然后B回滚操作,那么A读取到的数据是脏数据。也就是说事务是一个不可分割的整体,就像化学中学过的原子,原创 2024-07-04 00:54:59 · 175 阅读 · 0 评论 -
HashSet
hashset原创 2024-07-03 23:51:24 · 476 阅读 · 0 评论