1. 程式人生 > >自己總結的一些Java的部分筆記

自己總結的一些Java的部分筆記

1.1 自動型別轉換

  所有數值型別都可以自動轉換為double型別。

除了double型別,其他的數值型別都可以自動轉換為float型別。

所有整型(int)都可以自動轉換為long型別。

Eg:public class 自動轉換{

public static void main(String arg[]){

double d=3;//3預設是int型別,自動轉換為double型別

float ff=2;

float f=’\u0078’;//’\u0078’是char型,char型可以自動轉換為float型別。

}

}

低型別   ----- 自動轉換----》     高型別

1.2 強制型別轉換(強轉)

型別  ------  強制轉換----》    低型別

Eg: double d=3;

 char c=(char) d;//d原本是double型別,強制轉換為char型別

1.3 for迴圈

For(初始化語句;返回Boolean的表示式;每次迴圈執行完後的程式碼)

Eg:(int i=0;i<10;i++)

if(返回boolean值的表示式)

While(返回boolean型別)如果沒有花括號,則執行到第一個分號

Do{}while{}先執行在判斷

結構有:順序、分支、迴圈、

For(數值型別 變數名:數值/集合)

1.4類變數,例項變數

static修飾的類叫做靜態類,類方法只能呼叫類方法,不能呼叫例項方法。

例項方法可以呼叫類方法或例項方法。

1.5 方法過載、方法重寫

(1)方法過載是指方法名相同,引數的個數或者引數的型別不一樣。

(2)方法重寫:子類繼承父類的方法,子類的方法名,形參都和父類的  一樣。

一大:子類的訪問許可權比父類的訪問許可權大。

兩小:子類方法中丟擲的異常比父類丟擲的異常小或者相等。

  子類返回型別和父類的相等或更小。

1.6 this的作用

1This引用:在構造器中,this代表構造器正在初始化這個物件,在方法     中this呼叫該方法的例項。this.

2This呼叫:this呼叫當前類中另一個過載的構造器。this()

this 呼叫例子:

//構造器的過載

public Tiger(Stringname,doubleweight){

this.name =name;

this.weight =weight*2;

}

public Tiger(Stringname,doubleweight,intage){

/*this.name = name;

this.weight = weight;*/

this(name,weight);//此次就是this呼叫

this.age =age;

}

1.7 super的作用

Super限定,強制訪問父類的方法。

Super呼叫必須出現在構造器的第一行,this呼叫也是一樣的。預設情況下子類構造器會呼叫父類的無參構造器。This呼叫和super呼叫不能同時出現。

1.8 Hashset 和 LinkedHashset

LinkedHashSet<String>hashset = newLinkedHashSet<>();

hashset.add("豬八戒");

hashset.add("孫悟空");

hashset.add("牛魔王");

hashset.add("白骨精");

System.out.println(hashset);

打印出來的結果是:

是安裝順序列印的。

HashSet<String> hashset =new HashSet<>();

hashset.add("豬八戒");

hashset.add("孫悟空");

hashset.add("牛魔王");

hashset.add("白骨精");

System.out.println(hashset);

打印出來的結果是:

是不安裝順序列印的。

HashSet的迭代:

HashSet<String> hashset =new HashSet<>();

hashset.add("a");

hashset.add("b");

hashset.add("c");

hashset.add("d");

Iteratorit =hashset.iterator();

while(it.hasNext()){

System.out.println("Iterator裡面的值是:"+it.next());

}

打印出來的結果是:

也可以用foreach迭代出來:

HashSet<String> hashset =new HashSet<>();

hashset.add("a");

hashset.add("b");

hashset.add("c");

hashset.add("d");

for(Stringel : hashset){

System.out.println(el);

}

列印的結果是:

LinkedHashSet多了一個列表,就可以知道新增順序了。

1.9 equal和”==”的區別

==比較的是物件的地址,也就是是否是同一個物件;

equal比較的是物件的值。

Integer r1 = new Integer(900);//定義r1整型物件Integer r2 = new Integer(900);//定義r2整型物件System.out.println(r1==r2);//返回falseSystem.out.println(r1.equal(r2));//返回true

2.0 Math的ceil/round/floor

Math.ceil就是向上取值,例如2.4,向上取值就是3.0。在例如1.6向上取值就是2.0

Math.floor就是向下取值,例如2.4,向下取值就是2.0。再例如1.6向下取值就是1.0

Mah.round演算法比較複雜,演算法為:Math.floor(x+0.5),例如1.6,1.6+0.5=2.1,再向下取值就是2.0了,再例如1.2,1.2+0.5=1.7,再向下取值就是1.0了。

2.1 switch

Switchexp1)中,exp1只能是一個整數表示式或者列舉常量,整數表示式可以是int基本型別或Integer包裝型別,byte/short/char都可以轉換為int型別,所以也是可以的。

注:在jdk1.7以後就可以用string了。

Switch(返回型別byteshortcharint、列舉型別)

2.2 向上轉型

publicclass A {

intcount = 20;

}

publicclass Bextends A {

intcount = 300;

}

publicclass ABTest {

publicstaticvoid main(Stringagr[]){

A a =new A();

B b =new B();

System.out.println("a的count的值為:"+a.count);

System.out.println("b的count的值為:"+b.count);

A ab =b;//向上轉型,取決於改應用的變數宣告時的型別,比如這裡宣告的是“A”所以取A裡面的count

System.out.println(ab.count);

}

}

2.3 TCP和UDP

 TCP:傳輸控制協議,提供的是面向連線的、可靠的位元組流服務。當客戶和伺服器彼此交換資料前,必須先在雙方之間建立一個TCP連線,之後才可以傳輸資料。TCP提供超時重發,丟棄重複資料,檢驗資料,流量控制等功能,保證資料能從一端傳到另一端。

UDP:使用者資料報協議,是一個簡單的面向資料報的運輸層協議。UDP不提供可靠性,它只是把應用程式傳給IP層的資料報傳送出去,但是並不能保證它們能到達目的地。由於UDP在傳輸資料報前不用再客戶和伺服器之間建立一個連線,並且沒有超時重發等機制,故而傳輸速度很快。

2.4 Scanner和BufferedReader的區別

Scanner一個簡單文字掃描器使用分隔符模式將其輸入分解為標記BufferedReader從字元輸入流中讀取文字,緩衝各個字元,以指定緩衝區的大小,或者可使用預設的大小。

2.5 String與StringBuffer的區別

StringBuffer物件的內容可以修改;而String物件一旦產生後就不可以被修改,重新賦值其實是兩個物件。StringBuffer在進行字串處理時,不生成新的物件,在記憶體使用上要優於String類。所以在實際使用時,如果經常需要對一個字串進行修改,例如插入、刪除等操作,使用StringBuffer要更加適合一些。

  2.6 jdk環境變數配置

    JAVA_HOME : jdk的安裝目錄;

Path :%JAVA_HOME%\bin;jdkbin目錄

CLASSPATH.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

 2.7 tomcat環境變數配置

CATALINA_HOME : tomcat的安裝路徑;

2.8對Hibernate的理解

Hibernate是一個開放原始碼的ORM框架(物件關係對映)它對JDBC進行了輕量級封裝,你不用寫JDBC程式碼,僅僅是呼叫一個save方法,就可以將物件儲存到關係資料庫中,僅僅是呼叫一個get方法,就可以從資料庫中加載出一個物件。

2.9對Struts的理解

struts是一個按MVC模式設計的Web層框架,其實它就是一個大大的servlet,這個Servlet名為ActionServlet,或是ActionServlet的子類。Struts有豐富的標籤庫,支援i18n,有良好的Ajax支援。

3.0 final

Final修飾類,則該類不能被繼承;final修飾的方法,則該方法不能被重寫;final修飾屬性,則該屬性不能再被修改;final修飾變數,則該變數為常量。