一面
1 创建一个对象有哪几种方式
- new
- 通过Class类的 newInstance() 方法
Person p2 = (Person)Class.forName("com.ys.test.Person").newInstance();
- 通过Constructor类的newInstance方法
Person p3 = (Person)Person.class.getConstructors()[0].newInstance();
- 利用Clone方法
Person p4 = (Person)p3.clone();
2 浅拷贝和深拷贝,拷贝一个对象有几种方式?怎样拷贝内部类对象?clone()方法。
https://cloud.tencent.com/developer/article/2132768
值类型:int double long 等
引用类型:类,接口,数组
浅拷贝
浅拷贝只复制指向某个对象的指针,而不是复制对象本身,新旧对象还是共享同一块内存。
如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址。
深拷贝
深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象.
拷贝一个对象有哪几种方式
引用拷贝
引用拷贝也就是我们常用的对象赋值,这种方式不会生成新的对象,只会在原对象上增加了一个新的对象引用,两个引用指向的对象还是是同一个;
User user1 = new User();
User user2 = user1;浅拷贝
深拷贝
clone()
Object 类提供的 clone 是只能实现浅拷贝的
2 重载和重写,重载的返回值为什么不能相同?
float max(int a, int b);
int max(int a, int b);
当调用max(1, 2);时无法确定调用的是哪个
3 解决硬编码问题有哪几种方式
动态配置
4 AB同时启动并行执行,AB执行完,C才能继续执行,有哪几种实现方式,java并发包
5 关于泛型,抽象类 A 和 B,A有方法 set(B b),B有方法 set(A b),A怎么能存储到 B 的子类的泛型
6 public,private,protect,default 的区别
public:类本身和任何包的任何类都访问
private:只有类本身可以访问,其他类想访问可以通过该类的成员方法访问如getter/setter
protected:成员可以被同一个类或同一个包下的类可以访问,不能被不同包下的类访问。
二面
1 https 安全机制,摘要签名,加密算法
2 RBAC,ACPS
3 设计一个角色权限管理系统,写出表设计 sql
4 健康防疫系统你会怎么设计,会考虑哪些技术问题?系统的瓶颈在哪
高性能:减少RPC调用,redis缓存静态数据
高并发:MQ削峰,锁,
高可用:集群部署,主从复制,读写分离,分表分库
安全:用户信息加密