一面
1 創(chuàng)建一個對象有哪幾種方式
- 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 淺拷貝和深拷貝走敌,拷貝一個對象有幾種方式肉渴?怎樣拷貝內(nèi)部類對象种樱?clone()方法摇零。
https://cloud.tencent.com/developer/article/2132768
值類型:int double long 等
引用類型:類规丽,接口,數(shù)組
淺拷貝
淺拷貝只復(fù)制指向某個對象的指針,而不是復(fù)制對象本身灶泵,新舊對象還是共享同一塊內(nèi)存硬猫。
如果屬性是基本類型补箍,拷貝的就是基本類型的值;如果屬性是內(nèi)存地址(引用類型)啸蜜,拷貝的就是內(nèi)存地址坑雅。
image.png
深拷貝
深拷貝會另外創(chuàng)造一個一模一樣的對象,新對象跟原對象不共享內(nèi)存衬横,修改新對象不會改到原對象.
image.png
拷貝一個對象有哪幾種方式
引用拷貝
引用拷貝也就是我們常用的對象賦值裹粤,這種方式不會生成新的對象,只會在原對象上增加了一個新的對象引用蜂林,兩個引用指向的對象還是是同一個遥诉;
User user1 = new User();
User user2 = user1;淺拷貝
深拷貝
clone()
Object 類提供的 clone 是只能實現(xiàn)淺拷貝的
2 重載和重寫,重載的返回值為什么不能相同悉尾?
float max(int a, int b);
int max(int a, int b);
當(dāng)調(diào)用max(1, 2);時無法確定調(diào)用的是哪個
3 解決硬編碼問題有哪幾種方式
動態(tài)配置
4 AB同時啟動并行執(zhí)行突那,AB執(zhí)行完,C才能繼續(xù)執(zhí)行构眯,有哪幾種實現(xiàn)方式愕难,java并發(fā)包
5 關(guān)于泛型,抽象類 A 和 B惫霸,A有方法 set(B b)猫缭,B有方法 set(A b),A怎么能存儲到 B 的子類的泛型
6 public壹店,private猜丹,protect,default 的區(qū)別
public:類本身和任何包的任何類都訪問
private:只有類本身可以訪問硅卢,其他類想訪問可以通過該類的成員方法訪問如getter/setter
protected:成員可以被同一個類或同一個包下的類可以訪問射窒,不能被不同包下的類訪問。
image.png
二面
1 https 安全機(jī)制将塑,摘要簽名脉顿,加密算法
2 RBAC,ACPS
3 設(shè)計一個角色權(quán)限管理系統(tǒng)点寥,寫出表設(shè)計 sql
4 健康防疫系統(tǒng)你會怎么設(shè)計艾疟,會考慮哪些技術(shù)問題?系統(tǒng)的瓶頸在哪
高性能:減少RPC調(diào)用,redis緩存靜態(tài)數(shù)據(jù)
高并發(fā):MQ削峰蔽莱,鎖弟疆,
高可用:集群部署,主從復(fù)制盗冷,讀寫分離怠苔,分表分庫
安全:用戶信息加密