经纬恒润一面 3.27
自我介绍
实习
1.RocketMQ如何保证可靠性?
2.分库分表
3.关键字搜索,索引失效怎么优化 %王%
索引失效
全文索引 倒排索引
4.事务的特性
5.两个事务抢占数据造成的死锁,数据库怎么处理死锁?
6.索引失效
7.什么时候会发生回表
8.jdk17是自己搭的还是?
架构是自己搭的还是网上拉的
9.线程的几种创建方式
10.runnable 和 callable 有什么区别
11.多线程如何保证全局变量的安全性问题
12.线程在jvm中会占用哪些区域
13.线程和进程的区别
14.创建对象的几种方式 5种
- 使用 new 关键字: 最常见的创建对象的方式是使用
new
关键字,通过调用类的构造方法来实例化对象。例如:
MyClass obj = new MyClass();
- 使用反射机制: 通过反射可以在运行时动态创建对象,可以通过类的全限定名来获取类对象,并调用构造方法来创建对象。例如:
Class<?> clazz = Class.forName("com.example.MyClass"); MyClass obj = (MyClass) clazz.newInstance();
- 使用 clone 方法: 对于实现了
Cloneable
接口的类,可以使用clone()
方法来复制对象。需要注意clone()
方法是浅拷贝,需要根据需要进行深拷贝。例如:
MyClass obj1 = new MyClass(); MyClass obj2 = obj1.clone();
- 使用反序列化: 可以通过将对象序列化到文件或网络中,然后再反序列化来创建对象。例如:
// 序列化对象 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("object.ser")); out.writeObject(obj); out.close(); // 反序列化对象 ObjectInputStream in = new ObjectInputStream(new FileInputStream("object.ser")); MyClass obj = (MyClass) in.readObject(); in.close();
- 使用工厂模式: 可以通过工厂模式来创建对象,将对象的创建逻辑封装到工厂类中,客户端通过工厂类来获取对象实例。例如:
MyFactory factory = new MyFactory(); MyClass obj = factory.createInstance();
15.反射会调用构造器吗
16.红黑树和b+树的区别
17.跳表和链表的区别
18.tcp和udp的区别
19.长url链接转短链怎么做?
反问
#软件开发2024笔面经#