第一章 Java概述 一、选择题
1、 下面哪个是在Dos命令提示符下编译Java程序的命令?( A ) A. javac B. java C. javadoc D. javaw
2、 以下哪些是Java程序中有效的注释符号?( ABC ) A. // B. /* */ C. /** */ D. */ */
3、 以下哪个不是Java语言的特点?( B ) A. 面向对象 B. 自动检查语法错误 C. 跨平台 D. 解释执行
4、 Java编译器会将Java程序转换为( C ) A. 可执行代码 B. 目标代码 C. 字节码 D. 机器代码
5、 Java源文件的扩展名是( D ) A. .class B. .jar C. .jav D. .java 二、简答题
1、 Java的跨平台的含义是什么?为什么Java可以跨平台?
Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。JVM是一种抽象机器,它附着在具体操作系统之上,本身具有一套虚机器指令,并有自己的栈、寄存器组等。
Java编程人员在编写完Java程序后,Java编译器将Java源代码文件编译后生成字节码文件
2、 简述Java语言的特点 Java具有以下特点: 1)、 简单性
Java语言的语法规则和C语言非常相似,只有很少一部分不同于C语言,并且Java还舍弃了C语言中复杂的数据类型(如:指针和结构体),因此很容易入门和掌握。
2)、 可靠性和安全性
Java从源代码到最终运行经历了一次编译和一次解释,每次都有进行检查,比其它只进行一次编译检查的编程语言具有更高的可靠性和安全性。 3)、 面向对象
Java是一种完全面向的编程语言,因此它具有面向对象编程语言都拥有的封装、继承和多态三大特点。
4)、 平台无关和解释执行
Java语言的一个非常重要的特点就是平台无关性。它是指用Java编写的应用程序编译后不用修改就可在不同的操作系统平台上运行。Java之所以能平台无关,主要是依靠Java虚拟机(JVM)来实现的。Java编译器将Java源代码文件编译后生成字节码文件(一种与操作系统无关的二进制文件)。字节码文件通过Java虚拟机(JVM)里的类加载器加载后,经过字节码校验,由解释器解释成当前电脑的操作系统能够识别的目标代码并最终运行。下图展示了Java程序从编译到最后运行的完整过程。
第二章 Java语法基础
1、 Java有哪些基本的数据类型?写出这些基本数据类型所占用的最大空间(用字节描述)。 (1)数字型 (number),具体又分为: a.整型 (integers),整型又包括: ①字节整数 (byte, 8 bits) ②短整数 (short, 16 bits) ③整数 (int, 32 bits) ④长整数 (long, 64 bits)
b.实型 (real numbers),具体又分为: ①单精度(float, 32 bits) ②双精度(double, 64 bits)
(2)字符型 (char, 16-bit Unicode字符) (3)布尔型 (boolean)。
2、 说明Java字符编码的类型与特点。
Java字符编码的类型为Unicode,具有以下特点:
(1)Unicode是16比特的字符编码,其支持当前世界上绝大多数的语言;
(2)Unicode给每个字符提供了一个唯一的编码表示,不论是什么平台、程序或语言; (3)Windows系统(Windows 2000版本)、Java、XML、LDAP等已支持Unicode; (4)Unicode实现了ISO/IEC 10646标准; 3、 写出Java中六个常用的转义字符。
\\b 退格 \\t 制表符
\\n 换行 (Newline) \\r 回车 (Carriage return) \\' 单引号
4、 下面的几个标示符哪些是正确的,哪些是错误的,如果是错误的,请说明原因。 MyClass, _isHis, 3JavaProgram, _$asdf, Java-Visual-Machine MyClass:正确,符合标识符的组成规则。 _isHis:正确,符合标识符的组成规则。
3JavaProgram:错误,因为第1个符号不能为数字。 _$asdf:正确,符合标识符的组成规则。
Java-Visual-Machine:错误,标识符不能为保留字。 5、 说出常量与变量的定义并举例说明。
常量是指程序执行过程中,值保持不变的量,类型划分如下: ? 整型常量 ? 实型常量 ? 布尔型常量 ? 字符型常量 ? 字符串常量 如整型常量: 起 始 最大整数(正) 最大长整数(正) 举 例 十进制 0,1~9 2147483647
9223372036854775807L 23, +567, -12,0,1234 八进制 0
017777777777
0777777777777777777777L 034,0175,
-0777L
十六进制 0x
0x7FFFFFFF
0x7FFFFFFFFFFFFFFFL 0xFF, 0x45L
变量是指在程序执行过程中,值可以改变的量,类型划分为:整型变量、实型变量、字符型变量、字符串变量、布尔变量等。如:int x=2,就定义了一个整型变量x并且赋值为2。 6、 什么是强制类型转换?并说明其运用场合。
显型类型转换是强制类型转换,它是一种窄化转换 (narrowing conversion),如: double a = 1.5; float b = a;
System.out.println(\+ b); 编译: \loss of precision\数据精度丢失,数据丢失。 强制类型转换一般运用在
?二元运算符的二个操作数类型不同 ?表达式值的类型与变量的类型不同
7、 描述Java程序的构成。如何判断Java程序的主类?下面的程序有哪些错误并改正,该程序的源代码应当保存为什么名字的文件? Public class MyClass{ Public static void main(){
System.out.printIn(“my name is ?”); }
System.out.printIn(“the end!”); }
Java程序的主类中包含main(),而其它类中没有;该程序的源代码应当保存为MyClass.java。另外该程序中包含以下的错误: (1) Public的第一个字符应当小写; (2) 定界符“”应当改为\; (3) printIn应该为println\\
(4) System.out.printIn(“the end!”); 代码应放在方法中 8、 说明Java中运算符的类型以及优先级。 Java中运算符的类型以及优先级(上高下低)如下: 后缀运算符 postfix operators [] . (params) expr++ expr-- 一元运算符 unary operators ++expr --expr +expr -expr ~ !
构造或类型转换creation or cast new (type)expr 乘法 multiplicative * / % 加法 additive + - 移位 shift << >> >>>
关系 relational < > <= >= instanceof 相等 equality == != 按位与 bitwise AND &
按位异或 bitwise exclusive OR ^ 按位或 bitwise inclusive OR | 逻辑与 logical AND && 逻辑或 logical OR || 条件 conditional ? :
赋值 assignment = += -= *= /= %= &= ^= |= <<= >>= >>>= 9、 结构化程序设计有哪三种基本流程?分别对应Java中的那些语句?
结构化程序设计有下面三种基本流程:顺序结构语句,条件选择语句,循环控制语句,跳转/转向语句。
条件选择语句对应Java中的if,if-else,嵌套的if-else,条件运算符,switch-case。 循环控制语句对应Java中的for,while,do-while语句。 跳转/转向语句对应Java中的contonue,break,return语句。 10、 在一个循环中使用break,continue,return的差别。 break: 跳出(中止)循环 continue: 结束本次循环 return: 方法返回
11、 数组的定义,特点与分类。如何进行数组的初始化? 数组的定义:数组是一组同类型的变量或对象的**。
数组的特点:数组的类型可以是基本类型,或类和接口;数组中每个元素的类型相同;引用数组元素通过数组名[下标];数组下标(数组的索引)从0开始。数组是一种特殊的对象(Object),可以定义类型 (声明);创建数组 (分配内存空间) ;释放 (Java虚拟机完成)。 数组分类:一维数组、多维数组。
第三章 面向对象的实现