Java基礎部分記錄

2021-08-08 02:11:11 字數 2161 閱讀 7022

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 ...