2008年12月6日

          java.lang.ExceptionInInitializerError
          at com.sun.kvem.util.WindowUtils.setLookAndFeel(Unknown Source)
          at com.sun.kvem.midp.MIDP.<clinit>(Unknown Source)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
          at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
          at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
          at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
          at com.sun.kvem.environment.EmulatorInvoker.runEmulatorImpl(Unknown Source)
          at com.sun.kvem.environment.EmulatorInvoker.main(Unknown Source)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at com.sun.kvem.environment.JVM.main(Unknown Source)
          Caused by: java.lang.IllegalArgumentException: 90 incompatible with Text-specific LCD contrast key
          at java.awt.RenderingHints.put(RenderingHints.java:1057)
          at sun.awt.windows.WDesktopProperties.getDesktopAAHints(WDesktopProperties.java:293)
          at sun.awt.windows.WToolkit.getDesktopAAHints(WToolkit.java:925)
          at sun.awt.SunToolkit.getDesktopFontHints(SunToolkit.java:1882)
          at sun.awt.windows.WDesktopProperties.getProperties(WDesktopProperties.java:230)
          at sun.awt.windows.WToolkit.updateProperties(WToolkit.java:880)
          at sun.awt.windows.WToolkit.lazilyInitWProps(WToolkit.java:832)
          at sun.awt.windows.WToolkit.lazilyLoadDesktopProperty(WToolkit.java:821)
          at java.awt.Toolkit.getDesktopProperty(Toolkit.java:1746)
          at javax.swing.UIManager.<clinit>(UIManager.java:388)
          ... 13 more



          是j2me的...MIDP1.0相關的一個jpx

          是JBuilder2005的環境


            NND   火大了   這拋出的什么異常..........怎么搞誰  誰知道.............

          posted @ 2008-12-18 16:33 楓舞星萍 閱讀(395) | 評論 (1)編輯 收藏

          Java語句及其控制結構

          import java.applet.Applet; //包引入語句
          public class GetSquare extends Applet;//聲明類語句

          1. 表達式語句

          int k, i=3, j=4;
          k=i+j;
          System.out.println(″k=″+k);

          2. 復合語句

          class Block {
          public static void main(String args[]) {
            int k, i=3, j=4;
            k=i+j;
            System.out.println(″k=″+k);
            {
            float f;
            f=j+4.5F;
            i++;
            System.out.println(″f=″+f);
            }
            System.out.println(″i=″+i);
          }
          }

          選擇語句
          利用選擇語句結構可以根據條件控制程序流程,改變程序執行的順序。

          if語句
          if語句的語法格式為:

          if (條件表達式)
          s1語句;

          這是最簡單的單分支結構。條件表達式的值為true,就執行s1語句,否則就忽略s1語句。s1語句可以是復合語句。

          if…else語句

          if語句通常與else語句配套使用,形成二分支結構。它的語法格式為:

          if (條件表達式)
          s1語句;
          else
          s2語句;

          當條件表達式的值為true,就執行s1語句,忽略else和s2語句;條件表達式的值為false,程序忽略s1語句,執行else后面的s2語句。s1和s2都可以是復合語句。

          if…else復合結構

          對于復雜的情況,可以嵌套使用if…else語句。它的語法格式為:

          if (條件表達式1)
          s1語句;
          else if (條件表達式2)
          s2語句;
          else
          s3語句;

          在這里依次計算條件表達式,如果某個條件表達式的值為true,就執行它后面的語句,其余部分被忽略;所有表達式的值都為false,就執行最后一個else后的s3語句。s1、s2和s3都可以是復合語句。

          switch開關語句
          雖然嵌套的條件語句可實現多個分支處理,但嵌套太多時容易出錯和混亂,這時可以使用開關語句switch處理。實際上開關語句switch也是一種if…else結構,不過它使你在編程時很容易寫出判斷條件,特別是有很多條件選項的時候。

          開關語句switch的語法格式:
          switch (表達式) {
          case 常量1:
            語句1;
            break;

          case 常量2:
            語句2;
            break;
          ......
          default:
            語句n;
          }
          其中switch、case、default是關鍵字,default子句可以省略。開關語句先計算表達式,然后將表達式值與各個常量比較,如果表達式值與某個常量相等,就執行該常量后面的語句;如果都不相等,就執行default下面的語句。如果無default子句,就什么都不執行,直接跳出開關語句。

          使用開關語句時,注意以下幾點:
          • case后面的常量必須是整數或字符型,而且不能有相同的值;
          • 通常在每一個case中都應使用break語句提供一個出口,使流程跳出開關語句。否則,在第一個滿足條件case后面的所有語句都會被執行,這種情況叫做落空。

          循環語句

          循環可使程序根據一定的條件重復執行某一部分程序代碼,直到滿足終止循環條件為止。
          Java中提供的循環語句有: 確定次數循環(for)、條件循環(while)、先執行后判定循環(do)。

          for循環語句

          如果希望程序的一部分內容按固定的次數重復執行,通常可以使用for循環。for循環采用一個計數器控制循環次數,每循環一次計數器就計數,直到完成給定的循環次數為止。

          for循環的語法格式為:

          for (表達式1; 表達式2; 表達式3)
          循環體

          其中表達式1可以給出計數器的初值,是一個賦值語句;表達式2指出循環結束條件,是一個邏輯表達式;表達式3指出計數器每次的增量,是一個賦值語句。

          注意: 計數器可在for語句之前定義,也可在循環括號中定義。計數器增量為1時常寫成增量運算的形式,以加快運算速度。根據需要,增量可以大于或小于1。增量計算也可以放在循環體中進行,即把表達式3移到循環體內的適當位置,原位置為空。
          使用循環語句時常常會遇到死循環的情況,也就是無限制地循環下去。所以在使用for循環時,要注意初值、終值和增量的搭配。終值大于初值時,增量應為正值,終值小于初值時,增量應為負值。編程時必須密切關注計數器的改變,這是實現正常循環避免陷入死循環的關鍵。

          while循環語句
          while循環不像for循環那么復雜,while循環只需要一個條件判斷語句,便可以進行循環操作。

          while循環的語法格式為:

          while (條件表達式) 
          循環體

          其中while是關鍵字。每次循環之前都要計算條件表達式,其值為true時,就執行一次循環體中的語句,然后再計算條件表達式,決定是否再次執行循環體中的語句;如果條件表達式的值為false時,就跳出循環體,執行循環體下面的語句。

          注意: while循環中的條件表達式是邏輯表達式,所以循環體中一定要有改變條件表達式值的語句,使條件表達式的值有機會變為false,否則會陷入死循環。

          do…while循環語句
          do…while循環與while循環相反,是先執行循環體中的語句,再計算while后面的條件表達式,若條件表達式值為false則跳出循環;否則繼續下一輪循環。

          有些情況下,不管條件表達式的值是為true還是false,都希望把指定的語句至少執行一次,那么就應使用do…while循環。

          do…while循環的語法格式為:

          do {
          循環體
          } while (條件表達式);

          其中do、while是關鍵字。程序首先執行do下面的循環體,然后計算while后面條件表達式的值,如果其值為true,則重復執行循環體;否則,就結束循環。

          與while循環相同,do循環在循環體中也一定要有改變條件表達式值為false的語句,否則會陷入死循環。do…while循環控制并不是很常用,但有時卻非常重要,使用時特別注意不要忘記了while語句結尾處的分號“;”。

          循環語句嵌套
          ex:做個例子 是累計求和的。

          public class Sum1 {
          public static void main(String args[]) {
            int n=10, sum=0;
            while (n>0) {
            sum=0;
            for (int i=1; i<=n; i++)
              sum+=i;
            System.out.println(″前″+n+″個數的總和為: ″+sum);
            n--;
            }
          }
          }

          循環語句小結
          一個循環一般應包括4部分內容。
          (1) 初始化部分: 用來設置循環的一些初始條件,計數器清零等。
          (2) 循環體部分: 這是反復被執行的一段代碼,可以是單語句,也可以是復合語句。
          (3) 迭代部分: 這是在當前循環結束,下一次循環開始時執行的語句,常用來使計數器加1或減1。
          (4) 終止部分: 通常是一個布爾表達式,每一次循環要對該表達式求值,以驗證是否滿足循環終止條件。

          跳轉語句
          跳轉語句可以無條件改變程序的執行順序。Java支持3種跳轉語句: break、continue和return。

          break語句

          break語句提供了一種方便的跳出循環的方法。使用break語句可以立即終止循環,跳出循環體,即使循環沒有結束也如此。

          break語句的使用示例,輸出結果如圖3.10所示。

          class B {
          public static void main(String args[]) {
            boolean test=true;
            int i=0;
            while (test) {
            i=i+2;
            System.out.println(″i=″+i);
            if (i>=10)
              break;
            }
            System.out.println(″ i為″+i+″時循環結束″);
          }
          }


          帶標號的break語句

          標號是標記程序位置的標識符。break語句只能跳轉到循環語句下面的第一條語句上,而帶標號的break語句可直接跳轉到標號處。正常的break只退出一重循環,如果要退出多重循環,可以使用帶標號的break語句。它的語法格式為:

          標識符:
          …
          break 標識符;

          做個例子說明

          運行該工程,正常情況下可從鍵盤接受16個輸入字符,但當輸入b按回車時,break lab1語句就會結束二重循環。

          class B1 {
          public static void main(String args[]) throws java.io.IOException {
            char ch;

            lab1: // 此處為標號標識符
            for (int i=0; i<4; i++)
            for (int j=0; j<4; j++) {
              ch=(char)System.in.read();
              System.in.skip(2);
              if (ch==′b′)
              break lab1;//跳到標號標識符處
              if (ch==′c′)
              System.out.println(″繼續″);

            }
            System.out.println(″結束兩重循環″);
          }
          }


          continue語句
          continue語句只能用在循環結構中,它跳過循環體中尚未執行的語句,重新開始下一輪循環,從循環體第一個語句開始執行。

          下面的可以輸出1~9中除6以外所有偶數的平方值

          class C2 {
          public static void main(String args[]) {
            for (int i=2;i<=9;i+=2) {
            if (i==6)
              continue; 
            System.out.println(i+″ 的平方 = ″+i*i); }
          }
          }

          帶標號的continue語句
          Java也支持帶標號的continue語句,它通常用在嵌套循環的內循環中,可以用標號標出想跳到哪一條語句繼續重復執行程序。其語法格式為:

          標識符:
          …
          continue 標識符;

          帶標號的continue語句的使用

          class C3{
          public static void main(String args[]) {
            lab1:
            for (int i=1; i<=3; i++)
            for (int j=1; j<=3; j++) {
              System.out.println(″i:″+i+″ j:″+j);
              if (i+j>3) {
              System.out.println(″Continue″);
              continue lab1;
              }
              System.out.println(″i=″+i+″  j=″+j);
            }
          }
          }


          求100~200間的所有素數。用嵌套的for循環做

          public class Find {
          public static void main(String args[]) {
            System.out.println(″ ** 100~200間的所有素數 **″);
            int n=0;

            outer:
            for (int i=101; i<200; i+=2) {
            int k=15;
            for (int j=2; j<=k; j++)
              if (i%j==0)
              continue outer;
            System.out.print(″ ″+i);
            n++;
            if (n<10)
              continue;

            System.out.println();
            n=0;
            }
            System.out.println();
          }
          }


          return語句
          return語句用于方法的返回上,當程序執行到return語句時,終止當前方法的執行,返回到調用這個方法的語句。return語句通常位于一個方法體的最后一行,有帶參數和不帶參數兩種形式,帶參數形式的return語句退出該方法并返回一個值。

          當方法用void聲明時,說明不需要返回值(即返回類型為空),應使用不帶參數return語句。不帶參數的return語句也可以省略,當程序執行到這個方法的最后一條語句時,遇到方法的結束標志}就自動返回到調用這個方法的程序中。

          帶參數的return語句格式為:

          return 表達式;

          當程序執行到這個語句時,首先計算“表達式”的值,然后將表達式的值返回到調用該方法的語句。返回值的數據類型必須與方法聲明中的返回值類型一致,可以使用強制類型轉換來使類型一致。

          帶參數的return語句的使用

          class CircleArea {
          final static double PI=3.14159;
          public static void main(String args[]) {
            double r1=8.0, r2=5.0;
            System.out.println(″半徑為″+r1+″的圓面積=″+area(r1));
            System.out.println(″半徑為″+r2+″的圓面積=″+area(r2));
          }
          static double area(double r) {
            return (PI*r*r);
          }
          }

          posted @ 2008-12-06 22:04 楓舞星萍 閱讀(864) | 評論 (3)編輯 收藏

          JAVA語言基礎(二)
          Java語言特點

          Java是一種
          簡單、面向對象、分布式(網絡適用)、解釋型、健壯、安全、結構中立、可移植、高性能、多線程、動態的
          計算機程序語言。


          Java語言的基本元素
          Java包含標識符、關鍵字、運算符和分隔符等元素。。
          標識符

          變量以及類和方法都需要一定的名稱。所有的標識符都必是以一個字母、下劃線或美元符號“$”開頭的一串字符,后面的字符可以包含字母、數字、下劃線和美元符號。

          標識符是由程序員自己定義的名稱,可按規則隨意選取。不過,Java中有一個標識符命名約定: 常量用大寫字母,變量用小寫字母開始,類以大寫字母開始。如果一個變量名由多個單詞構成,第一個單詞后面的單詞以大寫字母開始, Java區分字母大小寫,標識符中的大小寫字母被認為是不同的兩個字符。

          關鍵字

          如附件圖1

           

            注: 帶*號的關鍵字現在已不使用。


          分隔符

          1. 注釋符
          (1) // 注釋一行
          (2) /*… */一行或多行注釋。“/*”開始,最后以“*/”結束,中間可寫多行。

          2. 空白符
          空格、回車、換行和制表符(Tab鍵)等符號

          3. 普通分隔符
          . 點,分隔包、類或分隔引用變量中的變量和方法;
          ; 分號,語句結束的標志;
          , 逗號,分隔方法的參數和變量說明等;
          : 冒號,說明語句標號;
          {} 大括號,用來定義復合語句、方法體、類體及數組的初始化;

          [] 方括號,用來定義數組類型及引用數字的元素值;
          () 圓括號,定義運算優先級。


          PS米米:空白符和分隔符都是區分語言各種基本成份的.

          public class mimi { // public關鍵字  mimi為類名?
          public static void main(String args[]) {
          // public聲明公共關鍵字
          // static聲明靜態方法關鍵字
          //void 空返回值
          // main 入口函數

            int i, c;
          //賦值  I ,c  為int類型
            ...
          }方法的最后的大括號
          }入口函數最后的大括號


          需注意…括號不要弄混亂  順序是  由外向內的

          數據類型
          Java的數據類型可分為: 基本類型,包括整型、浮點型、布爾型和字符型;數組類型,包括一維數組和多維數組;復合類型,包括類和接口。

          基本數據類型
          Java定義了8種基本數據類型。

          如圖2
           

          PS米米: 一般情況,沒有小數點的數字是int型數,帶有小數點的數是double型的數,其他數值數據要在數字后面加一個大寫或小寫字母表示數據類型。

          變量的聲明
          Java存儲數據,要它保存到一個變量中。變量在使用前必須有定義,即有確定的類型和名稱。聲明變量的格式為:

          類型 變量名[,變量名]=初值,…;

          byte b1, b2;
          b1=99,b2=100;
          //先聲明后賦值

          int v1=0, v2=10, v3=18;
            //聲明和賦值同時進行


          變量類型的轉換
          變量類型強制轉換的格式:
          (數據類型)數據表達式
          PS:
          int a;char b;b=′A′;
          a=(int) b;

          數值型數據,Java可將低精度的數字賦值給高精度的數字型變量,反之則需要進行強制類型轉換,所以int,short,byte賦值給long型時不需要顯式的類型轉換,反之,將long型數賦值給byte,short,int型時需要強制轉換

          運算符與表達式
          Java的運算符代表著特定的運算指令,程序運行時將對運算符連接的操作數進行相應的運算。運算符和操作數的組合構成表達式,表達式代表著一個確定的數值。表達式在使用上總是先計算后使用,因此,不管一個表達式有多么復雜,其最終結果都是一個有確定類型和大小的數值。
          按照運算符功能來分,運算符有7種: 賦值運算符、算術運算符、關系運算符、條件運算符、邏輯運算符、位運算符和其他運算符。
          按照連接操作數的多少來分,有一元運算符、二元運算符和三元運算符。另外,算術運算符和賦值運算符可以結合在一起形成算術賦值運算符。
          2.3.1 賦值運算符
          圖3 賦值運算符
          由賦值運算符構成的表達式稱為賦值表達式。賦值運算符的右邊是一個表達式,這個表達式還可以包含一個表達式。例如: a=b=c=0,相當于3個表達式c=0,b=c,a=b。
          2.3.2 算術運算符
          見圖4

          算術運算符按操作數的多少可分為一元運算符和二元運算符。一元運算符(+、-、++、--)一次對一個操作數進行運算,二元運算符一次對兩個操作數進行運算。

          關系運算符
          見圖5
          關系運算符用于兩個操作數之間關系的比較。關系表達式的運算結果為布爾值,不是true就是false,操作數可以是常量、變量和表達式。關系表達式常常用作分支結構或循環結構的控制條件。
          條件運算符
          是三元運算符,條件表達式的格式:
          條件表達式 ? 結果1: 結果2;

          先計算作為條件的邏輯表達式或關系表達式,條件表達式返回值為true時整個表達式的值為結果1,返回值是false時整個表達式的值為結果2。

          邏輯運算符
          見圖6
          解決一些簡單條件的判定問題,對較為復雜的條件還得用邏輯運算判定。邏輯表達式最終運算結果為boolean的true或false。“&&”連接的兩個表達式中,只要有一個不true,則整個表達式就為false。運算時只要判定左邊表達式為false,就可立即得出結論,不再計算右邊表達式。所以,最有可能取false值的表達式盡量放在左邊,這樣可提高表達式的運算速度。“&”在表達式判定上和“&&”相同,惟一不同的是它總是計算兩邊表達式的值。
          “ || ”連接的兩個表達式中,只要有一個為true,則整個表達式就為true。運算時只要判定左邊表達式為true,就可立即得出結論,不再計算右邊表達式。所以,最有可能取true值的表達式盡量放在左邊,以提高表達式的運算速度。
          “ | ”在表達式判定上和“||”相同,不同之處是它總是計算兩邊表達式的值。
          “ ^ ” 邏輯異或連接的兩個表達式同為true或同為false時,整個表達式結果為false,其他情況下取true。
          其他運算符
          見圖7…其實new我一直理解成關鍵字 - -
          運算優先級
            有一堆運算符…..加減乘除之類…我從來不管….一律加()….最高優先級…. 汗

          數組
          有序數據的集合,其中的每個元素具有相同的數組名,根據數組名和下標來惟一地確定數組中的元素。數組有一維數組和多維數組,使用時要先聲明后創建。
          這么說不太好懂
          Ex:
          i=[1,2,3,4,5];
          數組i里的1,下標為0,依此類推.

          一維數組的聲明
          一維數組是指一個線性數據序列,聲明格式:
          數據類型 數組名[]; 或 數據類型[] 數組名;
          Ex:
          int arr1[];
          char [] arr2;
          數組的定義中并不為數組元素分配內存,因此“[]”中不用指出數組中元素的個數即數組長度,而且對于如上定義的一個數組暫時還不能訪問它的任何元素。
          一維數組的創建與賦值
          定義數組后,還必須為數組分配內存、初始化。
          格式:
          數組名= new 數據類型[size]
          其中,size指明數組的長度.如:
          int intAwp[]=new int[3];
          char cAwp[]=new char[5];
          數組元素賦值的方法與變量相同.如:
          intdd[0]=10;
          intdd[1]=20;
          intdd[2]=30;

          直接賦初值并定義數組的大小
          還有就是直接賦初值并定義數組的大小。初值用大括號括起,用逗號做分隔符,初值的個數表示數組的大小。
          int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
          char c[]={′a′,′b′, ′c′, ′北′, ′方′}

          多維數組
          多維數組就是數組的數組(說的通俗點)。比如二維數組就是一個特殊的一維數組,它的每個元素是一個一維數組。
          二維數組的聲明與一維數組基本相同,只是后面再加上一對中括號“[]”。創建二維數組時,可指定各維的長度或至少指定第一維的長度,也可采用直接賦值的方法確定二維數組的長度。此時,按照給定的值序依次填滿數組每一行中的元素。更高維的情況差不多。Ex:
          int awp1[][]=new int[3][4]; 
          int awp2[][]=new int[3][ ];
          int awp3[][]={{0,1,2},{3,4,5},{6,7,8}};
          二維數組有一個好處是第二維的長度可以不相等。

          posted @ 2008-12-06 22:03 楓舞星萍 閱讀(332) | 評論 (0)編輯 收藏

          java語言基礎(一)

          本文只提要點


          1. java和c++ 、 c的不同.

          C面向過程,java和c++面向對象,這里要注意這里指的面向對象只是說一定程度的相對定義。

          2. java 語言的類別

          j2e..標準版

          j2me.. 精簡版

          j2ee...企業版


          3.  java的運算概念

          如同 cpp →win


          java→ 類(class)→解釋器(虛擬機)→各個系統


          4. jar  是class文件的集合.

          5. 類包含函數

          6.初步接觸java

          class  b007{
            public  static  void  mian(String  args[ ]) {
            System.out.print("How  are you ?");

            }
          }


          class為類標識符 b007為類名(注意類名的命名是有規則的)
          b007后的{ 到結尾的 }  是代表  類 b007 的域
          mian 是入口函數  是一個方法

          我們來看下 文字表述

          b007類包含mian方法,并且main是公有(public)的,是類的靜態成員(static),且無返回值(void)

          String 是字符串類名    args是命令行參數,可用于接收外界傳給java的參數,個數未定。
          分隔符[ ] ,表示一維數組。

          大體來說java的構成包括標識符、關鍵字、運算符、分隔符等。

          posted @ 2008-12-06 22:01 楓舞星萍 閱讀(207) | 評論 (0)編輯 收藏


          posts - 4, comments - 4, trackbacks - 0, articles - 0

          Copyright © 楓舞星萍

          主站蜘蛛池模板: 龙江县| 祥云县| 宁远县| SHOW| 安庆市| 涿鹿县| 淮滨县| 平果县| 城固县| 会宁县| 宜良县| 岐山县| 水富县| 高要市| 玛纳斯县| 四平市| 西藏| 封开县| 双牌县| 含山县| 灵武市| 株洲市| 长泰县| 新民市| 麦盖提县| 江安县| 涞源县| 松滋市| 娱乐| 大庆市| 东源县| 迭部县| 运城市| 黄梅县| 营山县| 屯昌县| 遂溪县| 贵溪市| 莱州市| 长海县| 南投市|