今日計劃(已經完成的):
閱讀了關於semantic segmentation的某一篇綜述文獻
《瘋狂的java講義》——169~183
-
和equals之間的區別和聯繫
對於一般的equals()方法,使用的結果和是一樣的,只是在String中重寫了這個方法。
equals()是來自Object的方法,因此我們可以自己重寫這個方法,極端情況下可以使得dog對象和cat對象相等。 -
類成員
類變量的生存範圍幾乎等同於類的生存範圍。
2、通過對象訪問類變量實質上是通過類在訪問類變量。
3、
-
單例類
1、如果一個類只能創建一個實例,那麼他就是單例類。
-
final修飾符
1、
-
final成員變量
!!!!好好看看176面的例子,記住不能在普通方法中給final變量賦值。
而且,系統不會對final變量進行隱式賦值,只會對普通變量進行隱式初始化。
所以說,沒有初始化之前不能訪問,會報錯。
-final局部變量
系統不會對局部變量進行初始化,必須由程序員進行初始化。
1、
- final修飾基本類型變量和引用類型變量的區別
1、
看一個小例子:
@@@@@@我想到了下面這種情況,試一試這種情況下會有什麼變化:
public class Base2{
public static void main(String[] args) {
final int a=5;
int b=a;
a=b;
}
}
經過我的嘗試,發現這種情況居然會報錯,也就是說即使是同一個變量或者是引用也不行,使用String也不可以。
-6.4.4、可執行宏替換的final的變量
1、
2、
注意看一下179上面的那個例子
兩個字符串相加,在編譯的時候就會生成一個字符串,在常量池中。
179面上面的例子還說明了,需要調用類方法的也不會在編譯的時候確定數值,也就不是宏變量。
如下面的例子:
3、
@@@按照我的理解需要這樣進行驗證,但是驗證的結果表示沒有問題啊~~~
public class Base2{
final String s1;
final String s2="cheng";
public Base2(final String s) {
s1=s;
}
public static void main(String[] args) {
String s="cheng";
Base2 b=new Base2(s);
System.out.println(b.s1==b.s2);
}
}
//答案是True,下面的答案依然是True
public class Base2{
final String s1;
final String s2="cheng";
public Base2() {
s1="cheng";
}
public static void main(String[] args) {
String s="cheng";
Base2 b=new Base2();
System.out.println(b.s1==b.s2);
}
}
-
final方法
1、final修飾的方法不能被重寫,但是能夠被重載。180面上面
private修飾的函數可以被重寫,因此private final修飾的函數可以被重寫。 -
6.4.6、final類
1、final修飾的類是不會有子類的。 -
6.4.7、不可變類
1、
@@@@@hashcode()是什麼意思~~~~~~是幹啥的,最後這一部分沒有看明白啊
2、
仔細看一下183面上面的例題。
今天先到此結束~~~~
以上如有錯誤,歡迎批評指正,書籍《瘋狂java講義》