<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java心路

    Java、Eclipse、Ajax......一個都不能少

     

    Java語言基礎知識


    2.1簡單數據類型

    2.1.1 標識符和保留字

     1.標識符
      程序員對程序中的各個元素加以命名時使用的命名記號稱為標識符(identifier)。Java語言中,標識符是以字母,下劃線(_),美元符($)開始的一個字符序列,后面可以跟字母,下劃線,美元符,數字。例如,identifier,userName,User_Name,_sys_val, $change為合法的標識符,而2mail room#,class 為非法的標識符。

     2.保留字

      具有專門的意義和用途,不能當作一般的標識符使用,這些標識符稱為保留字(reserved word),也稱為關鍵字,下面列出了java語言中的所有保留字:

    bstract, break,byte,boolean,catch,case,class,char,continue,default,double,do, else,extends,false,final,float,for,finally,if,import,implements,int, interface,instanceof,long,length,native,new,null,package,private, protected,public,return,switch,synchronized,short,static,super,try,true, this,throw,throws,threadsafe,transient,void,while 。

      java語言中的保留字均用小寫字母表示

    2.1.2 數據類型概

    ? 1. java中的數據類型劃分
      java語言的數據類型有簡單類型和復合類型:
      簡單數據類型包括:
         整數類型(Integer):byte, short, int, long
         浮點類型(Floating):float,double
         字符類型(Textual):char
         布爾類型(Logical):boolean

      復合數據類型包括:
         class
         interface
         數組

     
    2.常量和變量
      常量:用保留字final來實現
         final typeSpecifier varName=value[,varName[=value]…];
                         如:final int NUM=100;

      變量:是java 程序中的基本存儲單元,它的定義包括變量名、變量類型和作用域幾個部分。其定義格式如下:
         typeSpecifier varName[=value[,varName[=value]…];
                     如:int count; char c='a';

       變量的作用域指明可訪問該變量的一段代碼,聲明一個變量的同時也就指明了變量的作用域。按作用域來分,變量可以有下面幾種:局部變量、類變量、方法參數 和例外處理參數。在一個確定的域中,變量名應該是唯一的。局部變量在方法或方法的一個塊代碼中聲明,它的作用域為它所在的代碼塊(整個方法或方法中的某塊 代碼)。類變量在類中聲明,而不是在類的某個方法中聲明,它的作用域是整個類。方法參數傳遞給方法,它的作用域就是這個方法。例外處理參數傳遞給例外處理 代碼,它的作用域就是例外處理部分。

    2.1.3 簡單數據類型

     1.布爾類型--boolean

      布爾型數據只有兩個值true和false,且它們不對應于任何整數值。布爾型變量的定義如:
       boolean b=true;

     
    2.字符類型--char

      字符常量:
      字符常量是用單引號括起來的一個字符,如'a','A';

      字符型變量:
      類型為char,它在機器中占16位,其范圍為0~65535。字符型變量的定義如:
       char c='a'; /*指定變量c為char型,且賦初值為'a'*/

     
    3.整型數據
      
      整型常量:
      ◇ 十進制整數
        如123,-456,0
      ◇ 八進制整數
        以0開頭,如0123表示十進制數83,-011表示十進制數-9。
      ◇ 十六進制整數
        以0x或0X開頭,如0x123表示十進制數291,-0X12表示十進制數-18。

      整型變量:

    數據類型
    所占位數
    數的范圍
    byte
    8
    -27~27-1
    bhort
    16
    -215~215-1
    int
    32
    -231~231-1
    long
    64
    -263~263-1


     
    4.浮點型(實型)數據

      實型常量:
      ◇ 十進制數形式
        由數字和小數點組成,且必須有小數點,如0.123, 1.23, 123.0
      ◇ 科學計數法形式
        如:123e3或123E3,其中e或E之前必須有數字,且e或E后面的指數必須為整數。
      ◇ float型的值,必須在數字后加f或F,如1.23f。

      實型變量:

    數據類型
    所占位數
    數的范圍
    float
    32
    3.4e-038 ~3.4e+038
    double
    64
    1.7e-038 ~1.7e+038

      5.簡單數據類型的例子:

    【例2.1】
      public class Assign {
       public static void main (String args [ ] ) {
       int x , y ; //定義x,y兩個整型變量
       float z = 1.234f ; //指定變量z為float型,且賦初值為1.234
       double w = 1.234 ; //指定變量w為double型,且賦初值為1.234
       boolean flag = true ; //指定變量flag為boolean型,且賦初值為true
       char c ; //定義字符型變量c

       String str ; //定義字符串變量str
       String str1 = " Hi " ; //指定變量str1為String型,且賦初值為Hi
       c = ' A ' ; //給字符型變量c賦值'A'
       str = " bye " ; //給字符串變量str賦值"bye"
       x = 12 ; //給整型變量x賦值為12
       y = 300; //給整型變量y賦值為300
       }
      }

    2.1.4 簡單數據類型中各類型數據間的優先關系和相互轉換

     1.不同類型數據間的優先關系如下:

       低------------------------------------------->高
       byte,short,char-> int -> long -> float -> double

     
    2.自動類型轉換規則

      整型,實型,字符型數據可以混合運算。運算中,不同類型的數據先轉化為同一類型,然后進行運算,轉換從低級到高級;

    操作數1類型
    操作數2類型
    轉換后的類型
    byte、short、char    int     int
    byte、short、char、int    long     long
    byte、short、char、int、long    float     float
    byte、short、char、int、long、float    double     double

      
     
    3.強制類型轉換
     
      高級數據要轉換成低級數據,需用到強制類型轉換,如:
      int i;
      byte b=(byte)i; /*把int型變量i強制轉換為byte型*/

    2.2 運算符和表達式

    2.2.1 運算符

    ??? 對各種類型的數據進行加工的過程成為運算,表示各種不同運算的符號稱為運算符,參與運算的數據稱為操作數,按操作數的數目來分,可有:
      ◇ 一元運算符:++,--,+,-
      ◇ 二元運算符:+,-,>
      ◇ 三元運算符:?:

      基本的運算符按功能劃分,有下面幾類:

      1 算術運算符: +,―,*,/,%,++,――。
      
    例如:
        3+2;
        a-b;
        i++;
        --i;

      
    2 關系運算符: >,<,>=,<=,==,!=。
       例如:
        count>3;
        I==0;
        n!=-1;

      
    3 布爾邏輯運算符: !,&&,|| 。
      
    例如:
       flag=true;
       !(flag);
       flag&&false;

      
    4 位運算符: >>,<<,>>>,&,|,^,~。
      
    例如:
       a=10011101; b=00111001;則有如下結果:
       a<<3 =11101000;
       a>>3 =11110011 a>>>3=00010011;
       a&b=00011001; a|b=10111101;
       ~a=01100010; a^b=10100100;

      
    5 賦值運算符 =,及其擴展賦值運算符如+=,―=,*=,/=等。
      
    例如:
       i=3;
       i+=3;     //等效于i=i+3;

      
    6 條件運算符 ? :
       例如:result=(sum= =0 ? 1 : num/sum);

      
    7 其它:
       
    包括分量運算符· ,下標運算符 [],實例運算符instanceof,內存分配運算符new,強制類型轉換運算符 (類型),方法調用運算符 () 等。例如:
      System.out.println("hello world");
      int array1[]=new int[4];

    2.2.2 表達式

      表達式是由操作數和運算符按一定的語法形式組成的符號序列。一個常量或一個變量名字是最簡單的表達式,其值即該常量或變量的值;表達式的值還可以用作其他運算的操作數,形成更復雜的表達式。

      
    1.表達式的類型

      表達式的類型由運算以及參與運算的操作數的類型決定,可以是簡單類型,也可以是復合類型:
      布爾型表達式: x&&y||z;
      整型表達式: num1+num2;


      2.運算符的優先次序

       表達式的運算按照運算符的優先順序從高到低進行,同級運算符從左到右進行:

    優先次序
    運算符
    1
    . [] ()
    2
    ++ -- ! ~ instanceof
    3
    new (type)
    4
    * / %
    5
    + -
    6
    >> >>> <<
    7
    > < >= <=
    8
    = = !=
    9
    &
    10
    ^
    11
    |
    12
    &&
    13
    ||
    14
    ?:
    15
    = += -= *= /= %= ^=
    16
    &= |= <<= >>= >>>=


      例如,下述條件語句分四步完成:
      Result=sum==0?1:num/sum;
      第1步:result=sum==0?1:(num/sum)
      第2步:result=(sum==0)?1:(num/sum)
      第3步:result=((sum==0)?1:(num/sum))
      第4步:result=

    2.3控制語句

      Java程序通過控制語句來執行程序流,完成一定的任務。程序流是由若干個語句組成的,語句可以是單一的一條語句,如c=a+b,也可以是用大括號{}括起來的一個復合語句。Java中的控制語句有以下幾類:
      ◇ 分支語句:if-else, switch
      ◇ 循環語句:while, do-while, for
      ◇ 與程序轉移有關的跳轉語句:break, continue, return
      ◇ 例外處理語句:try-catch-finally, throw
      ◇ 注釋語句://,/* */, /** */

    2.3.1 分支語句

      分支語句提供了一種控制機制,使得程序的執行可以跳過某些語句不執行,而轉去執行特定的語句。

      
    1.條件語句 if-else

       if(boolean-expression)
        statement1;
       [else statement2;]

      
    2.多分支語句 switch

       switch (expression){
        case value1 : statement1;
       break;
        case value2 : statement2;
       break;
       …………
        case valueN : statemendN;
       break;
        [default : defaultStatement; ]
       }

      表達式expression的返回值類型必須是這幾種類型之一:int,byte,char,short。
       case子句中的值valueN必須是常量,而且所有case子句中的值應是不同的。
      default子句是可選的。
      break語句用來在執行完一個case分支后,使程序跳出switch語句,即終止switch語句的執行(在一些特殊情況下,多個不同的case值要執行一組相同的操作,這時可以不用break)。

    2.3.2 循環語句

      循環語句的作用是反復執行一段代碼,直到滿足終止循環的條件為止。Java語言中提供的循環語句有:
       
    while語句
       
    do-while語句
       
    for語句

    ? 1.while語句

      [initialization]
      while (termination){
        body;
      [iteration;]
      }

     
    2.do-while語句

      [initialization]
      do {
        body;
      [iteration;]
      } while (termination);

     
    3.for語句

      for (initialization; termination; iteration){
        body;
      }

      ◇
    for語句執行時,首先執行初始化操作,然后判斷終止條件是否滿足,如果滿足,則執行循環體中的語句,最后執行迭代部分。完成一次循環后,重新判斷終止條件。
      ◇初始化、終止以及迭代部分都可以為空語句(但分號不能省),三者均為空的時候,相當于一個無限循環。
      ◇在初始化部分和迭代部分可以使用逗號語句,來進行多個操作。逗號語句是用逗號分隔的語句序列。
       for( i=0, j=10; i
        ……
       }/j;>

    2.3.3 跳轉語句

      break語句
       continue語句
       返回語句return

    ? 1.break語句

      ◇ 在switch語中,break語句用來終止switch語句的執行。使程序從switch語句后的第一個語句開始執行。
      ◇Java中,可以為每個代碼塊加一個括號,一個代碼塊通常是用大括號{}括起來的一段代碼。加標號的格式如下:
      BlockLabel: { codeBlock }
      break語句的第二種使用情況就是跳出它所指定的塊,并從緊跟該塊的第一條語句處執行。例如:
      break BlockLabel;
      break語句
      a:{…… //標記代碼塊a
      b:{…… //標記代碼塊b
      c:{…… //標記代碼塊c
      break b;
       …… //此處的語句塊不被執行
      }
       …… /此處的語句塊不被執行
      }
       …… //從此處開始執行
      }

     
    2.continue語句

      continue語句用來結束本次循環,跳過循環體中下面尚未執行的語句,接著進行終止條件的判斷,以決定是否繼續循環。對于for語句,在進行終止條件的判斷前,還要先執行迭代語句。它的格式為:
       continue;

      也可以用continue跳轉到括號指明的外層循環中,這時的格式為
       continue outerLable;

      例如:
       outer: for( int i=0; i<10; i++ ){ //外層循環
       inner: for( int j=0; j<10; j++ ){ //內層循環
       if( i
         ……
       continue outer;
    /j>

       }
         ……
       }
         ……
       }

     
    3.返回語句return
       
      return語句從當前方法中退出,返回到調用該方法的語句處,并從緊跟該語句的下一條語句繼續程序的執行。返回語句有兩種格式:
      return expression ;
      return;

      return語句通常用在一個方法體的最后,否則會產生編譯錯誤,除非用在if-else語句中

    2.3.4 例外處理語句

      包括try,catch,finally,throw語

    2.4 數組

      java語言中,數組是一種最簡單的復合數據類型。數組是有序數據的集合,數組中的每個元素具有相同的數據類型,可以用一個統一的數組名和下標來唯一地確定數組中的元素。數組有一維數組和多維數組。

    2.4.1 一維數組

      1. 一維數組的定義

      type arrayName[ ];
      類型(type)可以為Java中任意的數據類型,包括簡單類型和復合類型。
      例如:
       int intArray[ ];
       Date dateArray[];


     
    2.一維數組的初始化

       靜態初始化
        int intArray[]={1,2,3,4};
        String stringArray[]={"abc", "How", "you"};


      
    動態初始化
        1)簡單類型的數組
        int intArray[];
        intArray = new int[5];

       2)復合類型的數組
        String stringArray[ ];
        String stringArray = new String[3];/*為數組中每個元素開辟引用
                          空間(32位) */

        stringArray[0]= new String("How");//為第一個數組元素開辟空間
        stringArray[1]= new String("are");//為第二個數組元素開辟空間
        stringArray[2]= new String("you");// 為第三個數組元素開辟空間


     
    3.一維數組元素的引用

      數組元素的引用方式為:
         arrayName[index]

      index為數組下標,它可以為整型常數或表達式,下標從0開始。每個數組都有一個屬性length指明它的長度,例如:intArray.length指明數組intArray的長度。

    2.4.2 多維數組

      Java語言中,多維數組被看作數組的數組。

      1.二維數組的定義

      type arrayName[ ][ ];
      type [ ][ ]arrayName;

     
    2.二維數組的初始化

      
    靜態初始化
      int intArray[ ][ ]={{1,2},{2,3},{3,4,5}};

      Java語言中,由于把二維數組看作是數組的數組,數組空間不是連續分配的,所以不要求二維數組每一維的大小相同。

      
    動態初始化
      1) 直接為每一維分配空間,格式如下:
      arrayName = new type[arrayLength1][arrayLength2];
      int a[ ][ ] = new int[2][3];

      2) 從最高維開始,分別為每一維分配空間:
      arrayName = new type[arrayLength1][ ];
      arrayName[0] = new type[arrayLength20];
      arrayName[1] = new type[arrayLength21];
      …
      arrayName[arrayLength1-1] = new type[arrayLength2n];

      3) 例:
      二維簡單數據類型數組的動態初始化如下,
      int a[ ][ ] = new int[2][ ];
      a[0] = new int[3];
      a[1] = new int[5];

      對二維復合數據類型的數組,必須首先為最高維分配引用空間,然后再順次為低維分配空間。
      而且,必須為每個數組元素單獨分配空間。

      例如:
      String s[ ][ ] = new String[2][ ];
      s[0]= new String[2];//為最高維分配引用空間
      s[1]= new String[2]; //為最高維分配引用空間
      s[0][0]= new String("Good");// 為每個數組元素單獨分配空間
      s[0][1]= new String("Luck");// 為每個數組元素單獨分配空間
      s[1][0]= new String("to");// 為每個數組元素單獨分配空間
      s[1][1]= new String("You");// 為每個數組元素單獨分配空間

     
    3.二維數組元素的引用
      
      對二維數組中的每個元素,引用方式為:arrayName[index1][index2]
      例如: num[1][0];

     
    4.二維數組舉例:

    【例2.2】兩個矩陣相乘
      public class MatrixMultiply{
       public static void main(String args[]){
       int i,j,k;
       int a[][]=new int [2][3]; //動態初始化一個二維數組
       int b[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};//靜態初始化
                               一個二維數組

       int c[][]=new int[2][4]; //動態初始化一個二維數組
       for (i=0;i<2;i++)
         for (j=0; j<3 ;j++)
          a[i][j]=(i+1)*(j+2);
       for (i=0;i<2;i++){
         for (j=0;j<4;j++){
          c[i][j]=0;
       for(k=0;k<3;k++)
         c[i][j]+=a[i][k]*b[k][j];
          }
         }
       System.out.println("*******Matrix C********");//打印Matrix C標記
       for(i=0;i<2;i++){
         for (j=0;j<4;j++)
          System.out.println(c[i][j]+" ");
         System.out.println();
          }
         }
       }

    2.5 字符串的處理

    2.5.1 字符串的表示

      Java語言中,把字符串作為對象來處理,類String和StringBuffer都可以用來表示一個字符串。(類名都是大寫字母打頭)

      1.字符串常量

      字符串常量是用雙引號括住的一串字符。
        "Hello World!"

     
    2.String表示字符串常量

      用String表示字符串:
      String( char chars[ ] );
      String( char chars[ ], int startIndex, int numChars );
      String( byte ascii[ ], int hiByte );
      String( byte ascii[ ], int hiByte, int startIndex, int numChars );
      String使用示例:
      String s=new String() ; 生成一個空串

      下面用不同方法生成字符串"abc":
      char chars1[]={'a','b','c'};
      char chars2[]={'a','b','c','d','e'};
      String s1=new String(chars1);
      String s2=new String(chars2,0,3);
      byte ascii1[]={97,98,99};
      byte ascii2[]={97,98,99,100,101};
      String s3=new String(ascii1,0);
      String s4=new String(ascii2,0,0,3);

     
    3.用StringBuffer表示字符串

      StringBuffer( ); /*分配16個字符的緩沖區*/
      StringBuffer( int len ); /*分配len個字符的緩沖區*/
      StringBuffer( String s ); /*除了按照s的大小分配空間外,再分配16個
                   字符的緩沖區*/

    2.5.2 訪問字符串

    ? 1.類String中提供了length( )、charAt( )、indexOf( )、lastIndexOf( )、getChars( )、getBytes( )、toCharArray( )等方法。

      
    public int length() 此方法返回字符串的字符個數
       public char charAt(int index) 此方法返回字符串中index位置上的字符,其中index 值的 范圍是0~length-1
       public int indexOf(int ch)
        public lastIndexOf(in ch)
      
      返回字符ch在字符串中出現的第一個和最后一個的位置
       public int indexOf(String str)
        public int lastIndexOf(String str)
      返回子串str中第一個字符在字符串中出現的第一個和最后一個的位置
       public int indexOf(int ch,int fromIndex)
        public lastIndexOf(in ch ,int fromIndex)
      返回字符ch在字符串中位置fromIndex以后出現的第一個和最后一個的位置
       public int indexOf(String str,int fromIndex)
        public int lastIndexOf(String str,int fromIndex)
      返回子串str中的第一個字符在字符串中位置fromIndex后出現的第一個和最后一個的位置。
       public void getchars(int srcbegin,int end ,char buf[],int dstbegin)
       srcbegin 為要提取的第一個字符在源串中的位置, end為要提取的最后一個字符在源串中的位置,字符數組buf[]存放目的字符串,    dstbegin 為提取的字符串在目的串中的起始位置。
      public void getBytes(int srcBegin, int srcEnd,byte[] dst, int dstBegin)
      參數及用法同上,只是串中的字符均用8位表示。

     
    2.類StringBuffer提供了 length( )、charAt( )、getChars( )、capacity()等方法。

      方法capacity()用來得到字符串緩沖區的容量,它與方法length()所返回的值通常是不同的。

    2.5.3 修改字符串

      修改字符串的目的是為了得到新的字符串,類String和類StringBuffer都提供了相應的方法。有關各個方法的使用,參考java 2 API。

      1.String類提供的方法:

       concat( )
       replace( )
       substring( )
       toLowerCase( )
       toUpperCase( )

      ◇
    public String contat(String str);
      用來將當前字符串對象與給定字符串str連接起來。
      ◇ public String replace(char oldChar,char newChar);
      用來把串中出現的所有特定字符替換成指定字符以生成新串。
      ◇ public String substring(int beginIndex);
      public String substring(int beginIndex,int endIndex);
      用來得到字符串中指定范圍內的子串。
      ◇ public String toLowerCase();
      把串中所有的字符變成小寫。
      ◇ public String toUpperCase();
      把串中所有的字符變成大寫。

     
    2.StringBuffer類提供的方法:

      append( )
      insert( )
      setCharAt( )

      如果操作后的字符超出已分配的緩沖區,則系統會自動為它分配額外的空間。
      ◇ public synchronized StringBuffer append(String str);
      用來在已有字符串末尾添加一個字符串str。
      ◇ public synchronized StringBuffer insert(int offset, String str);
      用來在字符串的索引offset位置處插入字符串str。
      ◇ public synchronized void setCharAt(int index,char ch);
      用來設置指定索引index位置的字符值。

      注意:String中對字符串的操作不是對源操作串對象本身進行的,而是對新生成的一個源操作串對象的拷貝進行的,其操作的結果不影響源串。

      相反,StringBuffer中對字符串的連接操作是對源串本身進行的,操作之后源串的值發生了變化,變成連接后的串。

    2.5.4 其它操作

    ? 1.字符串的比較

      String中提供的方法:
      equals( )和equalsIgnoreCase( )
      它們與運算符'= ='實現的比較是不同的。運算符'= ='比較兩個對象是否引用同一個實例,而equals( )和equalsIgnoreCase( )則比較  兩個字符串中對應的每個字符值是否相同。

     
    2.字符串的轉化

      java.lang.Object中提供了方法toString( )把對象轉化為字符串。

     
    3.字符串"+"操作

      運算符'+'可用來實現字符串的連接:
      String s = "He is "+age+" years old.";
      其他類型的數據與字符串進行"+"運算時,將自動轉換成字符串。具體過程如下:
      String s=new StringBuffer("he is").append(age).append("years old").toString();

      注意:除了對運算符"+"進行了重載外,java不支持其它運算符的重載。


    posted on 2006-05-25 13:01 bisal 閱讀(248) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(4)

    隨筆檔案

    文章檔案

    相冊

    Java戰友兄弟

    常用技術交流平臺

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品亚洲福利一区二区| 亚洲精品无码久久久久去q | 视频免费1区二区三区| 日韩成人免费在线| 亚洲一卡一卡二新区无人区 | 亚洲AV美女一区二区三区| 抽搐一进一出gif免费视频| 精品无码无人网站免费视频 | 污网站在线观看免费| 免费人成网站在线播放| 一级毛片免费播放男男| 日韩在线播放全免费| 国产 亚洲 中文在线 字幕| 在线A级毛片无码免费真人| 亚洲韩国精品无码一区二区三区| 国内精品99亚洲免费高清| 久久亚洲免费视频| 欧美最猛性xxxxx免费| 欧洲亚洲国产精华液| 亚洲一区在线免费观看| 亚洲va久久久久| 免费无码又爽又刺激高潮的视频 | 国产yw855.c免费视频| 男女啪啪免费体验区| 综合亚洲伊人午夜网| 日本在线看片免费人成视频1000| 日日AV拍夜夜添久久免费| 日韩毛片在线免费观看| 亚洲国产精品无码久久久蜜芽| 亚洲爆乳成av人在线视菜奈实| 免费A级毛片无码久久版| 日本免费人成网ww555在线| 亚洲国产精品成人精品小说| 久久精品一区二区免费看| 亚洲AV综合色区无码二区爱AV| 四虎影在线永久免费观看| 午夜精品射精入后重之免费观看 | 亚洲JIZZJIZZ中国少妇中文| 特级精品毛片免费观看| 亚洲AV无码AV吞精久久| 亚洲欧洲日韩不卡|