JAVA 學習筆記(1) ____語法,數組

java語言的三種技術架構java

JAVAEE (J2EE) 企業版   —主要對於Web應用程序開發數組

JAVASE (J2SE) 標準版   —完成一些桌面應用程序開發架構

JAVAME (J2ME) 小型版  —開發電子產品和嵌入式設備app

 

JAVA 虛擬機( JVM___ Java Virtual Machine函數

 

運行輸入優化

cmd  :進入DOS命令行           spa

cd\   :進入C盤根目錄命令行

md 建立目錄設計

dir :列出當前目錄下的全部文件及文件夾code

rd 刪除目錄

cd 進入指定目錄

cd/ 退回到根目錄

del  刪除文件

exit 退出DOS命令行

set 臨時查看編輯環境變量配置 

 set classpath=D:\肖海波暑假重要文件\java code ——類環境變量(classpath

還原清理 set classpath= (等號後爲空,按回車肯定)

    set classpath=C:\ 後有一分號!若是目標c盤下沒有繼續在當前目錄下查找    

    set classpath=  . ;c:\;d:\    ------ 點;點表明當前目錄

     

javac :編譯

 java 運行

 

配置環境變量 :個人電腦屬性--高級-環境變量--系統變量(path)內加入地址。

 

   HELLO world

class hello

{

         public static void main(String[] args)

       {

         System.out.println(「hello world!」);

       }

}

 

 

變量 整形: byte  short  int  long  ,浮點型:float  double float a=2.3f 字符:char

     布爾量:boolean bo = true boolean bo1= false

 

 【邏輯運算符:】

&:‘與’運算,有假必假

&&:‘短路’ a>1 && a<7  左邊爲假右邊不運算,直接=false (可提升效率)

|:  ‘或’有真必真

||:  左邊爲真 右邊不運算,直接得=true

! :  ‘非’運算

^ :  ‘異或’ 相同爲false 不一樣爲ture

~ :  反碼

 

 【二進制移動—位運算】

<< :左移  3<<2 = 12 ——》3*2*2=12

>>: 右移  3>>1 = 1  ——》3/2 = 1

 >>> n : 右移n位,左邊首部無論正負與否都補 0

 小結:

 >>:最高位爲0,右移後,用0補空位、

          最高位爲1 ,右移後,用1補空位。

 >>> :不管最高位是什麼,右移後,都用0

 

【算術運算符】

+   ,- ,   *   ,   %   , ++  ,   - -    

//注意: short a=3;

         語句1 a+=2; )與 語句2:( a=a+2;

          不等同! 語句1能夠經過, 語句2編譯不經過,error:類型問題,可能損失精度

 

 

3元運算符】

  (條件表達式)? 語句1 語句2 //******若爲真執行1,若爲假執行2

 

3種調換值方法】

      容易閱讀       大數字相加可能超出範圍       位運算不超範圍,可讀性差

         int a = 2, b = 5;    int a = 2,b = 5;                   int a = 2 ,b = 5 ;

         int temp;              a=a+b;                                   a=a^b;

         temp=a;              b=a-b;                                  b=a^b;   // a=(a^b)^b = a

        a=b;                   a=a-b;                                       a=a^b    // a=(a^b)^a = b

       b=temp;

結果:a=5b=2        a=5,  b=2                           a=5 , b = 2

   

 

if語句】(判斷)

 

 if (條件表達式)       // if else 簡寫結構:變量=(條件表達式)? 語句1:語句2

       {                   // 三元運算符  好處:能夠簡化if else 代碼

       語句1                             弊端:因是一運算符,因此運算完必須有一結果

       }

else

{

       語句2

    }

 

if  (條件表達式1)           //  內多層 else if 結構,順序執行下去遇到第一個表達式爲真,則執行其後的語句,並退出整個if  else 結構。

       {

       }

else if (條件表達式2)

else if(條件表達式3

……

……

……

else

       {

       }                         

      

      

       if  ( 條件表達式1)

       {

       語句1

       }

        if ()

       {                                 //—————— 順序執行

       語句2

       }

       if ()

       ……

        else

       {

       }

 

switch語句】

        switch (表達式 )

        {

       case 取值1:執行語句1   break;

       case 取值2:執行語句2   break;

       ……

       default :

        執行語句 n break     // break 也能夠不寫。

       }

      

switch語句特色】

   1: switch語句選擇的類型只有4種:byteshortint char

2: case之間與default沒有順序。先執行第一個case,沒有匹配的case執行defaultdefault也能夠放在case前;

       3:結束switch語句的2種狀況:遇到break ,執行到結尾「}

4 :若是匹配的case或者default沒有對應的break,那麼程序會繼續向下執行,運行執行的語句,直到遇到breakswitch結尾結束;

      

switchif場景選用方案】

 1  若是判斷的具體數值很少,而又符合byteshortintchar這四種類型,建議使用switch,由於效率稍高

2  其餘狀況:對區間判斷,對boolean類型判斷,使用ifif的使用範圍更廣。

      

      

       【循環結構】

       while ( 條件表達式)

       {

       循環體;

       }

      

       do

       {

       循環體;

       }

       while( 條件表達式)

      

      

       for循環】

           若是變量只用來做爲循環體的增量 for循環語句,由於它初始化變量在內部,循環結束時將釋放變量在內存中所佔用的空間,節省內存

 

小規律:1;若是尖朝下,內循環初始化 用例(y=x ; y<5 ;  ;

       2;若是尖朝上,內循環條件 用例(y=0y<x ;)  來小於外部

 

breakcontinue

  Break語句 ,運用範圍:選擇結構和循環結構;  // 其餘範圍無效 

  Continue 語句, 運用範圍:運用於循環結構;    //繼續下一次循環

【標識符:

 n :  for ( ; ; ; )                // n表明外循環,s表明內循環

   {                                                       有語句 break n ; 表示退出外循環

        s :  for ( ; ; ; )

     {

      }

   }

  

—————————————— ————————————————————————

—————————————————— —————————————————————

【函數\方法】

 public static void name (int ,int )

修飾符 返回值類型 函數名(參數類型 形參1 ,參數類型 形參2…)

{

       執行語句;

    Return 返回值;

}

【函數的重載\overload

       在同一個類中,容許存在一個以上的同名函數,只要他們的參數個數或者參數類型不一樣便可(參數列表不一樣)

       好處:方便閱讀,優化了程序設計;

【數組】

int [ ] x = new int[3 ]                // int x [ ]=int [ ] x      []位置不一樣,兩者等同

棧:自動清除  :垃圾回收機制

 

【】

StringBuffer name= new StringBuffer( )       //定義個容器name

 name.append( temp );                    //如將1101經過temp挨個裝進name容器中

System.out.println( name.reverse( ) );         // 1011打印出來(反過來)

 

【查表】

 char[ ] ss={‘1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’} 

 

【二維數組】

定義:int[ ] [ ] arr = new int [3] [4]    //定義了名稱爲arr的二維數組,二維數組中有3   個一維數組。每個一維數組中有4個元素

       int [ ] [ ] arr= { {3,5,1,7,6} ,{2,9} ,{5,0,2,4} } ;      

 

另外一種定義方式:

         int [ ] [ ] arr= new int[3] [ ] ;

         int[0]=new int [5];

         int[1]=new int [2];

         int[2]=new int [4];

      

       System.out.println(arr.length );      //打印二維數組的長度 =3

       System.out.println(arr[0].length);    //打印二維數組中第一個一維數組的長度 =5

 

【】

 int [ ] [ ] arr=int arr [ ] [ ] = int [ ] arr [ ] ;    //三個位置不一,但意思等同

      

int [ ] x , y[ ];    // x是一維,y是二維。  ----------考試題  int[]x;  int[]y[];

【排序】

            

【選擇排序】——用第一個數與後面的全部進行比較,並換位。

for(int x=0;x<arr.length-1;x++)

 {

       for(int y=x+1;y<arr.length;y++)

              {

                if(arr[y]<arr[x])

                     {

            temp=arr[x];

                       arr[x]=arr[y];

                       arr[y]=temp;   

                      }

              }

}

【冒泡排序】——相鄰2個元素進行比較,若是符合條件換位。

       public static void MaoPao(int[] arr)

       {

              int temp;

              for(int x=0;x<arr.length;x++)

              {

                     for(int y=0;y<arr.length-x-1;y++)    //-x: 讓每一次比較的元素減小;

{                                                        -1:避免角標越界。

                            if(arr[y]>arr[y+1])            //冒泡排序時相鄰2數比較

                            {

                                   temp=arr[y+1];

                                   arr[y+1]=arr[y];

                                   arr[y]=temp;

                            }

                     }

              }

       }

【開發經常使用排序///簡單】——JAVA中已經定義好的排序方式。小到大

 class前面輸入——》import.java.util .*

 main 函數內輸入——》 Arrays.sort(arr)  // 完成數組arr的排序

 

【折半查找】

折半查找提升了查找效率,要求:數組要求是順序的!

class ChaZhao

{

       public static void main(String[] args)

       {

              int []arr={1,2,3,4,5,6,7,8,9};

              int x = ZBchazhao(arr,6);

              System.out.println("x="+ x);

       }    

       public static int ZBchazhao(int[] arr,int key)

       {

              int min,max,mid;

              min=0;

              max=arr.length-1;

              mid=(min+max)/2;  // mid = (min+max)>>1 ;

              while(min < = max)

              {

                  mid = (min + max )>>1;

                     if(key>arr[mid])

                            min=mid + 1;

                     else if(key < arr[mid])

                            max = mid - 1; 

                     else

                            return mid;

              }

              return -1;

             

       }

}

 

 

 

【進制轉換 優化】

 

class ArrayTest7

{

       public static void main(String[] args)

       {

              toBin(-6);

              toHex(-60);

              toBa(60);

       }

       /*

       十進制-->二進制

       */

       public static void toBin(int num)

       {

              trans(num,1,1);

       }

       /*

       十進制-->八進制

       */

       public static void toBa(int num)

       {

              trans(num,7,3);

       }

       /*

       十進制-->十六進制

       */

       public static void toHex(int num)

       {

              trans(num,15,4);

       }

 

       public static void trans(int num,int base,int offset)

       {

 

              if(num==0)

              {

                     System.out.println(0);

                     return ;

              }

              char[] chs = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};

              char[] arr = new char[32];

 

int pos = arr.length;

              while(num!=0)

              {

                     int temp = num & base;

                     arr[--pos] = chs[temp];

                     num = num >>> offset;

              }

 

              for(int x=pos; x<arr.length; x++)

              {

                     System.out.print(arr[x]);

              }

 

              return ;

       }

}

相關文章
相關標籤/搜索