1、基本資料型別
在棧區直接儲存資料
byte/short/int/long/double/float/char/boolean
整數型別*4/浮點型別*2/字元/布林值
這八種資料型別有對應的封裝型別
byte/short/integer/long/double/float/charactor/boolean
基礎資料型別初始值(跟引用型別比較):
byte/short/int:0
long:0l
double:0.0
float:0.0f
char:'\u0000'
boolean:false
在基礎資料型別和引用型別互相轉換的過程叫做自動裝箱/拆箱
integer
integer
=100;//實際上編譯器會自動將其轉化為下面這句:
integer
integer
=integer
.valueof(100);
int i=
integer;//這一句實際上將integer物件進行了拆箱
int i=
integer
.intvalue();
使用」=」賦值(此處與引用資料型別的區別)
int i1=100;
int i2=i1;
i1=200;
i1==i2;//false
將i1的值拷貝乙份給i2
如果是陣列的話
int arr1=new
int;
int arr2=arr1;
此時兩個陣列指向的是同乙個位址
2、引用資料型別
在棧區儲存引用的位址,指向堆區的特殊空間
是乙個物件
對於integer物件來說:
當數值處於-128~127時,不會建立新的物件
建議使用equals()方法來判斷內容是否相等(而不是「==」)
一般會重寫類的equals()方法,若沒有重寫就會預設呼叫object類的,相當於」==」
「==」會比較兩邊的引用位址
常見的string型別的比較:
1、string重寫了equals()方法,會直接比較物件的字串內容。(integer等封裝類也是)
string s1=
"string";
string s2=
newstring("string");
s1.equals(s2);//true
下面不考慮equals()情況
2、如果使用new string(「內容」)的話,會建立乙個新的物件,即使內容相同,」==」也會判斷為不等
string s1="string";
string s2=new
string("string");
s1==s2;//false
3、即使是使用」+」將字串連線起來也一樣
string s1="str"+"ing";
string s2="string";
4、但是使用物件+」字串」就相當於建立新的物件
string s1="string";
string s2=new
string("str")+"ing";
s1==s2;//false
以下**僅僅是把p2的引用指向了p1的例項
person p1=new person();
person p2=p1;
注意此處與基本資料型別的區別
修改乙個會影響另外乙個
string的初始化以及基本資料型別的初始化:
使用string s和使用string s=null不同
前者未初始化,不能使用,後者為空,可以使用…而加上static之後就預設為null
引用型別的物件沒有初始化就不能用(即使你把他初始化為空也是不一樣的)
JAVA 部分基礎點
運算子 算術運算子 和 兩個整數相除,結果還是整數。賦值運算子 和 比較運算子 和 邏輯運算子 和 位運算子 和 字串string是擁有 值語義 的引用型別,字串常量實現了 享元模式 equals 會按照內容進行比較,按照位址比較。命名規則 包 其實就是資料夾,用於解決相同類名問題 包名要求全部小寫...
Java基礎筆記 執行緒部分
確認執行緒狀態 getstate方法 1.通過介面實現 建立執行緒介面類 public xx implements runnable 賦值執行緒 xx r new xx thread t new thread r 啟動 t.start 2.通過繼承實現 public xx extends threa...
java基礎部分總結(一)
收穫 1points i new point 解決 在這裡對類陣列中的元素申請分配空間。2除錯debug,在console裡面看問題,在variables看id傳送有什麼問題 參考這篇 新增絕對路徑 比如 d helloworld.txt 要麼寫成 要麼寫成 length 陣列的屬性 length ...