Java程序设计环境_第1页
Java程序设计环境_第2页
Java程序设计环境_第3页
Java程序设计环境_第4页
Java程序设计环境_第5页
已阅读5页,还剩64页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java SEJava程序设计环境 用JDK管理Java应用 管理Java应用是指创建Java应用的目录结构、编译、运行及发布Java应用的操作。Java应用的常用开发目录结构如下:目录描述 src子目录 存放Java源代码 classes子目录 存放编译后生成的Java类文件 lib子目录 存放第三方Java软件的JAR包 doc子目录 存放帮助文档 doc/api子目录 存放JavaDoc文档 deploy子目录 存放打包后的应用程序-JAR包 JDK简介 JDK是Java Development Kit(Java开发工具包)的缩写。它为Java应用程序提供了基本的开发和运行环境。JDK主

2、要包含以下内容: 虚拟机:负责解析和执行Java程序,它是Java实现跨平台的基础; JDK类库:提供了最基础的Java类库和各种实用类; 开发工具:这些开发工具都是可执行程序,主要包括javac.exe(负责编译java程序)、java.exe(负责执行java程序)、javadoc(负责生成JavaDoc文档)、jar.exe(应用程序打包工具); JDK安装到本地后的根目录应为JAVA_HOME环境变量所指向的目录,这里的目录名可以任意指定。 JAVA_HOME环境变量为第三方依赖于Java的应用程序在操作系统内查找Java安装位置提供依据。 编译Java源文件 javac命令用于编译源

3、文件,其语法格式如下:javac options sourcefiles javac命令的主要选项如下: -nowarn:不输出警告信息。非默认选项,警告信息是编译器对程序中能够通过编译,但存在潜在错误部分提出的信息; -verbose:输出编译器工作中的详细信息,非默认选项;-classpath:覆盖classpath环境变量,重新设定用户的classpath。如果既没有设定classpath环境变量,也没有指定-classpath选项,那么用户的classpath为当前路径; -sourcepath:指定Java源文件的路径; -d:指定编译后生成的类文件存放的目录。要注意的是,javac

4、命令并不会自动创建-d选项指定的目录,因此必须确保该目录已经存在。如果没有设定此选项,编译生成的类文件存放在Java源文件所在的目录; -help:显示各选项的用法;示例:编译本课test目录下的First.java文件命令如下:javac sourcepath D:workCoursewareJ2SEch2_Java程序设计环境examplestestsrc classpath D:workCoursewareJ2SEch2_Java程序设计环境examplestestclasses d D:workCoursewareJ2SEch2_Java程序设计环境examplestestclasse

5、s D:workCoursewareJ2SEch2_Java程序设计环境examplestestsrcFirst.java尝试去掉其中某些选项,看看会有什么结果。如:-sourcepath 运行Java程序 java命令用于运行Java程序,它会启动Java虚拟机,虚拟机加载相关的类,然后调用主程序类的main()方法,其语法格式如下:java options java命令的主要选项如下: -verbose:输出编译器工作中的详细信息,非默认选项; -classpath:覆盖classpath环境变量,重新设定用户的classpath。如果既没有设定classpath环境变量,也没有指定-cl

6、asspath选项,那么用户的classpath为当前路径; -jar:指定运行某个JAR文件中的特定Java类; -help:显示各选项的用法; 设置classpath classpath代表Java类的根路径,java和javac命令会从classpath下去寻找需的Java类。classpath的默认值为当前路径,有以下三种方式可以设置classpath: 在操作系统窗口中设置系统环境变量或用户环境变量; 在DOS终端中为当前窗口设置classpath环境变量; 在javac或java命令中使用-classpath选项;注意:在终端中设置classpath环境变量会覆盖系统环境变量;ja

7、vac和java命令中的-classpath选项会覆盖所有环境变量。如果希望将当前目录、系统环境变量和终端中的当前环境变量都加入classpath中,可使用如下格式:set classpath=%classpath%; c:mylibjava classpath . ; %classpath% ; c:mylibtools.jar targetfile示例:运行本课test目录中的 First.class 文件命令如下:java classpath=D:workLectureJ2SEch2_Java程序设计环境examplestestclasses First尝试去掉-classpath选项看

8、看有什么结果?在终端中设置当前的环境变量,然后去掉-classpath选项呢?使用java命令时,有以下几个注意事项: 必须指定主程序类的全限定类名。若不指定,虚拟机会在classpath指定的根目录下寻找主类; 在classpath中,类文件的放置位置必须和包名匹配,不能随意改变它们的存放位置; 在java命令中运行的Java类必须包含有作为程序入口的main()方法; 给应用程序打包 JDK的jar命令可以将应用程序打包为独立与任何平台的JAR文件,该文件为压缩格式,这样便于应用程序的发布,并可提高在网络上传输应用程序的速度。示例:将本课示例classes下的所有文件打包。 进入class

9、es目录,执行如下命令:jar -cvf D:workLectureJ2SEch2_Java程序设计环境examplestestdeployfirst.jar *.*java和javac命令可以从JAR文件中读取Java类:java -classpath D:workLectureJ2SEch2_Java程序设计环境examplestestdeployfirst.jar Firstjar命令也具有展开JAR文件的功能:jar -xvf D:workLectureJ2SEch2_Java程序设计环境examplestestdeployfirst.jar 展开后内容包含了MANIFEST.MF文件

10、,它描述了JAR文件的信息。在使用java命令的-jar选项执行JAR文件中的指定类时,必须有一个包含了主程序类名的MANIFEST.MF文件。示例:进入classes目录,创建Manifest.txt文件,文件内容如下:Main-Class:First(这里要写全限定类名)运行如下命令:jar cvfm D:workLectureJ2SEch2_Java程序设计环境examplestestdeployfirst.jar Manifest.txt *.*java jar D:workLectureJ2SEch2_Java程序设计环境examplestestdeployfirst.jar 第一个

11、Java程序 一个简单的程序,FirstSample.java从上面的程序中,我们需要了解如下内容: 访问修饰符; class关键字; 类名、命名规范及保留字; 类名和源码文件名的关系; 大小写敏感; 编译后的文件; 使用花括号划分程序的各个部分,及花括号的写法; main()方法的声明格式; 程序中的打印语句; Java中的注释 我们可以根据需要在源程序中添加任意多的注释。注释的增加不会对可执行代码的大小产生影响。Java中支持三种格式的注释: 单行注释 “/”,注释内容从 “/”开始到行尾; 多行注释 “/* content */”,它可注释多行文本; 用于生成JavaDoc的注释 “/*

12、 content */”,基本用法与多行注释相同,但其中可包含JavaDoc标记;注意:在使用多行注释和生成JavaDoc文档的注释时,注释不能嵌套。 数据类型 Java属于强类型语言,在使用变量前必须为该变量声明一种类型。Java中的数据类型分为两大类: 基本数据类型(8种)整数类型:byte、short、int、long浮点类型:float、double字符类型:char布尔类型:boolean 引用类型(3种)类类型、接口类型、数组类型 整型整型数用于表示没有小数部分的数值,它允许是负数。Java提供的4种整型数具体内容如下:类型存储要求取值范围 byte1字节 -128 127 sho

13、rt2字节 -32 768 32 767 int4字节 -2 147 483 648 2 147 483 647 (超过20亿) long8字节 -9 223 372 036 854 775 808 9 223 372 036 854 775 808表示长整型数时,需要在数值后面加 “L”或 “l”(如100L)。Java允许用 “0 x”开头表示十六进制数(如0 xCA89),用 “0”开头表示八进制数(如010)。注意:Java中,整型的范围与运行Java代码的机器无关。 浮点型浮点型用于表示有小数部分的数值,它允许是负数。Java提供的2种整型数具体内容如下:类型存储要求取值范围 flo

14、at4字节 大约3.402 823 47E+38F (有效数字6 7位) double8字节 大约1.797 693 134 862 315 70E+308 (有效数字15位)double类型数值的精度是float类型的两倍,通常使用这种类型。Float型数据要指定一个后缀 “F”,没有后缀则为double型。double型也可跟后缀 “D”。float和double型数据都三个特殊的值:正无穷大、负无穷大和NaN(不是一个数字)。这三个特殊数值都对应了三个常量,这三个常量在Double和Float对象中都有定义,它们是:POSITIVE_INFINITY、NEGATIVE_INFINITY和

15、NaN。注意:在判断一个float或double型数据是否等于NaN或是否是无穷大时,不能使用如下的方式:if (x = Double.NaN)或/ is never trueif (x = Double.POSITIVE_INFINITY)/ is never true而应该使用如下的方式:if (Double.isNaN(x)或if (Double.isInfinite(x)注意:浮点型数据不适用于禁止出现舍入误差的计算,如金融计算。尝试执行这条命令,System.out.println(2.0 1.1),看看输出的值是否是所期望的值。如果需要在计算中不出现舍入误差,应该使用后面章节介绍的

16、BigDecimal类。 char类型char类型用于表示单个字符,通常用来表示字符常量。所有的字符都是以二进制编码的形式保存于计算机中,常用的字符编码包括:ASCII、ISO-8859-1、GB2312、GBK、Unicode、UTF等字符编码。对于以上的编码,不同编码使用不同的规范和代码表示字符(如存储空间和编码值),这严重影响了应用程序的可移植性。而Unicode和UTF编码解决了这个问题。Unicode以十六进制(从u0000uFFFF)表示所有字符编码,其中Unicode包括了UCS-2和UCS-4,UTF编码包括了UTF-8、UTF-7及UTF-16等。Java在设计时决定使用UC

17、S-2字符编码,但由于字符集不断丰富,从JDK5.0开始,Java的char类型使用了对UCS-2进行扩充及重新编码的UTF-16来描述一个字符编码。注意:字符A和字符串“A”的区别。对于有些特殊字符,如非打印字符,或需要在字符中表示的引号或反斜杠等,可以用转移序列符表示。如下表所示的部分特殊字符:转义序列名称Unicode值b退格u0008t制表u0009n换行u000ar回车u000d”双引号u0022单引号u0027反斜杠u005c注意:在Java中,强烈建议不要使用char类型,最好将需要处理的字符串用抽象数据类型表示(String)。 boolean类型boolean类型(布尔)有两

18、个值:false和true,用来判定逻辑条件。整型值和布尔类型值之间不能进行相互转换。下面的表达式在C和C+中能够编译通过,在Java中则不行:if (x = 0)上面的表达式在C和C+中总是false,而在Java中x = 0不能转换为布尔类型的值。 引用类型引用类型主要分为类引用类型、接口引用类型和数组引用类型。关于引用类型数据在讲到类、接口和数组时再做详细说明。 变量 在Java中,每一个变量都属于一种类型。在声明变量时,变量所属的类型位于变量名之前。如下所示:doublesalary;intvacationDays;long earthPopulation;boolean done;变

19、量声明是一条完整的语句,必须以分号结束。变量名必须是一个以字母开头的由字母或数字构成的序列。变量名的长度没有限制,但是大小写敏感的。不能使用Java的保留字作为变量名。 变量的初始化声明一个变量后,要使用赋值语句对其进行显式的初始化才能使用,这是一个良好的习惯(实际上局部变量必须要初始化后才能使用,而实例域可以不需初始化,Java编译器会自动为其指定默认值)。下面的变量如果是局部变量则无法通过编译:int vacationDays;System.out.println(vacationDays);为变量赋值需要将变量名放在赋值号(=)左边,相应的取值表达式放在赋值号右边,如下所示:int va

20、cationDays;vacationDays = 12;在Java中可以将变量声明放在代码的任何地方,但尽可能靠近第一次使用的地方是一种良好的编程习惯。 常量 在Java中,利用关键字final声明常量。例如:final double SALARY = 1000.00;final表示这个变量只能被赋值一次,一旦赋值后就不能再更改。通常常量名都用大写。在Java中,通常希望某个常量可以在一个类的多个方法中使用,通常将这些常量定义为类常量(定义在方法之外)。如果一个常量被声明为public,那么其他类的方法也可以使用这个常量。如:public class Constants public sta

21、tic final double SALARY = 1000.00;public static void main(String args) 运算符 在Java中,使用算术运算符+、-、*、/表示加、减、乘、除运算。当参与/运算的两个操作数都是整数时,表示整数除法;否则表示浮点数除法。整数的求余操作用%实现。需要注意的是,整数被0除会产生一个异常,而浮点数被0除会得到无穷大或NaN结果。可以在赋值语句中采用一种简化的格式书写二元运算符,如:x += 4;等价于x = x + 4;通常将运算符放在赋值号的左侧,如*=或%=。 自增运算符与自减运算符Java借鉴了C和C+中加1、减1的自增和自减运

22、算符。n+将变量n的当前值加1;n- 将n的当前值减1。如:int n = 100;n+;/n的值为101因为这两个运算符改变了变量的值,所以其操作数不能是数值。如:4+;/非法语句自增与自减运算符有两种形式,“前缀”(+n)与“后缀”(n+)。它们的作用相同,但在表达式中,它们会造成不同的结果。如:int m = 7;int n = 7;int a = 2 * +m;/a 等于16,m等于8int b = 2 * n+;/b 等于14,n等于8建议不要在其他表达式内部使用+或-,它容易使代码不易理解。 关系运算符与boolean运算符Java包含各种关系运算符。其中=检测是否相等,如:3 =

23、 7返回false;!=检测是否不相等,如:3 != 7返回true;其他常用的关系运算符还有(大于)、=(大于等于)。Java使用“&”表示逻辑“与”, 使用“|”表示逻辑“或”,!表示逻辑“非”。“&”和“|”使用“短路”方式求值,与“&”和“|”不同。Java还支持三元运算符“?:”,使用方法如下:x ”和“”右移运算符,它称为逻辑右移,也称为无符号右移;而“”称为算术右移,也称为带符号右移。没有“ double (byte、char、short、int或long) op float - float (byte、char、short或int) op long - long (byte、c

24、har或short) op int - int (byte、char或short) op (byte、char或short) - int上面的规则中,“op”表示操作符。如:int n = 123456789;float f = n;/ f 等于1.23456789E8注意:表达式中出现的最大的数据类型决定了表达式的最终数据类型。 强制类型转换如果把高位类型赋给低位类型,就必须进行强制类型转换,否则会编译出错。强制类型转换可能导致数据溢出或精度的下降。如,下面的示例会造成精度下降:double x = 9.997;int nx = (int)x;/ x 等于9int mx = (int)Mat

25、h.round(x);/ x 等于10下面的示例会造成数据溢出:int a = 256;byte b = (byte)a;/ b 等于0注意:尽量避免使用强制类型转换 括号与运算符级别在表达式求值过程中,如果没有括号,Java按照运算符的优先级别进行运算。如果是相同运算级别的运算符,则按照从左到右的次序进行计算。下表给出了运算符的优先级别:运算符结合性 . ( ) (方法调用)从左向右 ! + - + (一元运算符) (一元运算符) () (类型转换) new从右向右 * / %从左向右 + -从左向右 从左向右 = instanceof从左向右 = !=从左向右 括号与运算符级别(续)运算符

26、结合性 &从左向右 从左向右 |从左向右 &从左向右 |从左向右 ? :从右向左 = += -= *= /= %= |= &= = = =从右向左 枚举类型有时,变量的取值只在一个有限的集合内。从JDK5.0开始,针对这种情况,可以自定义枚举类型。枚举类型包括有限个命名的值。如:enum Size SMALL, MEDIUM, LARGE, EXTRA_LARGE可以声明这样一种类型的变量:Size s = Size.MEDIUM;Size类型的变量只能存储这个类型声明中给定的某个枚举值,或者为null值。null表示这个变量没有设置任何值。 字符串 从观念上将,Java字符串就是Unicod

27、e字符序列。如字符串“Java”由Unicode字符J、a、v和a组成。Java没有内置的字符串类型,而是在标准的Java类库中提供了一个预定义的类String。每个用双引号括起来的字符串都是String类的一个实例:String e = “”;/一个空字符串String greeting = “Hello”; 子串String类的substring方法可以从一个较大的字符串中提取一个字串。String greeting = “Hello”;String s = greeting.substring(0, 3);/返回Hel上面的示例表示从greeting的第一个字符开始,连续提取3个字符。第

28、一个参数代表提取的起始字符索引,第一个字符的索引为0。第二个参数代表不愿提取的第一个字符的索引,即提取的结束字符索引(不包括该索引的字符)。 拼接Java允许用“+”连接两个或多个字符串。如:String firstName = “John”;String lastName = “Banks”;String name = firstName + “ “ + lastName;当将一个字符串与一个非字符串的值进行拼接时,后者被转换为字符串。(在Java中,任何一个对象都可以被转换为字符串) 如:int age = 20;String merge = “Age”+ age;/结果为“Age20”这

29、种用法经常出现在输出语句中。如:System.out.println(“Your age is ”+ age); 不可变字符串String类没有提供用于修改字符串的方法。Java为了实现字符串在公共存储区的共享,我们只能修改字符串变量使他指向不同的字符串。如果我们复制一个字符串,实际上复制的字符串和原始的字符串共享相同的字符。如下所示:greeting = greeting.substring(0, 3) + “p!”;上面的操作会生成一个新的字符串“Help!”,使greeting指向该字符串,而不会修改原来的“Hello”。 检测字符串是否相等可以使用equals方法检测两个字符串是否相等

30、。如:s.equals(t);如果字符串s和t相等,则返回true,否则返回false。这里s和t可以是变量,也可以是常量。如:“Hello”.equals(s);如果需要检测两个字符串是否相等,其忽略大小写,方法如下:s.equalsIgnoreCase(t);一定不能使用“=”运算符检测字符串是否相等。这个运算符只能检测两个字符串是否保存在同一位置。实际上,只有字符串常量是共享的,不同字符串变量所代表的相同字符串、使用“+”运算符或String类的方法所产生的结果并不一定是共享的。注意:请查阅API了解String类的更多方法。 构建字符串当利用字符串连接的方式由较短的字符串构成较长的字符

31、串时效率较低,因为每次连接都会产生一个新的String对象。使用StringBuilder类可以避免这个问题,使用方法如下:StringBuilder builder = new StringBuilder();每次需要添加字符串时,使用append方法:builder.append(ch);/追加一个字符builder.append(str);/追加一个字符串builder.append(“Hel”);最后调用toString方法,就可以得到一个字符串:String s = builder.toString();注意:查阅API了解StringBuilder类的更多用法 输入输出 后面课程的

32、示例需要能够接收输入,并以适当的格式输出。为了便于理解,我们这里介绍控制台的输入输出技术。 读取输入使用System.out.println方法可以向控制台(标准输出流)输出内容,而使用System.in可以从键盘(标准输入流)读入数据。如果想通过控制台进行输入,首先要构造一个Scanner对象,并与System.in关联:Scanner in = new Scanner(System.in);Scanner类中定义一些常用的方法,如下所示: nextLine();/扫描下一个行,遇到空白字符为止 nextInt();/扫描一个整数 nextDouble;/扫描一个浮点数示例程序:InputT

33、est.java注意:关于构造器和new操作符的用法在后面章节做详细介绍。在上面的程序中输入是可见的,所以Scanner不适合从控制台读取密码。Java SE 6引入的Console类实现这个目的。Console类不如Scanner方便,它每次只能读取一行,而没有读取一个单词或数值的方法。示例程序:InputTest2.java 格式化输出使用System.out.println()可以将数据输出到控制台。这条命令将要输出的数据以默认的形式输出,如果我们希望能够控制输出的格式,可以使用System.out.printf()来实现。System.out.printf()沿用C语言库函数中的pri

34、ntf()方法。如:double x = 1000.0 / 3.0;System.out.printf(“%8.2f”, x);/输出3333.33在printf()中可以使用多个参数,每一个以%开始的格式控制符都用相应的表达式参数替换。注意:printf()中的格式控制符用法请参考API。提示:可以用String.format()创建一个格式化的字符串,但不输出。String message = String.format(“My salary is %d”, x ); 文件输入与输出如果要对文件进行读取,就需要一个File对象来构造一个Scanner对象。如:Scanner in = ne

35、w Scanner(new File(“myfile.txt”);如果文件名中包含反斜杠,就要在每个反斜杠之前加转移符号,即再加一个反斜杠。如: Scanner in = new Scanner(new File(“D:myfile.txt”);要想写入文件,就需要构造一个PrintWriter对象,在构造器中提供文件的名字及路径即可。然后就可以像使用System.out一样使用print、println以及printf方法。示例程序:OutputFile.java注意:如果用不存在的文件创建Scanner,或用不能被创建的文件构造 PrintWriter就会发生异常。 控制流程 与任何程序设

36、计语言一样,Java使用条件语句和循环结构来控制程序流程。 块作用域块(即复合语句)是指一对花括号括起来的如干条简单Java语句。块确定了变量的作用域。一个块可以嵌套在另一个块之中。在同一个块中或嵌套的块中,不能声明两个同名的变量。如:public static void main() int n;int n; 条件语句(if-else)所有的条件语句都利用条件表达式的真或假来决定执行路径。在Java中,条件语句的格式为:if (boolean-condition) statements;或if (boolean-condition) statements; else statements;上

37、面的示例中,else部分是可选的,它与最邻近的if构成一组。以下的格式也是经常出现的:if.else if. 循环while、dowhile和for用来控制循环,有时也将它们称为迭代语句。在循环体内的语句会重复执行,直到起控制作用的布尔表达式得到“假”的结果为止。 while循环while循环的格式如下:while (boolean-condition) statements;while循环首先检测循环条件,因此,循环体内的语句有可能不被执行。示例程序:Retirement.java如果希望循环至少执行一次,则应该将检测条件放在最后,这时可以使用dowhile循环。 dowhile循环dowh

38、ile循环的格式如下:do statements; while (boolean-condition)示例程序:Retirement2.java for循环for循环是最经常使用的迭代形式。在每一次迭代之前要进行初始化;利用每次迭代之后进行条件检测来控制是否继续迭代;在每次迭代后还要更新计数器或类似的变量,通常这个计数器或变量决定了迭代的次数。For循环的格式如下:for (initialization; boolean-condition; step) statements;第一部分通常用于初始化计数器;第二部分给出每次迭代前要检测的条件;第三部分给出步进的方式,即如何更新计数器。以上三个部

39、分都可以为空。示例程序: ListCharacters.java 逗号操作符Java里唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化部分和步进控制部分,可以使用一系列由逗号分隔的语句,这些语句均会被独立执行。示例程序: CommaOperator.java 多重选择:switch语句在处理多个选项时,使用if-else语句显得有些笨拙。而switch根据整数表达式的值,可以从一系列满足指定条件的代码中选择一段去执行。其格式如下:switch (integral-selector) case integral-value1: statements; break;case

40、 integral-value2: statements; break;case integral-value3: statements; break;default: statements;switch语句中,Integral-selector是一个能够产生整数值的表达式,switch将这个表达式的结果与每一个case语句后的integral-value比较,若相符,就执行对应的语句;若没有相符的,如果存在default语句,就执行其后的代码,否则终止switch语句执行。switch语句中case标签必须是整数值,不能为字符或字符串;每个case后的break语句是可选的,这个break可

41、使流程跳转至switch的结尾。如果省略break,则会执行后面的case语句,直到遇到一个break为止。示例程序:VowelsAndConsonants.java注意:default语句应位于所有case语句的后面。 中断控制流程任何迭代语句的主体部分都可以用break和continue语句控制循环的流程。其中break用于强行退出循环,不执行主体中剩下的语句;而continue语句则停止当前迭代,退回到起始处,开始下一次迭代。除此之外,break还用于switch语句中从某一个case语句跳转到switch语句结尾。示例程序:BreakAndContinue.java注意: break和

42、continue只中断或退出当前循环,不能中断嵌套循环的外层循环。 带标签的break和continue语句臭名昭著的goto语句会引起程序路程的混乱,不易阅读和维护。虽然goto作为Java的保留字,但目前Java中并没有使用它。但某些情况下合理的使用goto还是有益处的。goto语句最常用的一个用途是从循环体内(尤其是多重循环)跳出,Java中带标签的break和continue完成了类似的功能。在Java中,标签起作用的唯一地方是在迭代语句之前,在迭代语句和标签之间放入任何语句都不好。在迭代之前设置标签的理由是:我们希望在其中嵌套另一个迭代。示例程序:LabeledFor.javaLab

43、eledWhile.java关于使用带标签的break和continue语句的规则: 一般的continue会退回到最内层循环的顶部,并继续执行; 带标签的continue会到达标签的位置,并重新进入紧接标签后的循环开始执行; 一般的break会中断并跳出当前的循环; 带标签的break会中断并跳出标签所指的循环;注意:在Java里需要使用标签的唯一理由就是因为有循环嵌套存在,而想从多层循环嵌套中break或continue。 大数值 如果Java基本的整数和浮点数精度都不能满足应用程序的需求,那么可以使用java.math包中的两个类:BigInteger和BigDecimal。这两个类可以

44、处理包含任意长度数字序列的数值。BigInteger处理任意长度整数运算,BigDecimal处理任意精度浮点数运算。使用静态的valueOf方法可以将普通的数值转换为大数值:BigInteger a = BigInteger.valueOf(100);不能使用算术运算符处理大数值,而需要使用大数值类中的相应方法,如下所示:BigInteger c = a.add(b);/ c = a + bBigInteger d = c.multiply(b.add(BigInteger.valueOf(2);/ d = c * (b + 2)注意:查阅API了解这两个类的更多用法。 数组 数组只是相同类

45、型的、用一个标识符名称封装到一起的一个对象序列或基本数据类型序列。数组中的每个数据称为元素。数组通过方括号下标操作符 来定义和使用,下面声明了一个数组:int a;/或 int a;这条语句仅声明了一个数组变量(这时不能指定数组的大小,现在所拥有的只是一个引用,还未给数组分配空间),并没有初始化一个数组。下面的语句创建一个数组,并为其分配内存空间:int a = new int100;数组一旦创建,就不能改变其大小。如果经常需要在运行中动态扩展数组的大小,则应该使用另一种数据结构ArrayList。注意:关于ArrayList的内容我们在后面的课程中介绍。 数组的初始化数组的初始化可以出现在代码的任何地方,通常使用迭代来实现:int a = new int100;for (

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论