??xml version="1.0" encoding="utf-8" standalone="yes"?>
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的环?br />
NND 火大?nbsp; q抛出的什么异?.........怎么搞谁 谁知?............
]]>
import java.applet.Applet; //包引入语句?br /> public class GetSquare extends Applet;//声明c语?/p>
1. 表达式语?/p>
int k, i=3, j=4;?br /> k=i+j;?br /> System.out.println(″k=″+k);
2. 复合语句
class Block {?br /> public static void main(String argsQ]) {?br /> int k, i=3, j=4;?br /> k=i+j;?br /> System.out.println(″k=″+k);?br /> {?br /> float f;?br /> f=j+4.5F;?br /> i++;?br /> System.out.println(″f=″+f);?br /> }?br /> System.out.println(″i=″+i);?br /> }?br /> }
选择语句
利用选择语句l构可以Ҏ(gu)条g控制E序程Q改变程序执行的序?
if语句
if语句的语法格式ؓ(f)Q?
if (条g表达??br /> s1语句;
q是最单的单分支结构。条件表辑ּ的gؓ(f)trueQ就执行s1语句Q否则就忽略s1语句。s1语句可以是复合语句?
if…else语句
if语句通常与else语句配套使用QŞ成二分支l构。它的语法格式ؓ(f)Q?
if (条g表达??br /> s1语句;?br /> else?br /> s2语句;
当条件表辑ּ的gؓ(f)trueQ就执行s1语句Q忽略else和s2语句Q条件表辑ּ的gؓ(f)falseQ程序忽略s1语句Q执行else后面的s2语句。s1和s2都可以是复合语句?
if…else复合l构
对于复杂的情况,可以嵌套使用if…else语句。它的语法格式ؓ(f)Q?
if (条g表达?)?br /> s1语句;?br /> else if (条g表达?)?br /> s2语句;?br /> else?br /> s3语句;
在这里依ơ计条件表辑ּQ如果某个条件表辑ּ的gؓ(f)trueQ就执行它后面的语句Q其余部分被忽略Q所有表辑ּ的值都为falseQ就执行最后一个else后的s3语句。s1、s2和s3都可以是复合语句?
switch开兌?
虽然嵌套的条件语句可实现多个分支处理Q但嵌套太多时容易出错和混ؕQ这时可以用开兌句switch处理。实际上开兌句switch也是一Uif…elsel构Q不q它使你在编E时很容易写出判断条Ӟ特别是有很多条g选项的时候?/p>
开兌句switch的语法格式:(x)
switch (表达? {?br />
case 帔R1:?br />
语句1;?br />
break;
case 帔R2:?br />
语句2;?br />
break;?br />
......?br />
default:?br />
语句n;?br />
}
其中switch、case、default是关键字Qdefault子句可以省略。开兌句先计算表达式,然后表辑ּg各个帔R比较Q如果表辑ּg某个帔R相等Q就执行该常量后面的语句Q如果都不相{,执行default下面的语句。如果无default子句Q就什么都不执行,直接跛_开兌句?
使用开兌句时Q注意以下几点:(x)
• case后面的常量必L整数或字W型Q而且不能有相同的|
• 通常在每一个case中都应用break语句提供一个出口,使流E蟩出开兌句。否则,在第一个满x(chng)件case后面的所有语句都?x)被执行Q这U情况叫做落I?
循环语句
循环可ɽE序Ҏ(gu)一定的条g重复执行某一部分E序代码Q直到满终止@环条件ؓ(f)止?br /> Java中提供的循环语句有:(x) 定ơ数循环QforQ、条件@环(whileQ、先执行后判定@环(doQ?
for循环语句
如果希望E序的一部分内容按固定的ơ数重复执行Q通常可以使用for循环。for循环采用一个计数器控制循环ơ数Q每循环一ơ计数器p敎ͼ直到完成l定的@环次Cؓ(f)止?/p>
for循环的语法格式ؓ(f)Q?
for (表达?; 表达?; 表达?)?br /> 循环?/p>
其中表达?可以l出计数器的初|是一个赋D句;表达?指出循环l束条gQ是一个逻辑表达式;表达?指出计数器每ơ的增量Q是一个赋D句?
注意Q?计数器可在for语句之前定义Q也可在循环括号中定义。计数器增量?时常写成增量q算的Ş式,以加快运速度。根据需要,增量可以大于或小?。增量计也可以攑֜循环体中q行Q即把表辑ּ3Ud循环体内的适当位置Q原位置为空?br /> 使用循环语句时常怼(x)遇到d@环的情况Q也是无限制地循环下去。所以在使用for循环Ӟ要注意初倹{终值和增量的搭配。终值大于初值时Q增量应为正|l值小于初值时Q增量应倹{编E时必须密切x(chng)计数器的改变Q这是实现正常@环避免陷入死循环的关键?
while循环语句
while循环不像for循环那么复杂Qwhile循环只需要一个条件判断语句,便可以进行@环操作?
while循环的语法格式ؓ(f)Q?
while (条g表达? ?br /> 循环?/p>
其中while是关键字。每ơ@环之前都要计条件表辑ּQ其gؓ(f)trueӞ执行一ơ@环体中的语句Q然后再计算条g表达式,军_是否再次执行循环体中的语句;如果条g表达式的gؓ(f)falseӞp出@环体Q执行@环体下面的语句?/p>
注意Q?while循环中的条g表达式是逻辑表达式,所以@环体中一定要有改变条件表辑ּ值的语句Q条g表达式的值有Z(x)变(sh)ؓ(f)falseQ否则会(x)陷入d@环?
do…while循环语句
do…while循环与while循环相反Q是先执行@环体中的语句Q再计算while后面的条件表辑ּQ若条g表达式gؓ(f)false则蟩出@环;否则l箋(hu)下一轮@环?/p>
有些情况下,不管条g表达式的值是为trueq是falseQ都希望把指定的语句臛_执行一ơ,那么应使用do…while循环?
do…while循环的语法格式ؓ(f)Q?
do {?br /> 循环体?br /> } while (条g表达?;
其中do、while是关键字。程序首先执行do下面的@环体Q然后计while后面条g表达式的|如果其gؓ(f)trueQ则重复执行循环体;否则Q就l束循环?/p>
与while循环相同Qdo循环在@环体中也一定要有改变条件表辑ּgؓ(f)false的语句,否则?x)陷入死循环。do…while循环控制q不是很常用Q但有时却非帔R要,使用时特别注意不要忘C(jin)while语句l尾处的分号“Q?#8221;?
循环语句嵌套
ex:做个例子 是篏计求和的?br />
?br />
public class Sum1 {?br />
public static void main(String argsQ]) {?br />
int n=10, sum=0;?br />
while (n>0) {?br />
sum=0;?br />
for (int i=1; i<=n; i++)?br />
sum+=i;?br />
System.out.println(″?#8243;+n+″个数的d为:(x) ″+sum);?br />
n--;?br />
}?br />
}?br />
}
循环语句结
一个@环一般应包括4部分内容?br />
Q?Q?初始化部分:(x) 用来讄循环的一些初始条Ӟ计数器清零等?br />
Q?Q?循环体部分:(x) q是反复被执行的一D代码,可以是单语句Q也可以是复合语句?br />
Q?Q?q代部分Q?q是在当前@环结束,下一ơ@环开始时执行的语句,常用来计数器加1或减1?br />
Q?Q?l止部分Q?通常是一个布?yu)(dng)表辑ּQ每一ơ@环要对该表达式求|以验证是否满_@环终止条件?
跌{语句
跌{语句可以无条件改变程序的执行序。Java支持3U蟩转语句:(x) break、continue和return?
break语句
break语句提供?jin)一U方便的跛_循环的方法。用break语句可以立即l止循环Q蟩出@环体Q即使@环没有结束也如此?
break语句的用示例,输出l果如图3.10所C?/p>
class B {?br /> public static void main(String argsQ]) {?br /> boolean test=true;?br /> int i=0;?br /> while (test) {?br /> i=i+2;?br /> System.out.println(″i=″+i);?br /> if (i>=10)?br /> break;?br /> }?br /> System.out.println(″ i?#8243;+i+″时@环结?#8243;);?br /> }?br /> }
带标L(fng)break语句
标号是标记程序位|的标识W。break语句只能跌{到@环语句下面的W一条语句上Q而带标号的break语句可直接蟩转到标号处。正常的break只退Z重@环,如果要退出多重@环,可以使用带标L(fng)break语句。它的语法格式ؓ(f)Q?
标识W??br /> …?br /> break 标识W?
做个例子说明
q行该工E,正常情况下可从键盘接?6个输入字W,但当输入b按回车时Qbreak lab1语句׃(x)l束二重循环?/p>
class B1 {?br /> public static void main(String argsQ]) throws java.io.IOException {?br /> char ch;?/p>
lab1: // 此处为标h识符?br /> for (int i=0; i<4; i++)?br /> for (int j=0; j<4; j++) {?br /> ch=(char)System.in.read();?br /> System.in.skip(2);?br /> if (ch==′b′)?br /> break lab1;//跛_标号标识W处?l)?br /> if (ch==′c′)?br /> System.out.println(″l箋(hu)″);
}?br /> System.out.println(″l束两重循环″);?br /> }?br /> }
continue语句
continue语句只能用在循环l构中,它蟩q@环体中尚未执行的语句Q重新开始下一轮@环,从@环体W一个语句开始执行?/p>
下面的可以输??中除6以外所有偶数的qx(chng)?/p>
class C2 {?br /> public static void main(String argsQ]) {?br /> for (int i=2;i<=9;i+=2) {?br /> if (i==6)?br /> continue; ?br /> System.out.println(i+″ 的^?= ″+i*i); }?br /> }?br /> }
带标L(fng)continue语句
Java也支持带标号的continue语句Q它通常用在嵌套循环的内循环中,可以用标h出想跛_哪一条语句(h)l重复执行程序。其语法格式为:(x)
标识W??br /> …?br /> continue 标识W?
带标L(fng)continue语句的?/p>
class C3{?br /> public static void main(String argsQ]) {?br /> lab1:?br /> for (int i=1; i<=3; i++)?br /> for (int j=1; j<=3; j++) {?br /> System.out.println(″i:″+i+″ j:″+j);?br /> if (i+j>3) {?br /> System.out.println(″Continue″);?br /> continue lab1;?br /> }?br /> System.out.println(″i=″+i+″ j=″+j);?br /> }?br /> }?br /> }
?00?00间的所有素数。用嵌套的for循环?/p>
public class Find {?br /> public static void main(String argsQ]) {?br /> System.out.println(″ ** 100?00间的所有素?**″);?br /> int n=0;?/p>
outer:?br /> for (int i=101; i<200; i+=2) {?br /> int k=15;?br /> for (int j=2; j<=k; j++)?br /> if (i%j==0)?br /> continue outer;?br /> System.out.print(″ ″+i);?br /> n++;?br /> if (n<10)?br /> continue;
System.out.println();?br /> n=0;?br /> }?br /> System.out.println();?br /> }?br /> }
return语句
return语句用于Ҏ(gu)的返回上Q当E序执行到return语句Ӟl止当前Ҏ(gu)的执行,q回到调用这个方法的语句。return语句通常位于一个方法体的最后一行,有带参数和不带参CUŞ式,带参数Ş式的return语句退?gu)?gu)q返回一个倹{?/p>
当方法用void声明Ӟ说明不需要返回|卌回类型ؓ(f)I)(j)Q应使用不带参数return语句。不带参数的return语句也可以省略,当程序执行到q个Ҏ(gu)的最后一条语句时Q遇到方法的l束标志}p动返回到调用q个Ҏ(gu)的程序中?/p>
带参数的return语句格式为:(x)
return 表达?
当程序执行到q个语句Ӟ首先计算“表达?#8221;的|然后表辑ּ的D回到调用该方法的语句。返回值的数据cd必须与方法声明中的返回值类型一_(d)可以使用强制cd转换来ɾcd一致?
带参数的return语句的?/p>
class CircleArea {?br /> final static double PI=3.14159;?br /> public static void main(String argsQ]) {?br /> double r1=8.0, r2=5.0;?br /> System.out.println(″半径?#8243;+r1+″的圆面积Q?#8243;+area(r1));?br /> System.out.println(″半径?#8243;+r2+″的圆面积Q?#8243;+area(r2));?br /> }?br /> static double area(double r) {?br /> return (PI*r*r);?br /> }?br /> }
Java是一U?br />
单、面向对象、分布式(|络适用)、解释型、健壮、安全、结构中立、可UL、高性能、多U程、动态的
计算机程序语a?/p>
Java语言的基本元?
Java包含标识W、关键字、运符和分隔符{元素。?br />
标识W?
变量以及(qing)cdҎ(gu)都需要一定的名称。所有的标识W都必是以一个字母、下划线或美元符?#8220;$”开头的一串字W,后面的字W可以包含字母、数字、下划线和美元符受?/p>
标识W是q序员自己定义的名Uͼ可按规则随意选取。不q,Java中有一个标识符命名U定Q?帔R用大写字母,变量用小写字母开始,cM大写字母开始。如果一个变量名由多个单词构成,W一个单词后面的单词以大写字母开始, Java区分字母大小写,标识W中的大写字母被认为是不同的两个字W?/p>
关键?
如附件图1
注:(x) ?L(fng)关键字现在已不用?/p>
分隔W?
1. 注释W?br /> (1) // 注释一?br /> (2) /*… */一行或多行注释?#8220;/*”开始,最后以“*/”l束Q中间可写多行?
2. I白W?br /> I格、回车、换行和制表W(Tab键)(j){符?
3. 普通分隔符
. 点,分隔包、类或分隔引用变量中的变量和Ҏ(gu)Q?br />
Q?分号Q语句结束的标志Q?br />
Q?逗号Q分隔方法的参数和变量说明等Q?br />
Q?冒号Q说明语句标P
{} 大括P用来定义复合语句、方法体、类体及(qing)数组的初始化Q?/p>
Q] Ҏ(gu)P用来定义数组cd?qing)引用数字的元素|
Q)(j) 圆括P定义q算优先U?
PSc米:I白W和分隔W都是区分语a各种基本成䆾?
public class mimi {?// public关键?nbsp; mimi为类名
public static void main(String argsQ]) {?br />
// public声明公共关键?
// static声明?rn)态方法关键字
//void I回?br />
// main 入口函数
int i, c;
//赋?nbsp; I ,c 为intcd?br />
...?br />
}Ҏ(gu)的最后的大括?br />
}入口函数最后的大括?/p>
需注意…括号不要弄?nbsp; 序?nbsp; 由外向内?/p>
数据cd
Java的数据类型可分ؓ(f)Q?基本cdQ包括整型、Q点型、布?yu)(dng)型和字W型Q数l类型,包括一l数l和多维数组Q复合类型,包括cd接口?
基本数据cd
Java定义?U基本数据类型?/p>
如图2
PSc米: 一般情况,没有数点的数字是int型数Q带有小数点的数是double型的敎ͼ其他数值数据要在数字后面加一个大写或写字母表示数据cd?
变量的声?br /> Java存储数据Q要它保存到一个变量中。变量在使用前必L定义Q即有确定的cd和名U。声明变量的格式为:(x)
cd 变量名E,变量名]=初?…;
byte b1, b2;?br />
b1=99,b2=100;
//先声明后赋?/p>
int v1=0, v2=10, v3=18;
//声明和赋值同时进?/p>
变量cd的{?br />
变量cd强制转换的格式:(x)
Q数据类型)(j)数据表达?br />
PS:
int a;char b;b=′A′;?br />
a=(int) b;
数值型数据QJava可将低精度的数字赋值给高精度的数字型变量,反之则需要进行强制类型{换,所以intQshortQbyte赋值给long型时不需要显式的cd转换Q反之,long型数赋值给byteQshortQint型时需要强制{?/p>
q算W与表达?
Java的运符代表着特定的运指令,E序q行时将对运符q接的操作数q行相应的运。运符和操作数的组合构成表辑ּQ表辑ּ代表着一个确定的数倹{表辑ּ在用上L先计后使用Q因此,不管一个表辑ּ有多么复杂,其最l结果都是一个有定cd和大的数倹{?br />
按照q算W功能来分,q算W有7U:(x) 赋D符、算术运符、关p运符、条件运符、逻辑q算W、位q算W和其他q算W?br />
按照q接操作数的多少来分Q有一元运符、二元运符和三元运符。另外,术q算W和赋D符可以l合在一起Ş成算术赋D符?
2.3.1 赋D符
? 赋D符
pD符构成的表辑ּUCؓ(f)赋D辑ּ。赋D符的右Ҏ(gu)一个表辑ּQ这个表辑ּq可以包含一个表辑ּ。例如:(x) a=b=c=0Q相当于3个表辑ּc=0Qb=cQa=b?
2.3.2 术q算W?
见图4
术q算W按操作数的多少可分Z元运符和二元运符。一元运符Q???+?-Q一ơ对一个操作数q行q算Q二元运符一ơ对两个操作数进行运?/p>
关系q算W?
见图5
关系q算W用于两个操作数之间关系的比较。关p表辑ּ的运结果ؓ(f)布尔|不是true是falseQ操作数可以是常量、变量和表达式。关p表辑ּ常常用作分支l构或@环结构的控制条g?br />
条gq算W?
是三元运符Q条件表辑ּ的格式:(x)
条g表达?? l果1: l果2;
先计作为条件的逻辑表达式或关系表达式,条g表达式返回gؓ(f)true时整个表辑ּ的gؓ(f)l果1Q返回值是false时整个表辑ּ的gؓ(f)l果2?/p>
逻辑q算W?
见图6
解决一些简单条件的判定问题Q对较ؓ(f)复杂的条件还得用逻辑q算判定。逻辑表达式最l运结果ؓ(f)boolean的true或false?#8220;&&”q接的两个表辑ּ中,只要有一个不trueQ则整个表达式就为false。运时只要判定左边表达式ؓ(f)falseQ就可立卛_出结论,不再计算双表达式。所以,最有可能取false值的表达式尽量放在左边,q样可提高表辑ּ的运速度?#8220;&”在表辑ּ判定上和“&&”相同Q惟一不同的是它L计算两边表达式的倹{?br />
“ || ”q接的两个表辑ּ中,只要有一个ؓ(f)trueQ则整个表达式就为true。运时只要判定左边表达式ؓ(f)trueQ就可立卛_出结论,不再计算双表达式。所以,最有可能取true值的表达式尽量放在左边,以提高表辑ּ的运速度?br />
“ | ”在表辑ּ判定上和“||”相同Q不同之处是它L计算两边表达式的倹{?br />
“ ^ ” 逻辑异或q接的两个表辑ּ同ؓ(f)true或同为falseӞ整个表达式结果ؓ(f)falseQ其他情况下取true?
其他q算W?
见图7…其实new我一直理解成关键?- -
q算优先U?
有一堆运符…..加减乘除之类…我从来不?#8230;.一律加()….最高(sh)先…. ?/p>
数组
有序数据的集合,其中的每个元素具有相同的数组名,Ҏ(gu)数组名和下标来惟一地确定数l中的元素。数l有一l数l和多维数组Q用时要先声明后创建?br />
q么说不太好?br />
Ex:
i=[1,2,3,4,5];
数组i里的1,下标?,依此cL.
一l数l的声明
一l数l是指一个线性数据序列,声明格式Q?
数据cd 数组名EQ? ?数据cdQ] 数组?
Ex:
int arr1Q];?br />
char Q] arr2;
数组的定义中q不为数l元素分配内存,因此“Q]”中不用指出数l中元素的个数即数组长度Q而且对于如上定义的一个数l暂时还?sh)能讉K它的M元素?
一l数l的创徏与赋?
定义数组后,q必Mؓ(f)数组分配内存、初始化?br />
格式Q?
数组? new 数据cdQsizeQ?br />
其中Qsize指明数组的长?如:(x)
int intAwpQ]=new intQ?Q??br />
char cAwpQ]=new charQ?Q?
数组元素赋值的Ҏ(gu)与变量相?如:(x)
intddQ?Q?10;?br />
intddQ?Q?20;?br />
intddQ?Q?30;
直接赋初值ƈ定义数组的大?br />
q有是直接赋初值ƈ定义数组的大。初值用大括hP用逗号做分隔符Q初值的个数表示数组的大?
int aQ]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10}Q?br />
char cQ]={′a′,′b′, ′c′, ′?#8242;, ′?#8242;}
多维数组
多维数组是数组的数l?说的通俗?。比如二l数l就是一个特D的一l数l,它的每个元素是一个一l数l?br />
二维数组的声明与一l数l基本相同,只是后面再加上一对中括号“Q]”。创Zl数l时Q可指定各维的长度或臛_指定W一l的长度Q也可采用直接赋值的Ҏ(gu)定二维数组的长度。此Ӟ按照l定的值序依次填满数组每一行中的元素。更高维的情况差不多。Ex:
int awp1Q]Q]=new intQ?QE4Q? ?br />
int awp2Q]Q]=new intQ?QE Q??br />
int awp3Q]Q]={{0,1,2},{3,4,5},{6,7,8}};
二维数组有一个好处是W二l的长度可以不相{?/p>
1. java和c++ ?c的不?
C面向q程Qjava和c++面向对象Q这里要注意q里指的面向对象只是说一定程度的相对定义?/p>
2. java 语言的类?/p>
j2e..标准?/p>
j2me.. _?/p>
j2ee...企业?/p>
3. java的运概?/p>
如同 cpp →win
java→ c(classQ?#8594;解释器(虚拟机)(j)→各个pȝ
4. jar 是class文g的集?
5. cd含函?/p>
6.初步接触java
class b007{
public static void mian(String args[ ]) {
System.out.print("How are you ?");
}
}
class为类标识W?b007为类名(注意cd的命名是有规则的Q?br />
b007后的{ 到结 } 是代?nbsp; c?b007 的域
mian 是入口函?nbsp; 是一个方?/p>
我们来看?文字表述
b007cd含mianҎ(gu),q且main是公?public)的,是类的静(rn)态成员(staticQ,且无q回|voidQ?/p>
String 是字W串cd args是命令行参数Q可用于接收外界传给java的参敎ͼ个数未定?br /> 分隔W[ ] Q表CZl数l?/p>
大体来说java的构成包括标识符、关键字、运符、分隔符{?/p>