文档库 最新最全的文档下载
当前位置:文档库 › JAVA复习题

JAVA复习题

JAVA复习题
JAVA复习题

1、简述Java实现可移值性的基本原理。

答:Java属于编译型和解释型的编程语言,所有的*.java程序必须编译为*.class文件之后才可以在电脑上执行,而执行*.class文件的电脑并不是一台真实的电脑,而是利用软件和硬件模拟出来的一台虚拟电脑,称为Java虚拟机,而针对于不同的操作系统平台,有不同版本的Java虚拟机,即:由Java 虚拟机去适应不同的操作系统,即:只要Java虚拟机的支持没有改变,同一个*.class可以在不同的平台上运行。

2、简述Java语言的三个程序分支。

答:JAVA SE(Java标准版):提供基础的Java类库及平台支持:

JAVA ME(Java微型版):提供嵌入式开发支持:

JAVA EE(Java企业版):提供企业平台支持。

3、简述Java中path及classpath的作用。

CLASSPATH:是所有*.class文件的执行路径,java命令执行的时候将利用此路径加载所需要的*.class 文件。

4、简述Java语言的主要特点。

答:Java语言的主要的特点如下:

1、Java语言是一门面向对象语言,且语法足够简单;

2、Java避免了C/C++之中复杂的指针关系,而使用了更为简单的引用方式来进行内存传递;

3、Java是为数不多的支持多线程开发的编程语言;

4、Java提供了自动的垃圾收集机制,可以定期释放出无用的垃圾空间;

5、Java语言的安全性较高;

6、Java最大的特点是具备可移植性,即:同一个程序在不同的操作系统上都可以运行。5、详细阐述Java中使用public class或class声明一个类的区别及注意事项。

答:使用public class定义的类,要求文件名称和类名称保持一致,在一个*.java文件之中只能存在一个public class;使用class定义的类,文件名称可以和类名称不一致,在一个*.java文件之中可以同时存在多个class定义,编译之后会产生多个*.class文件。

1、请解释常量与变量的区别?

答:常量就是一个固定的数值。是不可改变的,例如:数字1、2就是一个整型的常量。

变量是利用声明的方式,将内存中的某个内存块保留下来以供程序使用。可以声明的数据类型为整型、字符型、浮点型或是其他数据类型,作为变量的保存之用。变量在程序语言中扮演了最基本的角色。变量可以用来存放数据,而使用变量之前必须先声明它的数据类型。

2、解释方法重载的概念,并举例说明。

答:方法重载指的是多个方法的方法名称相同,但是方法中的参数类型及个数不同。

代码说明:

public static int add(int x, int y) {

return x + y;

}

public static int add(int x, int y, int z) {

return x + y + z;

}

public static double add(double x, double y) {

return x + y;

}

1、String类的操作特点。

答:String类的对象有两种实例化方式:

|- 方式一:直接赋值,只开辟一块堆内存空间,并且对象可以入池;

|- 方式二:构造方法,开辟两块堆内存空间,有一块将称为垃圾,不会自动入池,使用intern()方法手工入池;

String对象的比较方法:

|- ==:比较的是两个字符串对象的内存地址数值;

|- equals():字符串内容比较;

字符串对象一旦声明,则内容不可改变,改变的只能是字符串对象的地址指向。

2、简述垃圾对象的产生。

答:垃圾指的是一块无用的引用内存,当将变量设置为null或者长时间不使用时,就将成为垃圾。

3、static方法如何调用?非static方法如何调用?

答:static方法可以使用类名称或实例化对象调用,而非static方法只能依靠实例化对象才可以调用。

4、类与对象的关系是什么?如何创建及使用对象?

答:类规定了对象所具有的属性及行为(方法),类只有通过产生对象才可以分配属性或者是调用方法,对象的创建依靠

关键字new创建。

5、举例说明子类对象的实例化过程。

答:当通过关键字new实例化子类对象时,会默认调用父类的无参构造方法,为父类对象实例化,而后才会调用子类的构造方法,为子类对象实例化。

7、简述this与super关键字的区别。

答:this和super都可以调用类中的属性、方法、构造方法,但是this调用的是本类操作,而super 是由子类调用父类操作。

8、简述方法的重载与覆写的区别。

答:方法重载是发生在一个类之中,方法名称相同、参数的类型及个数不同,不受权限的限制。而覆写是发生在继承关系之中,子类定义了和父类定义了方法名称相同、参数类型及个数、返回值类型完全相同的方法时所发生的操作,在子类覆写父类方法时,被覆写的方法不能拥有比父类更严格的访问权限。

9、在已有类的基础上派生新的类有什么好处?

答:扩充已有类的功能,并且利用方法的覆写扩充已有方法的功能。

10、如何区分子类和父类?子类可以继承父类的那些内容?

答:子类使用extends继承父类或使用implements实现多个接口,子类可以继承父类中的全部内容,但是对于私有操作属于隐式继承,而非私有操作属于显式继承。

11、什么是多态?实现都态的方法有那些?

答:多态是面向对象的最后一个主要特征,它本身主要分为两个方面:

?方法的多态性:重载与覆写

|- 重载:同一个方法名称,根据不同的参数类型及个数可以完成不同的功能;

|- 覆写:同一个方法,根据操作的子类不同,所完成的功能也不同。

?对象的多态性:父子类对象的转换。

|- 向上转型:子类对象变为父类对象,格式:父类父类对象= 子类实例,自动;

|- 向下转型:父类对象变为子类对象,格式:子类子类对象= (子类) 父类实例,强制;

12、接口有那些特征?如何定义和实现接口。

答:接口之中全部由全局常量及抽象方法所组成,一个类可以同时实现多个接口,在Java中使用interface定义接口,子类使用implements实现接口。

13、接口和抽象类有那些区别?

答:抽象类及接口区别如下。

No. 区别抽象类接口

1 定义关键字abstract class interface

2 组成常量、变量、抽象方法、普通方法、构造方法全局常量、抽象方法

3 权限可以使用各种权限只能是public

4 关系一个抽象类可以实现多个接口接口不能够继承抽象类,却可以继承多接口

5 使用子类使用extends继承抽象类子类使用implements实现接口

抽象类和接口的对象都是利用对象多态性的向上转型,进行接口或抽象类的实例化操作

6 设计模式模板设计模式工厂设计模式、代理设计模式

7 局限一个子类只能够继承一个抽象类一个子类可以实现多个接口

14、简述基本数据类型的自动装箱及自动拆箱操作。

答:在JDK 1.5之后,基本数据类型可以采用直接赋值的方式为包装类进行对象的实例化操作,而包装类的对象也可以通过直接赋值的方式变回基本数据类型。

1、简述包的作用及使用。

答:使用包可以将功能近似的类统一管理,同时可以避免项目之中同名类名称冲突问题;

2、简述Java的四种访问权限的区别。

答:Java一共有四种访问控制权限:

?private:只可以在一个类中访问,其他类不允许访问;

?default:可以在一个包中访问,但是不同包不允许访问;

?protected:可以在同一个包中和不同包的子类所访问,其他包的类不允许访问;

?public:可以被所有包的类所访问。

1、简述泛型的作用

答:泛型的主要作用是解决对象向下转型所带来的ClassCastException,使用泛型之后,类之中的属性或方法中的参数类型就由调用处来决定,而如果调用处不设置泛型,为了保证程序不出错,则会使用Object类型进行定义。

2、简述枚举的作用及实现特点。

答:枚举定义出了一个类所能使用的若干几个实例化对象,枚举可以直接采用“枚举类型.对象”的方式取得类中的实例化对象进行操作。

3、简述JAVA SE中三个内建的Annotation的作用。

答:在JAVA SE之中定义了三种Annotation:

?@Override:准确的方法覆写;

?@Deprecated:某个结构(类、方法、属性)不再建议被用户所使用;

?@SuppressWarnings:压制编译时所产生的警告信息。

5、线程在生命周期中要经历五种状态,分别是:

创建状态、就绪状态、运行状态、堵塞状态、销毁

6、Object类提供的状态

wait() 、notify() 、notifyAll() 三个方法可以控制线程。

1、简述线程两种实现方式及区别?

答:多线程的两种实现方式都需要一个线程的主类,而这个类可以实现Runnable接口或继承Thread 类,不管使用何种方式都必须在子类之中覆写run()方法,此方法为线程的主方法;Thread类是Runnable接口的子类,而且使用Runnable接口可以避免单继承局限,以及更加方便的实现数据共享的概念。

2、简述死锁的产生。

答:当多个线程访问某一共享资源时,为保证数据的正确性,需要使用同步进行控制,线程同步指的是某一线程要等待其他线程对象操作完成之后才可以进行操作,但是在程序之中过多的线程等待就会出现死锁。

1、打印出100~1000范围内的所有“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

public class TestDemo {

public static void main(String[] args) {

int i, j, k;

for (int x = 100; x < 1000; x++) {

i = x / 100; // 计算百位数字

j = (x / 10) % 10; // 计算十位数字

k = x % 10; // 计算个位数字

if (x == i * i * i + j * j * j + k * k * k) {

System.out.print(x + "、"); }

}

}

}

2、通过代码完成两个整数内容的交换。

实现一:引用第三方变量

public class TestDemo {

public static void main(String[] args) {

int x = 10;

int y = 20;

int temp = x;

x = y;

y = temp;

System.out.println("x = " + x);

System.out.println("y = " + y);

}

}

1、编写并测试一个代表地址的Address类,地址信息由:国家,省份,城市,街道,邮编组成,并可以返回完整的地址信息。

class Address {

private String national;

private String provincial;

private String city;

private String street;

private String zipcode;

public Address() {

}

public Address(String national, String provincial, String city,

String street, String zipcode) {

super();

this.national = national;

this.provincial = provincial;

this.city = city;

this.street = street;

this.zipcode = zipcode;

}

public String toString() {

return "国家:" + this.national + ",省份:" + this.provincial + ",城市:"

+ this.city + ",街道:" + this.street + ",邮政编码:" + this.zipcode;

}

// setter、getter略

}

public class TestDemo {

public static void main(String args[]) {

Address ad = new Address("中国", "北京", "北京市", "MLDN", "100088");

System.out.println(ad);

}

}

2、定义并测试一个代表员工的Employee类。员工属性包括“编号”、“姓名”、“基本薪水”、“薪水增长额”;还包括“计

算增长后的工资总额”。的操作方法。

class Employee {

private int empno ; // 雇员编号

private String ename ; // 雇员姓名

private double sal ; // 基本工资

private double rate ; // 工资增长额

public Employee() {

}

public Employee(int empno, String ename, double sal, double rate) {

super();

this.empno = empno;

this.ename = ename;

this.sal = sal;

this.rate = rate;

}

public String toString() {

return "雇员编号:" + this.empno + ",雇员姓名:" + this.ename + ",基本工资:" + this.sal ;

}

public void growthin() { // 增长薪水

this.sal = this.sal * this.rate ;

}

// setter、getter略

}

public class TestDemo {

public static void main(String args[]) {

Employee emp = new Employee(7369, "SMITH", 1000, 1.5);

emp.growthin() ; // 工资增长

System.out.println(emp);

}

}

5、字符串操作:

?从字符串“MLDN中心Java技术学习班20130214”中提取开班日期。

public class TestDemo {

public static void main(String args[]) {

String str = "MLDN中心Java技术学习班20130214" ;

System.out.println(str.substring(str.indexOf("20130214")));

}

}

程序运行结果:20130214

?将“MLDN JAVA高端技术培训”字符串中的“Java”替换为“JAVA EE”。

public class TestDemo {

public static void main(String args[]) {

String str = "MLDN JAVA高端技术培训" ;

System.out.println(str.replaceAll("Java".toUpperCase(), "JAVA EE"));

}

}

程序运行结果:MLDN JAVA EE高端技术培训

?取出“Java技术学习班20130214”中的第八个字符。

public class TestDemo {

public static void main(String args[]) {

String str = "Java技术学习班20130214" ;

System.out.println(str.charAt(8));

}

}

程序运行结果:班

?清除“Java技术学习班20130214”中的所有‘0’。

public class TestDemo {

public static void main(String args[]) {

String str = "Java技术学习班20130214" ;

System.out.println(str.replaceAll("0", ""));

}

}

程序运行结果:Java技术学习班213214

?从任意给定的身份证号码中提取此人的出生日期。

public class TestDemo {

public static void main(String args[]) {

String str = "1101051976091900520" ;

System.out.println(str.substring(6,14));

}

}

8、建立一个人类(Person)和学生类(Student)功能要求:

A、Person中包含4个保护型的数据成员name、address、sex、age分别为字符串,字符串,字符及整型。表示:姓

名、地址、性别和年龄。一个四参构造方法,一个无参构造方法,及一个输出方法用于显示四种属性。

B、Student继承Person,并增加输出成员math、english存放数学和英语成绩。一个六参构造方法,一个两参构造

方法,一个无参构造方法,重写输出方法用于显示全部六种种属性.

class Person {

private String name ;

private String address ;

private char sex ;

private int age ;

public Person() {

}

public Person(String name, String address, char sex, int age) {

super();

https://www.wendangku.net/doc/7f13742694.html, = name;

this.address = address;

this.sex = sex;

this.age = age;

}

public String toString() {

return "姓名:" + https://www.wendangku.net/doc/7f13742694.html, + ",地址:" + this.address + ",性别:" + this.sex

+ ",年龄:" + this.age;

}

// setter、getter略

}

class Student extends Person {

private double math ;

private double english ;

public Student() {

}

public Student(String name, String address, char sex, int age, double math,

double english) {

super(name, address, sex, age);

this.math = math;

this.english = english;

}

public String toString() {

return super.toString() + ",数学成绩:" + this.math + ",英语成绩:" + this.english;

}

// setter、getter略

}

public class TestDemo {

public static void main(String args[]) {

Student stu = new Student("张三", "北京西城区甲11号德外大街德胜科技园美江大厦A座- 6层", ' 男', 25, 90.0, 99.0);

System.out.println(stu);

}

}

2、利用Random类产生5个1~30之间(包括1和30)的随机整数。

import java.util.Random;

public class TestDemo {

public static void main(String args[]) {

Random rand = new Random();

for (int x = 0; x < 5; x++) {

System.out.print(rand.nextInt(31) + "、");

}

}

}

3、输入一个email地址,之后使用正则表达式验证该email地址是否正确。

package cn.mldn.demo;

public class TestDemo {

public static void main(String[] args) throws Exception {

String str = "mldnqa@https://www.wendangku.net/doc/7f13742694.html,";

String regex = "[a-zA-Z_][a-zA-Z_0-9\\.]*@[a-zA-Z_0-9\\.]+\\.(com|cn|net)";

if (str.matches(regex)) { // 符合于验证要求

System.out.println("TRUE,EMAIL输入合法。");

} else {

System.out.println("FLASE,EMAIL输入非法!"); }

}

}

JAVA期末考试试卷

天津城市建设学院2007~2008学年第二学期 《 java 语言程序设计A 》 试题A 卷 课程号:073101-0 试卷说明:闭卷考试,时间120分钟。 一、 填空(本题共15空,每空2分,共30分) 1.如果一个java 源程序文件中定义有4个类,使用sun 公司的JDK 编译器javac 编译该源程序文件将产生_____4___个文件名与类名相同扩展名为___.Class_____的字节码文件。 2.Java 中所有类都是类 __Object__的子类。 3.请填出在java .lang 包中与下列基本数据类型相对应的封装类: float :java .lang .Float , char : _ java .Lang.char_______, boolean : ___ java .Lang.boolean_____。 4.被关键字____final______修饰的方法是不能被当前类的子类重新定义的方法 5.线程的四种状态是__新建_____ 、_运行_ 、_中断 、__死亡___。 6.java 语言中__https://www.wendangku.net/doc/7f13742694.html,ng.Objet ___是所有类的根。 7.Swing 的事件处理机制包括__事件的监听者__、事件和事件处理者。 8.URL_____Uniform Resourse Locator_____是的缩写。 9.java 有两类应用程序java Application 和____java 10.转义字符以___\__开头。 二、选择(本题共20小题,每题2分,共40分) 1.欲构造ArrayList 类的一个实例,此类继承了List 接口,下列哪个方法是正确的 ? ( B ) A 、 ArrayList myList=new Object (); B 、 List myList=new ArrayList (); C 、 ArrayList myList=new List (); D 、 List myList=new List (); 2.paint()方法使用哪种类型的参数? ( A ) A 、 Graphics B 、 Graphics2D C 、 String D 、 Color 3.指出正确的表达式 ( C ) A 、 byte=128; B 、 Boolean=null; C 、 long l=0xfffL; D 、 double=0.9239d; 4.指出下列程序运行的结果 ( B ) public class Example{ String str=new String("good"); char[]ch={'a','b','c'}; public static void main(String args[]){ Example ex=new Example(); ex .change(ex .str,ex .ch); System .out .print(ex .str+" and "); Sytem .out .print(ex .ch); } public void change(String str,char ch[]){ str="test ok"; ch[0]='g'; } } B 、 good and abc B 、 good and gbc C 、test ok and abc D 、 test ok and gbc 5.运行下列程序, 会产生什么结果 ( A )

JAVA复习题库及答案

第一题单项选择题 1、在下列说法中,选出最正确的一项是(A )。 A、Java 语言是以类为程序的基本单位的 B、Java 语言是不区分大小写的 C、多行注释语句必须以//开始 D、在Java 语言中,类的源文件名和该类名可以不相同 2、下列选项中不属于Java 虚拟机的执行特点的一项是(D )。 A、异常处理 B、多线程 C、动态链接 D、简单易学 3、下列选项中,属丁JVM 执行过程中的特点的一项是( C )。 A、编译执行 B、多进程 C、异常处理 D、静态链接 4、在Java 语言中,那一个是最基本的元素?( C ) A、方法 B、包 C、对象 D、接口 5、如果有2 个类A 和B,A 类基于B 类,则下列描述中正确的一个是( B )。 A、这2 个类都是子类或者超类 B、A 是B 超类的子类 C、B 是A 超类的子类 D、这2 个类郡是对方的子类 6、使用如下哪个保留字可以使只有在定义该类的包中的其他类才能访问该类?(D ) A、abstract B、private (本类) C、protected(本包及其他包的子类) D、不使用保留字 7、编译一个定义了3 个类的Java 源文件后,会产生多少个字符码文件,扩展名是什么?(D ) A、13 个字节码文件,扩展名是.class B、1 个字节码文件,扩展名是.class C、3 个字节码文件,扩展名是.java D、3 个字节码文件,扩展名是.class 8、下列关于Java 程序结构的描述中,不正确的一项是( C )。 A、一个Java 源文件中可以包括一个package 语句 B、一个Java 源文件中可以包括多个类定义,但是只能有一个public 类 C、一个Java 源文件中可以有多个public 类 D、源文件名与程序类名必须一致 9、下列说法正确的一项是( C )。 A、java.1ang.Integer 是接口 B、java.1ang.Runnable 是类 C、Doulble 对象在iava.1ang 包中 D、Double 对象在java.1ang.Object 包中 10、以下关于面向对象概念的描述中,不正确的一项是( B )。 A、在现实生活中,对象是指客观世界的实体

java模拟试题附答案(一)

scjp模拟试题(一) Question No: 1 1.public class test ( 2. public static void main (String args[]) { 3. int i = 0xFFFFFFF1; 4. int j = ~i; 5. 6. } 7. ) What is the decimal value of j at line 5? A. 0 B. 1 C. 14 D. –15 E. An error at line 3 causes compilation to fail. F. An error at line 4 causes compilation to fail. 答案: C Question No: 2 Given: Integer i = new Integer (42); Long 1 = new Long (42); Double d = new Double (42.0); Which two expressions evaluate to True? (Choose Two) A. (i ==1) B. (i == d) C. (d == 1) D. (i.equals (d))

E. (d.equals (i)) F. (i.equals (42)) 答案: D, E Question No: 3 Exhibit : 1. public class test ( 2. private static int j = 0; 3. 4. private static boolean methodB(int k) ( 5. j += k; 6. return true; 6. ) 7. 8. public static void methodA(int i) { 9. boolean b: 10. b = i < 10 | methodB (4); 11. b = i < 10 || methodB (8); 12. } 13. 14. public static void main (String args[] ) ( 15. methodA (0); 16. system.out.printIn(j); 17. ) 18. ) What is the result? A. The program prints “0” B. The program prints “4” C. The program prints “8”

JAVA复习题 有答案

复习题 一、选择题 1、下列Java标志符中合法的是:() A H3_sum B -name C student# D 9_Hello123 2.Java源文件和编译后的文件扩展名分别为() A. .class和.java B. .java和.class C. .class和.class D. .java和.java 3.对于同一消息,对象可以产生不同的行为,这称为类的什么特性?()A)继承性B)封装性C)多态性D)抽象性 4、用来引入包语句的关键词是:() A)import B)abstract C)package D)extends 5.对于小程序,当离开包含Applet的主页后又再返回时将调用()方法。A)start( ) B)init( ) C)destroy( ) D)stop( ) 6.下列对Java中的继承描述错误的说法是() A.子类只能有一个父类 B.子类可作为另一个子类的父类 C.子类可以访问父类的私有属性 D.子类继承父类的方法访问权限保持不变 7.哪种循环在条件表达式被计算之前至少执行循环体语句一次?( ) A)do-while循环B)for循环C)while循环D)以上都不是 8.定义数组String[] a={"ab","abc","abcd","abcde"},数组中a[1]指的是()。 A.ab B.abc C.abcde D.数组越界 9.如果希望组件从左往右,从上到下自动布局界面,应使用哪种布局?()A)没有B)BorderLayout C)FlowLayout D)GridLayout 10.下列说法正确的是() A. 最终类在特殊情况下可以有子类 B. 抽象类只能有一个子类 C. 多态可以通过方法重写和方法重载实现 D. 抽象类不可以声明成员变量和成员方法,只能声明抽象方法 11.下列语句中访问类的方法正确的是:() A)https://www.wendangku.net/doc/7f13742694.html, B)https://www.wendangku.net/doc/7f13742694.html,( ) C)book->name D)book_name 12.下列选项中哪个是类Pen的构造方法() A)public void Pen() {} B)public static Pen() {} C)public Pen() {} D)public static void Pen() {} 13.单击菜单触发的事件是?() A. ActionEvent B.ItemEvent C.MouseEvent D. KeyEvent 14.关于try/catch/finally结构的异常捕获和处理,说法错误的是()A)try部分是必须的B)catch部分也是必须的 C)可以有多个catch部分D)finally部分也是必须的

JAVA期末试题及答案

Java 程序设计》课程试卷 1.使用 Java 语言编写的源程序保存时的文件扩展名是( )。 (A ) .class ( B ) .java C ) .cpp ( D ) .txt 2.设 int a=-2 ,则表达式 a>>>3 的值为( )。 (A ) 0 (B )3 (C ) 8 (D )-1 3.设有数组的定义 int[] a = new int[3] ,则下面对数组元素的引用错误的是( ) ( A )a[0]; ( B ) a[a.length-1]; (C )a[3]; (D )int i=1 ; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( )。 (A )封装 (B )继承 (C )覆盖 (D )重载 5.在类的定义中构造函数的作用是( )。 (A )保护成员变量 (B )读取类的成员变量 (C )描述类的特征 (D )初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( )。 ( A ) try ( B ) break ( C ) catch ( D ) finally 7.类与对象的关系是( )。 (A )类是对象的抽象 (B )对象是类的抽象 15. Java 语言使用的字符码集是 (A) ASCII (B) BCD (C) DCB 16. 如果一个类的成员变量 (A) public (B) (C 对象是类的子类 (D )类是对象的具体实例 )。 8.下面哪一个是 Java 中不合法的标识符( ( A )$persons ( B ) twoNum ( C )_myVar ( D )*point 9.为 AB 类的一个无形式参数无返回值的方法 ( ) 。 ( A ) static void method( ) ( B ) public void method( ) ( C ) final void method( ) ( D ) abstract void method( ) 10.欲构造 ArrayList 类的一个实例,此类继承了 ( A ) ArrayList myList=new Object( ) ( B ) List myList=new ArrayList( ) ( C ) ArrayList myList=new List( ) ( D ) List myList=new List( ) 11. Java 源文件和编译后的文件扩展名分别为( (A) .class 和 .java (C).class 和 .class 12. 在 Java Applet 程序用户自定义的 (A) start( ) (B) stop( ) (C) init( ) 13. 对于一个 Java 源文件, (A) package,import,class (C) import,package,class 14. 下面哪个是非法的: (A) int I = 32; (C) double d = 45.0; method 书写方法头,使得使用类名 List 接口,下列哪个方法是正确的( ) ( B).java 和 .class (D) .java 和 .java Applet 子类中,一般需要重载父类的 (D) paint( ) import, class (B) class,import,package (D) package,class,import ( ) 定义以及 package 正确的顺序是: (B) float f = 45.0; (D) char c = // 符号错 AB 作为前缀就可以调用它,该方法头的形式为 方法来完成一些画图操作。 (D) Unicode 只能 在所在类中使用 则该成员变量必须使用的修饰是

Java复习题

1.已定义a为int类型的变量。以下选项中,合法的赋值语句是( B )。 A) a +1==2; B) a+=a*6; C) a=8.8f; D) int a=8; A、不是赋值语句,中间是双等号,是比较;如果改成等号那么表达方式属于非法 C、不能把实数直接给整型变量,要强制转换(int)8.8f D、重复定义 2.Java程序有哪两类? 应用程序(Application)和小应用程序(Applet) 3.为了使包sos中的所有公共类在当前程序中可见,可以使用的语句是( A )。 A)import sos.*; B)package sos.*; C)sos import; D)sos package; 显然需要进行导入,所以使用import,C选项非法。 4.下列的变量定义中,错误的是( A)。 A) int 6_a; B) float a; C) int i=Integer.MAX_VALUE; D) static int i=100; 标识符的合法原则:字母(包括汉字),数字,_和$这四种组成,但是不能以数字开头。 5.下列的变量定义中,正确的是(D)。 A) boolean b1=”true”; B) float x=6.6; C) byte i=200; D) double y; A、不应该加双引号 B、6.6默认是double类型,不能直接在这里使用,应该用6.6f,C、200超出范围(-127~128) 6.以下字符常量中不合法的是(D)。 A) '|' B) '\'' C) '\n' D) "我" D是字符串。 7. Java源程序要运行必须经过(编译)和(运行)两个阶段。 8. Java编译器将Java语言编写的源程序编译成(字节码)文件。 9. 下列程序段执行后c的结果是(B )。 int a = 9, b = 11, c; c= a != b ? a+b : a-b; A) –2 B) 20 C) 11 D) 9 10. 对于一个三位的正整数n=789,以下结果为8的是(D)。 A) n/10%2 B) (n-n%10)/100 C) n%10 D) n%100/10 11. 有一声明语句为boolean t;下面赋值语句中t的值为false的是(D )。 A)t=5>3; B)t=!false; C)t=(true|false); D)t=(2==3)?true:false; 12. 设 i, j, k, m为已赋值的 int 型变量,下列表达式的结果属于逻辑值的是( A)。 A) i==k & j+k >=m B) i+k C) m++ D) m=i+j 13. 若有定义int x = 13;则执行完语句x %= 8; 后,x的值是(C )。 A) 0 B) 1 C) 5 D) 8 14. 若有定义int a = 2;则执行完语句 a -= a * a; 后,a的值是( C)。 A) 0 B) 4 C) -2 D) –4 15. 下列程序段执行后 b3 的结果是(D)。 boolean b1=true, b2=true, b3; b3= !b1 ? b1 :!b2; A) 0 B) 1 C) true D) false 16. 与以前的结构化程序设计不同,Java是一种完全(面向对象),而且平台(中立)的语言,而后者又使得用Java编写出来的程序具有(可移植)性。 17.面向对象程序设计的三个特性是(继承)、(封装)和(多态)。 18. 执行下面程序段后,b, x, y的值分别是( D)。 int x=6,y=8; boolean b;

java模拟试卷3与答案

复习题 3 一、选择题 1. JDK 提供的编译器是(B)。 (A ) java.exe(B ) javac.exe (C) javap.exe( D) javaw.exe 2.以下作为 Java 程序入口的 main 方法声明正确的( C)。 (A ) public void main(String args[]) (B ) public int main(String args[]) (C) public static void main(String args[]) (D ) public static int main(String args[]) 3.以下标识符错误的是( C )。 (A )Public( B)张三( C) class(D ) main 4.java 中定义字符串 String s= ”pzhu”,下面操作可以取得字符串长度的是( A )。 (A ) s.length()( B) s.length( C)s.size()( D) length(s) 5.如下定义数组,操作正确的是(D)。 int a[]={1,2,3}; (A ) a[3]=100(B ) a[0].length( C)a++( D) a.length 6.如下定义二维数组操作错误的是()。 int a[][]={{1,2},{3}}; (A ) a[0][1]=200( B) a[0].length( C) a[1][1]=100( D) a.length 7. 以下数据类型存储空间最大的是(B)。 (A ) byte( B) long(C) float(D ) char 8. 面向对象的三大特性,不包括如下( A)。 (A )异常( B)封装(C)继承(D )多态 9、关于类的定义以下说法错误(B)。 (A )类定义使用class 关键字( B)每个类中必须有一个main 方法 (C)一个包可以包含多个类( D) java 中所有类都是Object 类的子类 10. 关于构造方法以下说法错误的是(D)。 (A)构造方法名必须与类名一致(B)构造方法可以重载 (C)构造方法是通过new 来调用(D)每个类都必须编写构造方法代码 11.关于继承如下说法错误的是(C)。 (A) Java 是单继承的(B)通过extends 来定义继承 (C)所有父类方法都可以被override的(D)继承呈现的是 is a 的关系 12.以下代码执行的结果是 ( C )。 System.out.println(" 攀枝花学院 pzhu".length()); (A)编译错误(B)运行错误(C) 9(D) 14 13. 用来存储键值对的容器是 ()。 (A )ArrayList( B ) LinkedList(C) HashSet( D) HashMap 14、 java 中用来抛出异常的关键字是( C )。 (A) try(B) catch(C) throw(D) throws 15.关于 finally块中的代码,以下说法不正确的是(A)。 (A ) try 块中的 return 语句会中断finally 块中语句的执行 (B )无论 finally 块前的语句运行是否产生异常,其中的语句都会执行 (C) finally 块中的语句通常中用作资源的清理 - 1 -

Java期末考试题

2010年——2011年Java期末考试题 一、判断题。 1.Java语言是平台无关的语言。T 2.类的静态方法中可以访问该类的非静态数据成员.F 3.Java中方法调用时参数传递都是按值传递的,因此从方法中退出时,参数的值是不 会变的。T 4.覆盖方法所抛出的异常不能比原方法更多。T 5.Final 方法不能被覆盖。T 6.抽象类中一定包含抽象方法。F 7.接口中的方法必须是抽象方法。T 8.在方法定义中,所以可能发生的异常都必须用try{} catch(){}捕捉。F 9.Java支持多重继承。F 10.Final修饰的类不能派生子类。T 11.覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。T 12.不能在静态方法中使用this.T 13.抽象类中不能创建对象。T 14.一个类可以实现多接口。T 15.接口中可以包含非静态成员。F 16.不论是否捕捉到异常try{}catch(){} final{}语句中finally块中的代码总要被执行。T 17.一个类实现一个接口,则该类必须实现接口中的所有方法。F 18.线程使用sleep方法去休眠后可以使用notify方法唤醒。F 19.线程使用sleep方法休眠是会释放该线程同步锁定的对象。F 20.Final类中的属性和方法都必须是final的。F 二、选择题 1、Java中复合数据类型不包括(D) A.类类型 B.数组 C.接口类型 D.指针 2、请从四个选项中选择答案,下列代码的执行结果是:(C) Public class Test{ Public static void main(String args[]){ Float t=9.0f; Int q=6; System.out.println((t++)*(--q)); } } A.40 B.40.0 C.45.0 D.36.0 3、下列关于修饰符混用的说法,错误的是(D) A.abstract 不能与final 并列修饰同一个类 B.abstract类中可以有非abstract的方法 C.普通类(非abstract类)中不能有abstract方法 D.static方法中能处理非static的属性 4、关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A) A.可以被该类自身、与它在同一个包中的其它类、在其它包中的该类的子类所访问B.只能被该类本身和该类的所有的子类访问 C.只能被该类自身所访问 D.只能被同一个包中的类访问 5、x=2,y=3,z=4,则表达式z*=y++*--x的值是(A) A.12 B.24 C.16 D.3 6、以下赋值语句正确的是(D) A.char c1=”a” B.float f1=3.22 C.byte b1=266 D.long L1=0xAC8L 7、Java不支持多重继承,但我们可以通过(B)实现 A.多态 B.接口 C.覆盖 D.抽象类 8.已知类person是类student的父类,以下数组定义和赋值哪些是正确的(A) A. person p[]=new person[3]; p[1]=new student(); B .student s[]=new person[3]; s[1]=new person(); C .person p[]= new student[3];p[1]= new person(); D .student s[]=new student[3];s[1]=new person; 9 编译MyClass.java之后,得到了三个字节码文件:MyClass.class , MyClasslittle$.class MyClass$1.class.这表明(C) A.MyClass类中的两个方法:little和1 B. MyClass.Java中有三个类:MyClass、little和1 C. MyClass类中有两个内部类:一个是命名的little,另一个是匿名的1 D. MyClass、little和1,这三者没什么关系 10、main 方法是java Application 程序执行的入口点,关于main方法的方法头以下(B)是合法的。 A.public static void main() B.public static void main(String arg[]) C.public static int main(String[] arg) D. B.public void main(String arg[]) 11、当编译和运行下面的代码会出现什么情况?(A)

JAVA复习题及答案

第一章JA V A概述 1.JA V A中哪三种平台:Java ME(嵌入式平台),Java SE(标准平台),Java EE(企业级平台). 2.JA V A从第几版称为JA V A2:JA V A 1.2版。 3.JA V A有否指针:无。 4.JA V A的API指的是什么:Application Programming Interface,JA V A的类库。 5.JA V A平台无关性是如何实现的:通过编译生成与平台无关的代码──字节码,而不是通常的特定机器上的机 器码,由平台上的Java虚拟机中的Java解释器解释执行。 6.JA V A有哪两种程序形式:Application和Applet程序。 7.Application程序运行时系统调用程序的哪个方法:main()方法。Applet程序执行时系统自动调用程序的哪个方 法:init()方法。 8.绘图程序中系统自动调用哪个方法:paint(Graphics g)方法。 9.JDK是什么:Java开发工具包(Java Development Kit ) 的缩写,包括JAVA类库、JAVA编译器、JAVA解释 器、运行时环境、命令行工具。 10.有哪几种主要的可视化的集成源程序编辑环境:Eclipse, JCreator, JBuilder等。 11.安装JDK的可执行文件是:jdk-1_5_0-windows-i586.exe 12.安装JDK帮助文档的是:jdk-1_5_0-doc.zip 第二章JA V A语言基础 13.保留字是什么意思,能否用于程序员定义自己的类、方法、变量等名字:JA V A中已定义的用于特定用途的标 识符。不能。 14.i++与++i有什么区别? 15.写出各种转义字符?p17。\t, \n, \r, \‖, \’, \\ 16.编程良好习惯中,对象名、包名、类名、变量名、常量名、接口名、方法名中的字符的大小写如何设置?Package –名词且小写;Class--名词且第一个字母大写;Interface—同Class;Methods-动词且第一个字母小写,分隔词第一个字母大写,不用‖-―;Variable—第一个字母小写,不用‖_‖,‖$‖(对于inner class有意义);Constants—大写并用‖_‖ 17.标识符的用途:用于给类、方法、变量、接口、程序块、对象等起名字。 18.标识符中可否有空格,可否有#号:不能,只能有字母、下划线、美元符、数字 19.判断合法的标识符:identifier,userName,_FH User_Name ,_sys_val,$change 2mail,room#//,class,ab-cd,ac eh 20.JA V A中标识符大小写敏感吗? 21.实数类型的两种类型中哪种是默认的:double。 22.float和int型的数据各占多少位(bit)。32位 23.什么叫局部变量:方法内部的变量。 24.局部变量有默认值吗:没有。 25.局部变量出了方法体后还存在吗:不存在。 26.一个变量可以重复定义吗:不能。 27.低级类型的数据与高级类型的数据进行运算时,怎样进行类型转化:低级的类型首先自动转化为高级类型,然 后进行运算。 28.域(field)变量应该定义在方法之外还是方法之内:之外。 29.sum+=i的展开式:sum=sum+i 30.计算a+=a*=b-=(a=4)*(b=2)的结果,其中初始时a=4,b=2。 31.―&‖和―&&‖的区别? 32.关系运算符与逻辑运算符哪个优先级高,为什么:关系,因为关系运算的结果false或true用于逻辑运算。 33.以下计算结果是否对?

JAVA语言复习题及答案

14年(下)程序设计(JA V A语言)复习题 第一:单选 1. 若有定义int x=3,y;则执行语句y=(++x)+(++x)+(++x);后y=()。 (A) 12 (B) 18 (C) 9 (D) 15 2. 下列选项中,不是Java关键字的是()。 (A) double (B) Integer (C) float (D) default 3. 在成员变量与局部变量重名时,若想在方法内使用成员变量,要使用的关键字是()。 (A) super (B) import (C) this(D) return 4. 下列说法中错误的是( B )。 (A) 一个类中的实例方法可以调用其他实例方法 (B) 静态方法可以调用实例方法 (C) 实例方法可以调用静态方法 (D) 静态方法可以调用静态方法 5. 下列关于super的说法中错误的是()。 (A) 用来访问父类被隐藏的成员变量 (B) 用于调用父类中被重写的方法 (C) 用于定义父类 (D) 用于调用父类的构造函数 6. 下列选项属于接口中方法默认访问控制方式的是()。 (A) public (B) private (C) protected(D) default 7. 定义一个名为key的类,下列选项中使其不能被继承的定义是()。 (A) class key{} (B) native class key{} (C) class key{ final;} (D) final class key{} 8. 若有定义String tom=""我们是学生"";则tom.length()的值是()。 (A) 5 (B) 10 (C) 6 (D) 11 9. 调用repaint()方法,会出现什么情况( C )。 (A) 清除以前pain()方法所画的内容 (B) 保留原来pain()所画的内容 (C) 清除pain()以前所画的内容,再一次调用pain()方法 (D) 在pain()以前所画内容基础上,再一次调用pain()画新的内容 10. 从下面的main()调用java lyrics a kiss is but a kiss 中可以访问单词“kiss”的是()。 (A) args[0] (B) args[5] (C) args[4] (D) args[3] 11. 使一个线程放弃处理器并休眠1.5秒,应调用的方法是()。 (A) sleep(1.5) (B) sleep(1500) (C) suspend(1.5) (D) suspend(1500) 12. 如要使处于等待状态的线程恢复到运行状态,应调用的方法是()。 (A) start() (B) run() (C) resume() (D) notify() 13. 如果想获得一个InetAddress对象的主机域名,可调用的方法是()。

JAVA模拟试题(含答案)

一、请分别写出下面程序的运行结果,将答案添在每道题后的空格处 1. public class Test1 { public static void main(String[] args) { int x=10,y=20; System.out.print("x="+(x++)+" y="+(++y)+" sum="+(x+y)); } } 运行结果:x=10 y=21 sum=32 2. public class Test2 { public static void main(String[] args) { boolean end; for(int i=2;i<20;i++){ end=true; for(int j=2;j<=i;j++){ if(i%j==0&&j

相关文档