java基礎回顧

今天放假了,打算整理一下java基礎,看看自己容易忘和學的不紮實的點,學過的可以看看,沒學過的,額,也看看吧。

1.關於負數二進制,負數的二進制表示是對應的正數的二進制按位取反再加1.

2.關於標識符(類名,方法名,變量名等),英文字母,數字,_,$組成,數字不能開頭,不能定義爲關鍵字,java嚴重區分大小寫。

3.關於基本數據類型 整數類型默認爲int,浮點類型默認爲double,關於 char是2個字節   初始值是/u0000,關於float(2字節默認爲0.0f)與double,0.1與0.1f的值並不相同,因爲他們在內存中的存儲的精度不同詳見關於浮點型float數值是怎樣在內存中存儲的

4.關於運算符:

4.1:算術運算符:假設x=5,++5或者是5++此時的x都是6,如果是y=x++與y=++x此時的y前者是先賦值後++,y爲5,後者是先++再賦值,y爲6。關於+=的自動轉型,short   x=1;x=x+5;//falase  x+=5;//true  5默認爲int

4.2:邏輯運算符:關於短路與&&和短路或||,表達式1  && 表達式2 【如果表達式1的結果爲:false 則表達式2 不判斷】直接返回false

4.3:位運算符:>>:最高位是什麼補什麼,負數補1   >>>:無論最高爲是什麼,一律補0

5.關於循環:do....while循環是至少執行一次的,switch語句當碰到符合條件的語句之後會一直等到碰到break語句纔會結束

6.關於遞歸:要點1.找遞歸出口2.找遞歸條件。遞歸比較消耗內存。付3個小程序

(1)斐波拉切數列

public static int  rabbitNum(int  month) {
	
	if(month<3)
		return 1;
	else
		return  rabbitNum(month-1)+rabbitNum(month-2);
}
(2)漢諾塔

public static void  hanoi(int i,char from,char mid,char to) {
		if(i==1)
		System.out.println("第"+i+"圓盤從"+from+"移動到"+to);
		else
		{
		hanoi(i-1,from,to,mid);
		System.out.println("第"+i+"圓盤從"+from+"移動到"+to);
		hanoi(i-1,mid,from,to);	
		}

(3)遞歸實現9*9乘法表

 public static void m(int i) {    
        if (i == 1) {    
            System.out.println("1*1=1 ");   
        } else {    
            m(i - 1);   
            for (int j = 1; j <= i; j++) {   
                System.out.print(j + "*" + i + "=" + j * i +  "  ");    
            }    
            System.out.println();    
        }   
 }

7.關於重載,方法名相同參數類型不同就是重載,重載只與參數類型有關係(個數,順序,類型)

8.關於重寫:重寫的前提是先被繼承,重寫是重寫方法體,方法名必須相同,參數列表必須相同,訪問修飾符:子類中不能比父類中更嚴格

9.關於final,

9.1.final修飾的類不可以被繼承(爲了防止被子類繼承,重寫父類的方法)

9.2.final修飾的方法不可以被重寫

9.3.final修飾的變量是一個常量,一旦被賦值,不可更改,可以修飾全局變量也可以修飾局部變量

10:關於string,stringbuffer,stringbuilder。String字符串常量,StringBuffer 字符串變量(線程安全)StringBuilder 字符串變量(非線程安全)簡要的說,String 類型和 StringBuffer 類型的主要性能區別其實在於 String 是不可變的對象,因此在每次對 String 類型進行改變的時候其實都等同於生成了一個新的 String 對象,然後將指針指向新的 String對象,這樣會導致String類型的程序在運行時比較消耗內存,而且運行速度較慢。StringBuffer 是對對象本身進行操作,而不是生成新的對象,再改變對象引用。所以在一般情況下我們推薦使用StringBuffer ,特別是字符串對象經常改變的情況下。他不需要重新創建對象,對該字符串每次進行操作時實際上是對其本身進行操作,並不會生成新的對象,這時StringBuffer 佔用空間小而且運行速度很快。那麼與stringbuilder相比基本相同,但是stringbuffer是線程安全的,安全就意味着犧牲了一定的效率所以效率方面stringbuilder>stringbuffer>string可自行選擇,不考慮線程安全時stringbuilder優先。

寫完之後發現沒啥意思鬱悶


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章