java基礎(我的學習筆記) A

1.       聲明long類型的變量 須要在數值的末尾+l/L。(不加L的話,貌似默認就是int型了。當給long賦值一個超過int範圍的值的時候,會出問題。)java

2.  package java_study;

public class 你好{

    public static void main(String [] args){
   /*
   1.以字母,數字,下劃線_,$
   2.不能以數字開頭
   3.嚴格區分大小寫
   4.長度無限制
   5.不能是java中的關鍵字
      */
        System.out.println("漢字也能當類名");

    }
}數組

3.        eclipse

/*oop

跳轉到對應的周幾測試

技能:認識switch對象

switch(){索引

         case 常量:ip

                   邏輯字符串

                   break;get

         case 常量:

                   邏輯

                   break;

                   。。。。

         default:

                   邏輯;

          break;

         總結:1.switch(表達式)byte short int char String enum(枚舉)

                     2.case 後面必須是常量 固定的值

                     3.case 常量不能重複 錯誤: case 標籤重複

                     4.default是可選的(無關緊要的)

                     5.防止語句塊之間的穿透

                    

        

}

*/

 

4. /*

邏輯運算符:

    &:兩邊的表達式都爲true,結果纔是true

    &&:兩邊的表達式都爲true,結果纔是true,若是前面的表達式爲false再也不計算後面的表達式

    |:兩邊的表達式一個爲true,結果就是true

    ||:兩邊的表達式一個爲true,結果就是true;

       若是前面的表達式爲true,再也不計算後面的表達式

*/

class Home1{

    public static void main(String []args){

    //定義boolean類型的變量

    int x = 3;

    int y = 4;

    boolean b1 = y > x | ++x >--y;

    System.out.println(b1+" "+ x+"  "+y);

    x = 3;

    y = 4;

    b1 = y > x || ++x > --y;

    System.out.println(b1+" "+ x+"  "+y);

    }

}

5.

//使用三目運算符,寫出3個數內的最大數

import java.util.*;

class Home2{

    public static void main(String []args){

       //建立對象

       Scanner input = new Scanner(System.in);

       //建立3個數用於比較

       System.out.println("請輸入第1個數");

       int num1 = input.nextInt();

       System.out.println("請輸入第2個數");

       int num2 = input.nextInt();

       System.out.println("請輸入第3個數");

       int num3 = input.nextInt();

       //比較

           //int d = num1>num2?num1:num2;

           //int maxNum = d>num3?d:num3;

           //             X     ?            Y                          Z

       int maxNum = num1 > num2 ?(num1 > num3 ? num1 : num3):(num2 > num3 ? num2 : num3);

       //輸出結果

       System.out.println("最大值是\t"+maxNum);

    }

}

6. /*

交換兩個數的位置

    5 = 2 + 3;

    2 = 5 - 3;

    3 = 5 - 2;

*/

class Home3{

    public static void main(String []args){

       //定義兩個數

       int a = 10;

       int b = 20;

        //輸出交換前的結果

       System.out.println("a的值爲\t"+a+",b的值爲\t"+b);

       //交換

       a = a + b;

       b = a - b;//30 - 20;

       a = a - b;

       //交換後的結果

       System.out.println("a的值爲\t"+a+",b的值爲\t"+b);

    }

   

}

 

 

 

 

 

7. 一,如何拿到char類型的數據

       字符串.charAt(index);下標0開始

           String s  ="我是中國人";

           char c = s.charAt(2);

二,循環

 

       1.求偶數的和

       2.每行輸出5個

    1.初始化條件:執行一次而且不能省略

    2.循環條件:while ,do{}while();是否能夠省略;  boolean類型

    3.循環體

    4.迭代條件:死循環

    1

    while(2){

    3

    4

    }

   

    1

    do{

    3

    4

    即便初始化條件不知足循環條件,也會執行一次循環體

    }while(2);

   

    for(1;2;4){

       3

    }

    流程控制語句:

    break:結束循環

    continue:結束本次循環並繼續執行下一次循環

    return:結束一個方法

三,嵌套循環:將一個循環做爲另外一個循環的循環體

    *******

    *******

    *******

    外層控制行數

    內層控制列數

 

   

8. /*     

       do{}while;

       輸出1~100內的偶數,每行輸出5個

       2,4,6,8,10

       12,14,16,18,20

       1.判斷是不不是偶數

       2.統計偶數的個數

       */

class DoWhileTest2{

 

    public static void main(String [] args){

    //定義一個變量,初始化條件

       int i = 1;

       //定義變量統計個數

       int count = 0;

       do{

       //循環體

       if(i%2==0){

           //print不換行

           System.out.print(i+"\t");

           //統計偶數個數

           count++;

           //每行輸出5個 偶數個數==5時換行

           if(count%5==0){

              System.out.println();

           }

       }

       //迭代條件

       i++;

       }while(i<=100);

    //輸出結果

    System.out.println("1~100內偶數的個數是\t"+count);

   

    }

}

9. /*

流程控制語句

    break:結束循環 END

    continue:結束本次循環,繼續循環  END

    return:結束一個方法

 注意:流程控制語句下不能寫邏輯

       沒法訪問的語句

*/

class LoopTest{

    public static void main(String [] args){

   

       for(int i = 1;i<=10;i++){

           if(i==5){

              //break;

              continue;

              //return;

              System.out.println("若是能輸出,給你一百萬!!");

           }

           System.out.println(i);

       }

       System.out.println("END");

    }

}

 

 

10.eclipse裏 main    Alt +/ 快捷輸入  Sysout

 

F3 查看源碼   Alt+←返回

11.

1.加強for循環和iterator遍歷的效果是同樣的,也就說

加強for循環的內部也就是調用iteratoer實現的(能夠查看編譯後的文件),可是加強for循環 有些缺點,例如不能在加強循環裏動態的刪除集合內容。不能獲取下標等。

2.ArrayList因爲使用數組實現,所以下標明確,最好使用普通循環。

3.而對於 LinkedList 因爲獲取一個元素,要從頭開始向後找,所以建議使用 加強for循環,也就是iterator。

/*

 

數組的遍歷

數組的有序指的是索引的順序

兩種循環對比:

    1.加強for循環

      for(數據類型標識符:數組名){

         System.out.println(標識符);

      }

       簡單

    2.普通循環 可以操做下標

*/

class Arrays2{

    public static void main(String [] args){

   

       //定義一個數組

       int [] arr = {12,45,23,10,98,78,100};

       //arr[0],arr[1],

       //遍歷方式一

       for(int i = 0;i<arr.length;i++){//0~6

          

           System.out.println(arr[i]);

       }

      

       //第二種方式加強for循環

       for(int num:arr){

           System.out.println(num);

       }

      

      

    }

   

}

 

12. class ValueTest1{

    public static void main(String [] args){

       int num = 10;

       System.out.println("方法調用前num的值\t"+num);//10

       changeValue(num);

       System.out.println("方法調用後num的值\t"+num);//10

   

    }

    public static void changeValue(int num){//int num = num

       num = 20;

       System.out.println("方法調用中num的值\t"+num);//20

    }

}

13.

class ValueTest2{

         public static void main(String [] args){

                   String []student = new String[3];

                   for(int i = 0;i<student.length;i++){

                            student[i] = "范冰冰";

                   }

                   int num = 10;

                   for(String s:student){

                            System.out.println(s);

                   }

                   System.out.println("方法調用前\t"+student[0]);//范冰冰

                   changeValue(student);

                   System.out.println("方法調用後\t"+student[0]);//周杰倫

         }

         //聲明方法

         public static void changeValue(String[] student){

                   student[0] = "周杰倫";

                   student[1] = "周杰";

                   System.out.println("方法調用中\t"+student[0]);//周杰倫

         }

        

}

總結:

1、對於基本類型參數,在方法體內對參數進行從新賦值,並不會改變原有變量的值。

2、對於引用類型參數,在方法體內對參數進行從新賦予引用,並不會改變原有變量所持有的引用。

3、方法體內對參數進行運算,不影響原有變量的值。

4、方法體內對參數所指向對象的屬性進行操做,將改變原有變量所指向對象的屬性值。

也就是說,對於基本數據類型,實現的是傳值,只是個形參,不會改變原有值。對於引用數據類型,對這個引用進行操做,其實也是至關於對形參的操做,不會改變原來的引用。可是,當對這個引用的屬性進行操做的時候,至關於CPP中的傳址調用,能夠改變這個引用的屬性的值。

Eg:

public class Main {

 

       private static void getMiddleOne(boolean b, Boolean boo, Boolean[] arr){

              b = true;  //形參,不會改變原有值

              boo = new Boolean(true);  //引用變量的直接操做至關於值傳遞,不會改變原來的引用變量

              arr[0] = true;  //引用變量的屬性的操做,會改變原有引用的屬性,至關於傳址調用

       }

      

       //測試

       public static void main(String[] args) {

              boolean b = false;

              Boolean boo = new Boolean(false);

              Boolean[] arr = new Boolean[]{false};

 

              getMiddleOne(b, boo, arr);

             

              System.out.println(b); 

              System.out.println(boo.toString());

              System.out.println(arr[0]);

 

              /**

               * output:

               *         false

               *         false

               *          true

               */

       }

}

 

14.

/*

 

流程控制語句深刻

在循環外側+label(能夠自定義)

break label:label在哪裏就結束哪層循環

continue:結束內層循環,繼續外層循環

1234 1234 1234 1234 1234 1234 1234 1234 1234 1234

*/

class BreakTest{

    public static void main(String [] args){

   

       label:for(int i = 1;i<=10;i++){

      

           for(int j = 1;j<=10;j++){

              if(j==5){

                  //break ;

                  continue label;

              }

           System.out.print(j);

           }

           System.out.println();

       }

    }

 

}

 

15.

class JinZhi{

/*

將一個10進制的數轉爲二進制數

       1.定義一個10進制數

       2.除以2取餘數  取商

       3.將商做爲被除數繼續 取餘數,取商

       4.當商爲0時終止

5.注意:result類型爲String

*/

       public static void main(String [] args){

              //定義一個數

              int num = 6;//110

              String result = "";

             

              //處理邏輯

              while(num!=0){

                     //取餘數

                     int yuShu = num%2;//0 , 1,  1

                     //讓最後輸出(最新的數據)的位於字符串的最前面

                     result = yuShu+result;//0+

                    

                     System.out.println(result);

                     //取商

                     int shang = num/2;

             

                     //將商做爲被除數

                            num = shang;

             

              }

              //輸出解果

      

       }

 

}

相關文章
相關標籤/搜索