牛客网6.10
(1)
new關(guān)鍵字生成的對象存在堆內(nèi)存中,c1和c2指向的是不同的對象,==判斷兩個變量是否相等,若為基本類型,且都是數(shù)值類型返回true,引用類型則必須指向同一個對象才會返回true
(2)
final關(guān)鍵字
1.final修飾變量,則等同于常量
2.final修飾方法中的參數(shù),稱為最終參數(shù)。
3.final修飾類,則類不能被繼承
4.final修飾方法,則方法不能被重寫。
(3)
run()方法是用來定義這個線程在啟動的時候需要做什么,但是,直接執(zhí)行run()方法那就不是線程,必須使用start()啟動,那樣才是線程。
(4)
abstract修飾符用來修飾類和成員方法
1:用abstract修飾的類表示抽象類,抽象類位于繼承樹的抽象層,抽象類不能被實例化。
2:用abstract修飾的方法表示抽象方法,抽象方法沒有方法體。抽象方法用來描述系統(tǒng)具有什么功能,但不提供具體的實現(xiàn)。
Abstract是Java中的一個重要關(guān)鍵字,可以用來修飾一個類或者一個方法。 修飾一個方法時,表示該方法只有特征簽名(signature),沒有具體實現(xiàn),而是把具體實現(xiàn)留給繼承該類的子類。一個類中只要有一個abstract 方法,那么這個類就要被聲明為abstract,但是其中可以有非abstract方法。 abstract類可以使得類的設(shè)計者能夠創(chuàng)建方法的原型,而真正的實現(xiàn)留給使用這個類的人。
(5)以下代碼運行輸出的是
?
public class Person{
????private String name = "Person";
????int age=0;
}
public class Child extends Person{
????public String grade;
????public static void main(String[] args){
????????Person p = new Child();
????????System.out.println(p.name);
????}
}
解析:
1.一個java文件里,public 的類只能出現(xiàn)一個,只能出現(xiàn)一個,只能出現(xiàn)一個,否則,不管你用哪一個類名命名文件名編譯器都會報錯
2.關(guān)于多態(tài)。子類繼承了父類的所有成員,包括private權(quán)限的成員變量,但是繼承的子類具有私有變量的擁有權(quán)但是沒有使用權(quán)。
3.private的成員變量,根據(jù)權(quán)限修飾符的訪問控制范圍,只有在類內(nèi)部才能被訪問,就算是他的子類,也不能訪問。
(6)
學(xué)java的看這邊:
父類靜態(tài)域——》子類靜態(tài)域——》父類成員初始化——》父類構(gòu)造塊——》1父類構(gòu)造方法——》2子類成員初始化——》子類構(gòu)造塊——》3子類構(gòu)造方法;
(7)
靜態(tài)成員和靜態(tài)方法,可以直接通過類名進(jìn)行調(diào)用;其他的成員和方法則需要進(jìn)行實例化成對象之后,通過對象來調(diào)用
(8)
識別合法的構(gòu)造方法;
? 1:構(gòu)造方法可以被重載,一個構(gòu)造方法可以通過this關(guān)鍵字調(diào)用另一個構(gòu)造方法,this語句必須位于構(gòu)造方法的第一行;
??? 重載:方法的重載(overload):重載構(gòu)成的條件:方法的名稱相同,但參數(shù)類型或參數(shù)個數(shù)不同,才能構(gòu)成方法的重載。??
?
? 2 當(dāng)一個類中沒有定義任何構(gòu)造方法,Java將自動提供一個缺省構(gòu)造方法;
? 3 子類通過super關(guān)鍵字調(diào)用父類的一個構(gòu)造方法;
? 4 當(dāng)子類的某個構(gòu)造方法沒有通過super關(guān)鍵字調(diào)用父類的構(gòu)造方法,通過這個構(gòu)造方法創(chuàng)建子類對象時,會自動先調(diào)用父類的缺省構(gòu)造方法
? 5 構(gòu)造方法不能被static、final、synchronized、abstract、native修飾,但可以被public、private、protected修飾;
? 6 構(gòu)造方法不是類的成員方法;
? 7 構(gòu)造方法不能被繼承。
(9)類方法與實例方法
先要理解什么是類的方法,所謂類的方法就是指類中用static 修飾的方法(非static 為實例方法),比如main 方法,那么可以以main 方法為例,可直接調(diào)用其他類方法,必須通過實例調(diào)用實例方法,this 關(guān)鍵字不是這么用的
(10)有關(guān)JVM內(nèi)存的理解
運行時數(shù)據(jù)區(qū)包括:虛擬機(jī)棧區(qū),堆區(qū),方法區(qū),本地方法棧,程序計數(shù)器
虛擬機(jī)棧區(qū)?:也就是我們常說的棧區(qū),線程私有,存放基本類型,對象的引用和?returnAddress?,在編譯期間完成分配。
堆區(qū)?,?JAVA?堆,也稱?GC?堆,所有線程共享,存放對象的實例和數(shù)組,?JAVA?堆是垃圾收集器管理的主要區(qū)域。
方法區(qū)?:所有線程共享,存儲已被虛擬機(jī)加載的類信息,常量,靜態(tài)變量,即時編譯器編譯后的代碼等數(shù)據(jù)。這個區(qū)域的內(nèi)存回收目標(biāo)主要是針對常量池的對象的回收和對類型的卸載。
程序計數(shù)器?:線程私有,每個線程都有自己獨立的程序計數(shù)器,用來指示下一條指令的地址。
(11)只有在不顯示聲明構(gòu)造方法時,系統(tǒng)才提供默認(rèn)無參構(gòu)造方法
?
?
?
?
總結(jié)
- 上一篇: 计算机桌面模糊了,显示屏模糊,详细教您怎
- 下一篇: ROS-Stage机器人仿真