標籤:黑馬程式員 java基礎編程 java
黑馬程式員--java基礎學習筆記3 一、筆記內容概述: 比較子&邏輯運算子、位元運算符、移位元運算符、三元運算子、if語句、局部代碼塊、switch語句、while語句、do-while語句、for迴圈語句、迴圈結構的使用情境。 二、常用內容介紹: 1.>>>無符號右移,資料進行右移時,高位出現的空位,無論原來的最高位是什麼,空位都用0補。 2.^運算子的特點: true ^ true = false; true ^ false = true; false ^ true = true; true ^ true = false; ^ 符號的兩邊結果相同,結果就是false。 3.&和&&運算結果是一樣的,但是運算過程中有小區別: 3>5 && 3<6 3>5 & 3<6 &:無論左邊的結果是什麼,右邊都參與運算。 &&:當左邊為false時,右邊就不參與運算了,提高了運算效率。 4.if語句和switch語句的區別: if: a.對於具體的值進行判斷。 b.對區間判斷。 c.對運算結果是boolean類型的運算式進行判斷。 switch: a.對具體的值進行判斷。 b.值的個數通常都是固定的。 對於幾個固定的值判斷,建議使用switch語句,因為switch語句會將具體的答案都載入進記憶體,效率相對高。不過一般情況下,都是用if語句,因為switch語句功能擴充性較差,且書寫麻煩(關鍵字較多),而if語句相對靈活,if語句常用語開發。 5.while與for的區別: while與for可以互換,區別在於for為了迴圈而定義的變數在for迴圈結束後就在記憶體中釋放,而while迴圈使用的變數在迴圈結束後還可以繼續使用。 6.for迴圈執行的順序: for(初始設定式;迴圈條件運算式;迴圈後的動作表達式)
三、經典樣本及講解:
1.分析下面移位元運算符合傳統運算的特點:
package com.date3;/** *事實上,經過多次調試,運行速度都差不多,只是理論上移位元運算符更高效一些。 * */public class Demo2 {public static void main(String[] args){method1();}private static void method2() {long time1 = System.currentTimeMillis();int x = 0;for(int i=0;i<10000000;i++){x = 2 * 8;}long time2 = System.currentTimeMillis();System.out.print(x+"\t");System.out.println("傳統運算方式:"+(time2-time1));}/** * 採用移位元運算符處理 */private static void method1() {long time1 = System.currentTimeMillis();int x = 0;for(int i=0;i<10000000;i++){x = 2 << 3;}long time2 = System.currentTimeMillis();System.out.print(x+"\t");System.out.println("移位元運算方式"+(time2-time1));}} 2.理解下面三種不同的交換值的方式:
package com.date3;/** *交換值a,b值的三種方式 */public class Demo3 {public static void main(String[] args){method3();}//方式一:採用中間值private static void method1(){int a = 3,b = 5;int c;c = a;a = b;b = c;System.out.println("a="+a+",b="+b);}//方式二:不採用中間值(不建議使用這種方法,可能會溢出)private static void method2(){int a = 3,b = 5;a = a + b;b = a - b;a = a - b;System.out.println("a="+a+",b="+b);}//方式三:採用異或運算子^ a^b^b = a;private static void method3(){int a = 3,b = 5;a = a ^ b;b = a ^ b;a = a ^ b;System.out.println("a="+a+",b="+b);}} 3.理解局部代碼塊和if(true);{}方式的特點:
package com.date3;/** *由於if(true);語句後面加了分號,這個判斷會執行, *但是判斷後的結果不會對下面的局部代碼塊執行造成影響。 *後面的語句為局部代碼塊,它會自動載入運行,局部代碼塊可以用來釋放記憶體。 *switch語句選擇的類型只有四種:byte,short,int,char。 */public class Demo4 {public static void main(String[] args) {int x;if(true);{System.out.println("hello world!");x = 5;}System.out.println(x);}}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
黑馬程式員--java基礎學習筆記3