当前位置:文档之家› java常见简答题

java常见简答题

java常见简答题
java常见简答题

一、基础知识

1.简述使用文本编辑器和JDK创建并运行Java应用程序的基本步骤。

2. 对比分析Java与其它高级语言的编译和运行过程,说明Java具有平台独立性的原因?

3.简述break和continue语句在使用时的区别?

1、①打开文本编辑器输入Java源程序;②保存文件,文件名为源程序中public修饰类的类名,扩展名为.java;

③打开命令行工具;④编译程序,在命令行输入:javac 源程序文件名;⑤运行程序,在命令行输入:java 源程序中public修饰的类名。

2、因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。

而C/C++不可以跨平台的原因就是编译后的代码在特定的硬件上可以直接执行,换个硬件平台这些代码就不能被执行了。不过正是因为可以直接执行,所以C/C++程序的执行效率要比Java程序高

4. Java对标识符命名有什么规定?

答:Java对标识符的命名规定如下:

1) Java语言的标识符必须由字母、下划线(“_”)或美元符号(“$”)开始,其余字符可以是上述三种符号或数字(0-9)。Java语言使用Unicode字符集,所以字母包括‘A’-‘Z’、‘a’-‘z’以及Unicode字符集中序号大于0xC0的所有符号。

2) 保留字不能用于标识符如:abstract boolean 等等。

3) 标识符区分大小写。

5. 请列出Java主要的基本数据类型。

答:Java主要的基本数据类型有:布尔型boolean、字节型byte、字符型char、短整型short、整型int、长整型long、浮点型(单精度型)float、双精度型double。

二、类和对象1

1.什么是类?什么是对象?类和对象有何联系?

2.方法的重载和方法的覆盖有什么不同?

3.类变量和实例变量有何区别?

4.Java的成员变量修饰符有哪几种?其中哪种修饰符限定的范围最大?

5.说明对象的基本概念和主要特征?

1. 答:在面向对象程序设计里,类是定义一个对象的属性和方法的蓝本。对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。类是对象的模板,对象是类的实例,可以从一个类中创建许多对象。

2. 答:方法重载,指的是在类中创建多个具有相同名称,但使用不同参数的方法,Java虚拟机根据传递给方法的参数个数和类型决定调用哪个重载方法。方法的覆盖指在子类中重新定义父类中已有的方法,对于重写的方法,运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。

3.答:由static修饰的变量称为类变量,当系统在程序中第一次遇到一个类时,便会拷贝一份所有的类变量在内存里。然后那些由此类产生的实例便可分享这些类变量。

实例变量指不是用static修饰的变量,可供实例方法使用。实例变量会复制于每一个从类产生的实例中。4. 答:成员变量的修饰符有public、protected、private、static、final、transient、volatile七种。Public修饰符的限定范围最大。

5.对象是对客观世界实体及其实体关系的抽象。特点:(1)以数据为中心;(2)实现了数据封装;(3)模块独立性好;(4)对象是主动的;(5)本质上具有并行性。

三、类和对象2

1.抽象类和抽象方法有什么特点?

2.接口和抽象类有什么区别?

3.什么是包?为什么要使用包?

4.简述在类的继承关系中,子类可以继承父类的哪些成员,不能继承的有哪些成员。

1.答:①一个抽象类里可以没有抽象方法,但含有抽象方法的类必定为抽象类。

②抽象类不能被实例化为对象,而只能作为其它类的超类,并且必须被继承。

③若某子类继承自一个抽象类,而该子类不是抽象类,则子类需用覆盖的方式来实例化超类中的所有抽象方法。抽象方法可再与public、protected复合使用,但不能与final、private和static复合使用。

④抽象方法只有方法声明,不能有方法体。

2..答:从本质上讲,接口是一种特殊的抽象类,然而它们又有区别:

①接口只包含常量,而抽象类则不一定。

②接口中不能有非抽象的方法,但抽象类中可以有。

③一个类能实现多个接口,但只能有一个父类。

④接口并不属于继承结构,它实际与继承无关,无关的类可以实现同一个接口。

3.答:包(package)是类的容器。由于Java编译器为每个类生成一个字节码文件,且文件名与类名相同,因此同名的类有可能发生冲突。为了解决这一问题,Java提供包来管理类名空间。此外一旦创建了一个类,并想重复地使用它,那么把它放在一个包中将是非常有效的。

4.答:可继承:①父类中公开级的成员;②父类中保护级的成员;③如果子类和父类在同一个包中,则子类继承父类中缺省的包访问级的成员。

不可继承:④父类中私有级的成员;⑤不在同一包的缺省成员和父类的同名成员。

5.多态

多态:相同类型的变量,调用相同的方法,执行的具体代码却不同的现象称为多态

继承与多态表现形式:变量隐藏 (属性的不同表现)方法重写(方法的不同表现) 上转型对象(实例的不同表现)

方法的覆盖

规则:父类和子类方法同名;返回值类型形同;参数类型顺序相同;子类方法的权限不小于父类方法权限;子类方法只能抛出父类方法声明抛出的异常或异常子类。(异常应比父类方法更具体)p119 继承关系图

注意:子类只有在能够访问到父类方法时才能对该方法进行重写

函数重载:函数名称相同,函数的参数个数不同或参数类型不同或参数顺序不同

四、异常

1.Error类和Exception类有什么区别?

2.什么是异常?为什么要进行异常处理?

3.简述异常处理的过程。

4.写出下列关键字的意义和运用场合:①final;②finalize;③finally。

1.答:Error类及Exception类是Throwable类的两个直接子类。Error类描述的是内部系统错误,包括动态链接失败、虚拟机错误等,Java程序不做处理。Exception类描述的是程序和外部环境引起的错误,这些错误能通过程序捕获和处理,Exception类是Java程序中需要大量处理的。

3.答:程序运行时出现错误时,创建异常对象,抛出异常对象,捕获该异常对象并进行处理。

4. 答:final, finally, finalize的区别如下:

final 用于声明属性、方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。

1.答:异常,是指由于程序运行时发生错误,从而导致程序错误结束。

在进行程序设计时,错误的产生是不可避免的,没有异常处理代码的程序,在运行时发生错误则可能非正常结束,引起严重问题。因此,Java给程序员提供了处理运行时错误的功能,称为异常处理。

五、常用类库

1.Vector对象的大小与容量之间有什么区别?

2.String类和StringBuffer类的主要区别是什么?

1.答:一个Vector对象的大小是包含的Object引用的实际数量。而容量是指为Object引用分配的存储空间的数量。

2.答:String类:用于比较两个字符串,查找和抽取串中的字符或子串,字符串与其他类型的转换等,String 类对象的内容一旦被初始化就不能再改变。StringBuffer类:用于内容可以改变的字符串,可以将其他各种类型的数据增加、插入到字符串中,也可以翻转字符串中原来的内容。

七、输入输出流

1.简述读写文本文件的基本步骤。

①导入输入/输出包;②创建文件对象;③创建读出/写入操作的对象;④数据文件的读/写操作;⑤关闭文件。

1. 编写一个Application,接受用户从键盘输入的10个整数,并输出这10个整数的最大值和最小值。 import java.io.* ;

public class abc

{

public static void main(String args[ ])

{ int i , n = 10 , max = 0 , min = 0 , temp = 0;

try {

BufferedReader br = new BufferedReader( new InputStreamReader(System.in));

max = min = Integer.parseInt(br.readLine( ));

} catch ( IOException e ) { } ;

for ( i = 2 ; i <= n ; i ++ ) {

try {

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

temp = Integer.parseInt(br.readLine( ));

if (temp > max ) max=temp;

if (temp < min) min=temp;

} catch ( IOException e ) { } ;

}

System.out.println("max="+max+"\nmin="+min);

}

}

1. 编写一个Application,从键盘输入整数n,并计算从1到n的累加和。

import java.io.*;

public class Application1 {

public static void main(String[] args) {

String s = "";

int n, sum = 0;

System.out.println("计算从1 到n 的累加和。");

System.out.print("请输入n 的值:");

// 从键盘读入字符串s

try {

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

s = br.readLine();

}

catch(Exception e) { }

// 将字符串s 转为整型数n

n = Integer.parseInt(s);

// 计算1 到n 的累加和

for(int i=1; i<=n; i++)

sum += i;

// 输出结果

System.out.println("你刚才的输入是:" + n);

System.out.println("1 到n 的累加和是:" + sum);

}

}

2.import java.io.* ;

public class Reverse

{ public static void main(String args[ ])

{ int i , n =10 ;

int a[ ] = new int[10];

for ( i = 0 ; i < n ; i ++ )

try {

BufferedReader br = new BufferedReader(

new InputStreamReader(System.in));

a[i] = Integer.parseInt(br.readLine( )); // 输入一个整数

} catch ( IOException e ) { } ;

for ( i = n-1 ; i >= 0 ; i ――)

System.out.print(a[i]+" ");

System.out.println( );

}

}

答:从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。

4.import java.io.*;

public class Class1

{

public static void main(String args[ ]){

int i , Max , Min ;

int a[ ] = { 12,67,8,98,23,56,124,55,99,100 };

Max = Min = a[0];

for ( i = 1 ; i < a.length; i ++ ) {

if ( a[i]

if ( a[i]>Max ) Max = a[i];

}

System.out.println( Max+" "+Min );

System.out.println( );

}

}

答:在数组中查找并输出最大值和最小值

3.编写一个完整的Java Applet 程序使用复数类Complex验证两个复数1+2i 和3+4i 相加产生一个新的复数4+6i 。

复数类Complex必须满足如下要求:

(1) 复数类Complex 的属性有:

RealPart : int型,代表复数的实数部分

ImaginPart : int型,代表复数的虚数部分

(2) 复数类Complex 的方法有:

Complex( ) : 构造函数,将复数的实部和虚部都置0

Complex( int r , int i ) : 构造函数,形参r 为实部的初值,i为虚部的初值。

Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。

String ToString( ) : 把当前复数对象的实部、虚部组合成a+bi 的字符串形式,其中a 和b分别为实部和虚部的数据。

答:参考程序如下:

import java.applet.* ;

import java.awt.* ;

public class abc extends Applet

{

Complex a,b,c ;

public void init( )

{

a = new Complex(1,2);

b = new Complex(3,4);

c = new Complex();

}

public void paint(Graphics g)

{

c=https://www.doczj.com/doc/a914863183.html,plexAdd(b);

g.drawString("第一个复数:"+a.toString(),10,50);

g.drawString("第二个复数:"+b.toString(),10,70);

g.drawString("两复数之和:"+c.toString(),10,90);

}

}

class Complex

{

int RealPart ; // 复数的实部

int ImaginPart ; // 复数的虚部

Complex() { RealPart = 0 ; ImaginPart = 0 ; }

Complex(int r , int i)

{ RealPart = r ; ImaginPart = i ; }

Complex complexAdd(Complex a)

{

Complex temp = new Complex( ); // 临时复数对象

temp.RealPart=RealPart+a.RealPart;

temp.ImaginPart=ImaginPart+a.ImaginPart;

return temp;

}

public String toString( )

{ return ( RealPart+" + "+ImaginPart+" i "); }

}

4.编写一个学生类Student ,要求:

(1) 学生类Student 属性有:

id : long型,代表学号

name : String类对象,代表姓名

age : int型,代表年龄

sex : boolen型,代表性别(其中:true表示男,false表示女)

phone : String类对象,代表联系电话

(2) 学生类Student的方法有:

Student(long i , String n , int a , boolean s , long p)

: 有参构造函数,形参表中的参数分别初始化学号、姓名、

年龄、性别和联系电话。

int getAge() ( ) : 获取年龄作为方法的返回值。

boolean getSex( ) ( ) : 获取性别作为方法的返回值。

long getPhone ( ) : 获取联系电话作为方法的返回值。

public String toString( ) : 以姓名:联系电话的形式作为方法的返回值。

答:参考程序段如下:

class Student {

long id;

String name;

int age;

boolean sex;

long phone;

Student( long i , String n , int a , boolean s , long p ){

id = i;

name = n;

age = a;

sex = s;

phone = p;

}

int getAge(){ return age; }

boolean getSex(){ return sex; }

long getPhone() { return phone; }

public String toString(){ return name+" : "+phone; }

}

1. 什么叫构造函数重载?

答:是指同一个类中存在着若干个具有不同参数列表的构造函数。

2. Java语言有什么特点?

答:平台无关性、面向对象、安全稳定、支持多线程、简单易学

3. Java Applet的基本工作原理是什么?

答:编译好的字节码文件保存在特定的WWW服务器上,当某一个浏览器向服务器请求下载嵌入了Applet 的HTML文件时,该文件下载到客户端由浏览器解释HTML标记;当遇到HTML特殊的Applet标记时,浏览器回自动根据Applet的名字和位置把字节码下载到本地,由浏览器本身拥有的Java解释器直接执行。

4. 什么叫多线程?Java支持多线程有何意义?

答:多线程是指同时存在几个执行体,按几条不同的执行路线共同工作的情况。Java支持多线程使得编程人员可以方便地开发同时处理多任务的功能强大的程序,更好地解决现实世界的具体问题。

5. 什么是接口?如何定义接口?

答:接口是用来定义类间多重继承功能的结构。接口声明的语法:

[public] interface 接口名[extends 父接口名列表]

{ //接口体

//常量域说明

[public] [static] [final] 域类型域名= 常量名;

//抽象方法声明

[public] [abstract] [native] 返回值方法名(参数列表)[throw异常列表];

1.设计一个圆类,将圆的位置(圆心坐标和半径)作为属性(提供任意圆的设置),并能计算圆的面积。public class MyCircle {

double x,y,r;

final double pi = 3.1415926;

MyCircle(double x, double y, double r)

{

this.x = x;

this.y = y;

this.r = r;

}

public double getArea()

{

return pi*r*r;

}

public static void main(String[] args) {

}

}

平台无关性与可移植性

程序的可移植性指的是程序不经修改而在不同硬件或软件平台上运行的特性,可移植性在一定程度上决定了程序的可应用性。可移植性可分两个层次:源代码级可移植性和二进制可移植性。Java不仅是源代码级可移植的,甚至源代码经过编译之后形成的二进制代码——字节码,也同样是可移植的。

Java采用了多种机制来保证可移植性,其中最主要的有两条:

第一,Java既是编译型又是解释型的。Java将源程序编译成字节码——二进制代码,这种字节码通过Java解释器来解释执行。任何一台机器,只要配备了Java解释器,就可以运行Java字节码,而不管这种字节码是在何种平台上生成的。这不仅使开发的Java源代码是可移植的,甚至源代码经过编译之后形成的二进制代码——字节码,也同样是可移植的。Java源程序编译生成的字节码不是直接在操作系统平台上运行,而是在一个称为Java虚拟机(JVM)的平台上运行。利用JVM把Java字节码跟具体的软硬件平台分隔开来,就能保证在任何机器上编译的Java字节码文件都能在该机上运行。

第二,Java采用的是基于国际标准——IEEE标准的数据类型。Java的数据类型在任何机器上都是一致

的,它不支持特定于具体的硬件环境的数据类型,它还规定同一种数据类型在所有各种实现中必须占据相同的空间大小。此外,Java的可移植性还体现在Java的运行环境上。Java编译器是用Java语言本身所编写的,而其他运行时环境则是用ANSI C编写的,整个运行时环境体现了一个定义良好的可移植性接口。最后,Java语言规范遵循POSIX标准,这也是使Java具有良好可移植性的重要原因。

强制类型转换

强制类型转换是指在一个表达式中出现的各种变量或常量的数据类型不同时,所进行的数据类型转换(casting conversion)。Java程序中的类型转换可分为显式类型转换和隐式类型转换两种形式。

(1)隐式类型转换。对于由双目运算中的算术运算符组成的表达式,一般要求运算符两边的两个操作数的类型一致,如果两者的类型不一致,则系统会自动转换为较高(即取值范围较大)的类型,这便是隐式数据类型转换。根据操作数的类型,隐式转换的规则如下:

(byte或short)与int型运算,转换为int型;

(byte或short或int)与long型运算,转换为long型;

(byte或short或int或long)与float型运算,转换为float型

(byte或short或int或long或float)与double型运算,转换为double型;

char型或int型运算,转换为int型。

(2)显式类型转换。隐式类型转换只能由较低类型向较高类型转换,但是在实际工作中,有时也可能需要由较高类型向较低类型转换。例如,我们在计算数值时为了保证其精度,为某些变量取了较高的数据类型(如double型),但在输出时,往往只需要保留两、三位小数或者只输出整数,这时只能进行显式类型转换。显式类型转换需要人为地在表达式前面指明所需要转换的类型,系统将按这一要求把某种类型强制性地转换为指定的类型,其一般形式如下:

(<类型名>)<表达式>

java基础笔试题(答案已整理)

Java基础试题 一:选择题(1*30=30)(题目写在答题纸上面) 1:Java 提供哪几种运算符多选( abcd )。 A)算术运算符B)位运算符 C)关系运算符D)逻辑运算符E)条件运算符 2:https://www.doczj.com/doc/a914863183.html,ng包的()方法比较二个对象是否相等返回true.。(b) A:toString() B:equals() C:compare D:以上都不正确 3:下列对Java 的变量与函数说法正确的是多选(ace )。 A)变量是用来保存数据的B)变量是用来实现操作过程的C)函数是用来实现操作过程的D)函数是用来保存数据的E)函数的参数是数据的入口 4:已知:int[] a = new int[100];在下列给出的数组元素中,非法的是。(d) A:a[0] B:a[1] C:a[99] D:a[100] 5:在java中,一个类可同时定义许多同名的方法,在这些方法的形式参数个数,类型或顺序各不相同,传值也可以各不相同。这种面向对象程序的特性称为。(c) A:隐藏B:覆盖C:重载D:Java不支持此特性 6:()是一组常量和抽象方法的集合。(d) A:实例B:类C:包D:接口 7:下面关于数组说法正确的是多选(abcde)。 A)一维数组实质上是相同类型变量的列表 B)创建一个数组首先定义数组变量所需的类型 C)char c[]=new char[26];可声明一个含有26 个元素的char型数组 D)当为一个多维数组的时候分配内存时,仅需要为第一指定内存,然后再分配其他维的存E)int twain[][] = new int[4][5];可声明一个二维数组 8:Java源文件和编译后的文件扩展名分别为。(b) A:.class和.java B:.java各.class C:.class和.class D:.java和.java 9:设x=5;则y=x--和y=--x的结果,使y分别为。(c) A:5,5 B:5,6 C:5,4 D:4,4 10:若x是float类变量,x=10/4;则x 的值是。(b) A:2 B:2.0 C:2,5 D:编译错误 11:.下面方法中,用于调度线程使其运行的是?多选(bc ) A. init() B. start() C. run() D. resume() E. sleep() 12.下面哪种情况能实现自动转换多选(ace )。 A)byte 型转换成int 型B)int 型转换成byte 型 C)float 型转换成double型D)double 型转换成int 型E)char型转换成int 型 13:下列那些是正确的JAVA字符串?多选(abd )。 A. "\"\"" B. "Oxzabc" C. "\"\" D. "\t\t\r\n" E. "boolean"5 14:在使用super 和this关键字时,以下描述正确的是。(a) A::在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过 B:super()和this()不一定要放在构造方法内第一行

java期末考试知识点总结

java知识点总结 应同学要求,特意写了一个知识点总结,因比较匆忙,可能归纳不是很准确,重点是面向对象的部分。 java有三个版本:JAVA SE 标准版\JAVA ME移动版\JAVA EE企业版 java常用命令:java, javac, appletview java程序文件名:.java, .class java的两类程序:applet, application; 特点,区别,这两类程序如何运行 java的主方法,主类,共有类;其特征 java的数据类型,注意与C++的不同,如字符型,引用型,初值 java与C++的不同之处,期中已总结 java标记符的命名规则 1)标识符有大小写字母、下划线、数字和$符号组成。 2)开头可以是大小写字母,下划线,和$符号(不能用数字开头) 3)标识符长度没有限制 4)标识符不能使关键字和保留字 面向对象的四大特征 抽象、封装、继承、多态 封装,类、对象,类与对象的关系,创建对象,对象实例变量 构造函数,默认构造函数,派生类的构造函数,构造函数的作用,初始化的顺序,构造方法的重载 构造函数:创建对象的同时将调用这个对象的构造函数完成对象的初始化工作。把若干个赋初值语句组合成一个方法在创建对象时一次性同时执行,这个方法就是构造函数。是与类同名的方法,创建对象的语句用new算符开辟了新建对象的内存空间之后,将调用构造函数初始化这个新建对象。 构造函数是类的特殊方法: 构造函数的方法名与类名相同。 构造函数没有返回类型。 构造函数的主要作用是完成对类对象的初始化工作。 构造函数一般不能由编程人员显式地直接调用。 在创建一个类的新对象的同时,系统会自动调用该类的构造函数为新对象初始化。 类的修饰符:public类VS 默认; abstract类; final类; 1)类的访问控制符只有一个:public,即公共的。公共类表明它可以被所有其他类访问和引用。 若一个类没有访问控制符,说明它有默认访问控制特性,规定该类智能被同一个包中的类访问引用(包访问控制)。 2)abstract类:用abstract修饰符修饰的类被称为抽象类,抽象类是没有具体对象的概念类,抽象类是它所有子类的公共属性集合,用抽象类可以充分利用这些公共属性来提高开发和维护效率。 3)final类:被final修饰符修饰限定的,说明这个类不能再有子类。所以abstract与final 不能同时修饰一个类。 域和方法的定义 1)域:定义一个类时,需要定义一组称之为“域”或“属性”的变量,保存类或对象的数据。

JAVA程序设计期末考试题(多套含答案)

《JA V A程序设计》期末考试试题(五) 一、单选题 1、当某一线程正处于休眠状态,而另一个线程用Thread 类中的interrupt() 方法中断它时,抛出的异常类型是()。 A) IOException B) RuntimeException C) InterruptedException D) ClassNotFoundException 2、下面的程序段的功能是( )。 File file1=new File("d:\\xxx\\yyy\\zzz"); file1.mkdirs(); A)在当前目录下生成子目录:\xxx\yyy\zzz B)生成目录:e:\xxx\yyy\zzz C)在当前目录下生成文件xxx.yyy.zzz D)以上说法都不对 3、应用程序的main方法中有以下语句,则输出的结果是( )。 String s = "xxxxxxxxxxxxxxx#123#456#zzzzz"; int n = s.indexOf("#"); int k = s.indexOf("#", n+1); String s2 = s.substring(n+1, k); System.out.println(s2); A) 123456 B) 123 C) xxxxxxxxxxxxxxx D) zzzzz 4、关于下面的程序Test.java说法正确的是( )。 public class Test { String x="1"; int y; public static void main(String args[]) { int z=2; System.out.println(x+y+z); } } A)3 B)102 C) 12 D)程序有编译错误 5、应用程序的main方法中有以下语句,则输出的结果是( )。

java习题集及答案

JAVA语言与面向对象程序设计期末复习题 2011年上(一)单项选择题 1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和( B )特征。 A. 颜色 B. 动态 C. 状态 D. 重量 2.使用JDK编译Java程序时使用的命令是(B)。 A. java B. javac C. appletviewer D. javadoc 3.在Java程序中包含主方法的类被称为主类,主方法的访问控制修饰符为(C)。 A. private B. protected C. public D. static 4.在类的定义中,若需要把一个标识符定义为常量,则使用的修饰符为(B)。 A. const B. final C. static D. class 5.在程序中声明包的语句关键字为(D)。 A. volatile B. pack C. import D. package 6.在一个方法的方法头(声明)中向调用它的上一层方法抛出异常的子句关键字为(C)。 A. catch B. throw C. throws D. finally 7.在类定义首部的语法格式中,(B)不能作为其中的修饰符。 A. public B. protectd C. extends D. abstract 8.下列哪个类不是异常类的父类?(A)。 A. Error B. Throwable C. Exception D. Object 9.下面的关键字(C)与异常处理无关。 A. throw B. throws C. import D. finally 10.在读字节文件 Employee.dat 时,使用该文件作为参数的类是(D)。 A. BufferedReader B. DataInputStream C. DataOutputStream D. FileInputStream (二)填空题 1.Java类库也称为Java API,它是Application Programming Interface的缩写,中文含义为应用程序接口 2.Java语言中用于修饰类的成员具有保护或私有访问属性的关键字分别为________和________。protected、private 3.Java语言中的方法Math.random()返回0到 1 之间的一个随机小数。 4.假定没有给一个类XXK2显式地定义任何构造函数,则利用new运算创建该类的一个对象时,自动调用的构造方法为________。XXK2() 5.假定要在一个类中访问另一个类XXK4中的静态成员abc,则此访问应表示为________。XXK4.abc 6.在方法调用中,首先需要实参表中的实参向形参表中的形参进行传递,此传递分为_______传递和_______传递两种方式。按值、引用 7.Java语言中的类的体系结构为________结构。根节点为________类。层次(树状)、Object(https://www.doczj.com/doc/a914863183.html,ng.Object) 8.定义一个终结类需要在类首部的关键字class前使用的修饰符为final

java ee 期末试题 (1)要点

1、下列哪一项不是Java EE的常用技术(D) A、JSP B、Hibernate C、Spring D、JNDB 2、servlet与一般Java类的相同点是什么?(D) A、 B、Servlet是运行在Web服务器的一个Web组件 C、Servlet通常是通过HTTP协议回复Web客户端的请求 D、Servlet是运行在Web容器的Java类 3、以下哪一个是市场上流行的Java EE服务器(A) A、Apache B、tomcat C、glassfish D、netbeans 4、EJB的作用是(C) A、Servlet组件和JSP组件 B、用于丰富客户端图形界面显示 C、通过RMI/IIOP协议与EJB容器通信远处电泳EJB的功能方法,进而完成业务处理。 D、GUI交互界面的开发,负责与系统用户的交互 5、分析以下程序: public class x{ public static void main(String[]args){ String ol=new String("ABV"); String o2=new String("ABV"); if(o1.equals(o2)){ System.out.println("Equal"); } }该程序的执行结果是( B )。 A. 程序执行后无输出 B. 程序执行后输出“Equal” C. 程序在第5行出现编译错误 D. 程序执行后出现异常 6、执行完下面的程序片段后,下面哪些结论是正确的?(B) int a,b,c; a=1; b=2; c=(a+b>3?a++:++b); A. a的值是2,b的值是3 B. a的值是1,b的值是3 C.a的值是1,b的值是2 D.c的值是false 6、Struts框架的控制器主要由(C )负责。 A. EJB

Java考试简答题

简答5题30分 1.什么是GUI?举出三个AWT组件的类名,并说明AWT组件的一般功能。P99-101 GUI是图形用户界面; AWT组件: Button--按钮,功能:用户通过单击该组件来执行特定的操作; Label—标签,功能:用于输出文字信息,这些信息不可删除也不可修改; TextFiled—文本框,功能:用于显示或者接受用户键盘输入的单行文本信息,不能显示多行,这行信息可以修改。 2.什么是Frame、Panel?它们有什么区别?它们的默认布局是哪种布局?P101-104 (1)Frame是Window的子类,一个Frame对象就是一个有标题有边界的顶层窗口。 Panel是最简单的容器类,是Container的子类。 (2)区别:Panel是一般容器,可以自身嵌套(比如在panel1里嵌入panel2);但Frame 已经是顶层容器了,自身不能嵌套。 (3)Frame默认BorderLayout布局;Panel默认FlowLayout布局。 3.什么是事件、事件源、事件处理方法、事件监听器?举出两个事件的类名。P114-116 (1)事件:当用户在界面上执行一个操作,例如按下键盘、拖动或者单击鼠标时,都将产生一个事件。事件是用来描述所发生事情的对象,对应用户操作的不同种类有不同类型的事件类与之对应。 事件源:event source 是指一个事件的产生者。 事件监听器:就是调用事件处理方法的对象。 (2)两个事件的类名:WindowEvent窗口事件;ActionEvent活动事件。 4.写出绘制直线、矩形、椭圆的函数,并解释各自的形参的意义。P182-183 直线:DrawLine(int x1,int y1,int x2,int y2) 其中参数(x1,y1)和(x2,y2)是直线的起止坐标; 矩形:drawReat(intx,inty,intwidth,int height) 其中参数(x,y)是起点位置,width是宽,height是高。 椭圆:drawOval(intx,inty,intwidth,int height) 其中参数(x,y)是起点,width和height分别是内切圆的宽度和高度。 5.什么是Applet?写出它的4个主要方法,并说明它们的执行顺序。P195 (1)Applet是网页上的小程序. (2)init(){…} //初始化方法 start(){…} //开始方法 stop(){…} //停止方法 destroy(){…} //摧毁方法 (3)程序执行是从init()方法开始,init()初始化—> start()启动→stop()终止→destroy()消亡,结束 6.什么是异常?什么是致命错误?写出异常处理语句的结构。P202/205 (1)Java把程序运算中可能遇到的错误分为两类:一类是非致命的错误,可以通过修正后还可以继续运行,这种错误称为异常;另外一类则是致命错误,即系统遇到了十分严重的错误,不能简单的恢复,这就是致命错误,需要操作系统才能处理。 (2)异常处理的程序的一般结构是: try{…} catch(异常类型e){…} catch(异常类型e){…}

java期末考试试题及答案

1.谈谈final, finally, finalize的区别。 final关键字: a) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。 b) 将变量或方法声明为final,可以保证它们在使用中不被改变。 c) 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。 d) 被声明为final的方法也同样只能使用,不能重载。 finally关键字:在异常处理时提供finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入finally 块。 finalize:方法名,不是关键字。Java技术允许使用finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。 2.GC是什么? 为什么要有GC? GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一: System.gc() Runtime.getRuntime().gc() 3.Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 写程序Math.round(11.5) = 12 Math.round(-11.5) = -11 4.给我一个你最常见到的runtime exception ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

java简答题答案

注释:本文答案引用中华文本库. 答案中涉及各种图表均对应教材上图表. Java简答题复习题 简答题: 1、java语言有哪些特点? 简单性、面向对象、分布式、解释型、健壮、安全、与体系结构无关、可移植、高性能、多线程和动态执行。 2、java平台分为几类,它们的适用范围是什么? J2EE 为企业计算提供一个应用服务器运行和开发平台。 J2SE 为台式机和工作站提供一个开发和运行平台。 J2ME 为消费电子产品提供一个运行平台,使得java程序能在手机、机顶盒和PDA产品 上运行。 3、哪些数据类型可以充当swith语句的条件? 表达式的返回值类型必须是:byte short int char ,是基本数据类型而不是包装类。 4、Java编程规范? (1)有多个import语句时,先写java包,后写javax,最后写其他公司和自己定义的包。 (2)命名规则: 包名中的字母小写。 类名、接口名中每个单词首字母大写。

方法名、变量名第一个单词首字母小写,后面单词首字母大写。 常量中每个字母大写。 (3)适当保持缩进,便于阅读。 (4)有一定的注释量(20%--50%)。 5、构造方法和抽象? 构造方法: 具有与类相同的名称; 不含返回值; 不能在方法中用return 语句返回一个值; 当自定义了构造方法后,编译器将不再自动创建不带参数的构造方法。 抽象: 从被研究对象中舍弃个别的、非本质的或者与研究主旨无关的次要特征;抽取与研究有关的共性内容进行考察,形成对研究问题正确的、简明扼要的认识。 6、对象位于内存何处?声明能够引用对象的实质是什么? (1)对象位于堆内存中。 (2)声明能够引用对象的实质:在栈中保留了对象的地址。 7、基本数据类型和对象作为参数传递的不同? (1)基本数据类型作为参数在方法中传递的是值传递。 (2)对象是引用传递,当对象作为参数传递时,传递的是对象的地址。

java考试题型与要点

考试题型 一、选择题(20分,每题2分)10题 二、简答题(15分,每题5分)3题 三、程序填空(共45分,每空3分)3大题 四、编程题(20分)1大题 各章复习要点 第2 章Java基本语法 1、标识符 标识符的作用是用于标识程序中的各个元素。由字母、下划线(_)、美元符($)、数字(0~9)组成,数字不能开头。 2、关键字P20(浏览一下,留意学过的关键字) 3、数据类型 基本数据类型P20 图2-1 、P21 表2-1 各类型需要掌握的要点:类型名称、关键字,占用位数、取值范围(整数类型的取值范围取决 于占用位数,如:占用位数为n,则表示的范围是:-2n~2n-1) 4、运算符与表达式 自增、自减符号在变量的前后位置不同,表达式的结果是不一样的。 例如int a=1,b=2; System.out.print(a++>--b); 结果为false ++在a 变量后面,那表达式a++的值是取a 的值作为表达式的值,值为1。

--在b 变量之前,那表达式--b 的值是多少?先让b 自减1,而后在取b 的值作为表达式的值,即为1。最后a 自增1。 条件运算符?:例如:int x=-1,y; y=x>=0?x:-x; y 的值是? y 值为1 5、利用Scanner类输入 (1) 导入util 包。例如:import java.util.*; (2) 创建Scanner类对象引用。例如:Scanner s=new Scanner(System.in); (3) 获得键盘输入的数据,可以调用nextXXX()方法。获得整型数据,使用nextInt();获得双精度浮点数据,使用nextDouble();获得一字符串,使用nextLine()。例如int a=s.nextInt(); P29 例2-3 6、程序流程控制 顺序结构、选择结构(if(), ; if(), else, ; switch() case n,: ; [default: , ;])、循环结构(while(){ , }; do{, }while(); for(;;) , ) P49 例2-20、P60 例2-29 7、数组 一维数组的声明与创建 声明:类型数组名[ ] ;或类型[ ] 数组名; 创建:数组名=new 类型[数组长度]; 也可以声明与创建合并:类型数组名[ ]=new 类型[数组长度]; 注意等号左边的中括号中不要写出数组长度

JAVA期末考试复习试题

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)对象是类的抽象(C)对象 是类的子类(D)类是对象的具体实例8.下面哪一个是Java中不合法的标识符()。(A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形

式参数无返回值的方法method书写方法头,使得使用类名AB 作为前缀就可以调用它,该方法头的形式为( )。(A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接 口,下列哪个方法是正确的()。(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 (B).java和 .class (C).class和 .class (D) .java和 .java 12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类 的( )方法来完成一些画图操作。(A) start( ) (B) stop( ) (C) init( ) (D) paint( ) 13.对于一个Java源文件,import, class定义以及package正确的顺序是: (A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import 14.下面哪个是非法的:(A) int I = 32; (B) float f = 45.0; (C) double d = 45.0; (D) char c = ‘u’; //符号错15.Java语言使用的字符码集是(A) ASCII (B) BCD (C) DCB (D) Unicode 16. 如果一个类的成员变量只能在

Java试题及答案

一、单项选择填空(每小题2分,共50分) 1.下列不属于main方法的修饰词的是() A.public B.void C.static D.final 2.Java源程序经过编译后的文件类型是() A.字节码文件 B.可执行文件C.目标文件D.中间文件 3.下列关于运算符的结合性说法正确的是() A.算术运算符和条件运算符都是左结合(即从左至右)算术不一定++ 的前缀和后缀不一样 B.单目运算符是左结合C.关系运算符是左结合 D.赋值运算符是左结合 4.对于同一消息,对象可以产生不同的行为,这称为类的什么特性?() A.继承性B.抽象性C.封装性D.多态性 5.下面哪个是合法的布尔值() A.”false”B.false C.0 D.f 6.下面哪个是Java语言中的关键字?() A.sizeof B.abstract C.InstanceOf D.Native 7.哪种循环在条件表达式被计算之前至少执行循环体语句一次?() A.do-while循环B.for循环C.while循环D.以上都不是 8.以下哪个选项用以确定字符串的长度?() A.size B.length C.max_value D.length() 9.下面的语句哪个是正确的?() A.char=?abc?; B.long l=0xfff; C.float f=0.23 需加上f; D.double=0.7e-3; 10.下列哪个类的声明是错误的?() A.final abstract class A B.final class A C.protected class A D.public class A 11.下面程序段的执行结果是什么?() public class Foo{ public static void main(String[] args){ try{ return;} finally{System.out.println(“Finally!”);} }} A.程序正常运行,但不输出任何结果B.程序正常运行,并输出 Finally C.编译能通过,但运行时会出现例外D.因为没有catch语句块,所 以不能通过编译 12.设a=0,b=-3,则表达式(a>=1)&&++a<=12?b:a的结果为() A.1 B.2 C.0 D.-3 13.Java语言中,下列常量中是字符型常量的为() A.?\0xFFFF?B.?\u?C.?\\?转义字符D.”ABC” 14.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用____ 个比特位。()若是字节就是2个

java考试要点

1、什么是平台无关性?Java怎样实现平台无关性? 答:平台无关性是指一个应用程序能够运行于不同的操作系统平台。Java采用虚拟机技术支持平台无关性,不同操作系统需要相应的不同的Java虚拟机,由Java虚拟机执行Java源程序(*.java)编译生成的字节码文件(*.class),而不是由操作系统直接执行通常高级语言生成的可执行文件(*.exe)。 2、面向对象技术的三个核心特性是什么? 答:①类的封装性;②类的继承性;③类的多态性; 3、什么是封装?为什么要将类封装起来?封装的原则是什么? 答:封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”。为了增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。原则: 1、把尽可能多的东西藏起来.对外提供简捷的接口。 2、把所有的属性藏起来。 4、什么是多态性?什么是方法的重载?方法的重载和覆盖有什么区别? 答:多态是指一个方法可以有多种实现版本。方法重载:同一个类中的多个方法可以同名但参数列表必须不同。重载与覆盖的区别:1、方法的覆盖是子类和父类之间的关系,是垂直关系;方法的重载是同一个类中方法之间的关系,是水平关系。2、覆盖只能由一个方法,或只能由一对方法产生关系;方法的重载是多个方法之间的关系。3、覆盖要求参数列表相同;重载要求参数列表不同。4、覆盖关系中,调用那个方法体,是根据对象的类型(对象对应存储空间类型)来决定;重载关系,是根据调用时的实参表与形参表来选择方法体的。 5、什么是接口?接口和抽象类有哪些相同之处和不同之处? 答:接口是一组常量和抽象方法的集合;相同点:1.两者都包含抽象方法,约定多个类共用方法的参数列表和返回值。2.两者都不能被实例化。3.两者都是引用数据类型,其变量可被赋值为子类或实现接口类的对象。不同点:1.抽象类约定多个子类之间共同使用的方法;接口约定多个互不相关类之间共同使用的方法。2.抽象类与子类之间采用单重继承机制;一个类实现多个接口则实现了多重继承的功能。3.抽象类及其类中成员具有与普通类一样的访问权限;接口的访问权限有public和缺省两种,接口中成员的访问权限均是public。4.抽象类中可以包含非抽象方法,也可以生命构造方法;接口中的方法全部是抽象方法,不能声明构造方法。5.抽象类中可以声明成员变量,子类可以对该变量赋值;接口中只能声明常量。 6、什么是单重继承?什么是多重继承?类的层次体系为什么需要多重继承?单重继承有什么缺点?既然 有缺点,为什么java仍然采用单重继承?java怎样实现多重继承? 答:单重继承是指子类只能继承一个父类的属性和操作 多重继承是指子类可以继承了多个父类的属性和操作。因为单继承使得java结构简单,层次清楚,易于管理,更安全可靠,避免了c++中因多重继承而引起的难以预测的冲突。Java通过接口实现多重继承。 7、在什么情况下需要申明内部类?内部类有哪些特性? 答:当结构作为数组的元素类型时,或当一个类中需要使用结构时,可以将结构声明为内部类。 特征:内部类不能与外部类同名;内部类具有封装性;内部类具有继承性;内部类具有抽象性;使用点运算符“.”引用内部类;内部类具有类成员的4种访问权限;内部类具有静态特征。

java期末考试复习题及答案

《Java程序设计》课程试卷 1.使用Java语言编写的源程序保存时的文件扩展名是( B )。 (A).class (B).java (C).cpp (D).txt 2.设int a=-2,则表达式a>>>3的值为( C )。 (A)0 (B)3 (C)8 (D)-1 3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。 (A)a[0]; (B)a[a.length-1]; (C)a[3]; (D)int i=1; a[i]; 4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。 (A)封装(B)继承(C)覆盖(D)重载 5.在类的定义中构造函数的作用是( D )。 (A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量 6.下面关键字中,哪一个不是用于异常处理语句( B )。 (A)try (B)break (C)catch (D)finally 7.类与对象的关系是( A )。 (A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例 8.下面哪一个是Java中不合法的标识符( D )。 (A)$persons (B)twoNum (C)_myVar (D)*point 9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 (A)static void method( ) (B)public void method( ) (C)final void method( ) (D)abstract void method( ) 10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( C )。 (A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( ) (C)ArrayList myList=new List( ) (D)List myList=new List( ) 11.Java源文件和编译后的文件扩展名分别为( B ) (A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java

java简答题答案

第一章: 1.面向对象、跨平台性、健壮性、安全性、可移植性、多线程性、动态性等。 2.JRE(Java Runtime Environment,Java运行时环境),它相当于操作系统部分,提供了Java程序运行时所需要的基本条件和许多Java基础类,例如,IO类、GUI控件类、网络类等。JRE是提供给普通用户使用的,如果你只想运行别人开发好的Java 程序,那么,你的计算机上必须且只需安装JRE。 JDK(JavaDevelopment Kit,Java开发工具包),它包含编译工具、解释工具、文档制作工具、打包工具多种与开发相关的工具,是提供给Java开发人员使用的。初学者学习和使用Java语言时,首先必须下载和安装JDK。JDK中已经包含了JRE部分,初学者安装JDK后不必再去下载和安装JRE了。 3.path:path环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。 classpath:classpath环境变量也是系统环境变量中的一种,它用于保存一系列类(.class)文件的路径。当Java虚拟机需要运行一个类时,会先在classpath环境变量中所定义的路径下去寻找所需的class文件。如果classpath的路径最后有分号,则在classpath中找不到时,再到当前路径查找;如果最后无分号,则只在classpath设置的路径中查找。 4.JVM是JavaVirtual Machine的缩写,全称是Java虚拟机。Java语言的一个非常重要的特性就是跨平台性,而Java虚拟机是实现这一特性的关键。不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。Java 语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。 第二章: 1.Java语言的八种基本数据类型有:byte字节型,占一个字节。short短整型,占两个字节。int整型,占4个字节。long长整型,占8个字节。float单精度浮点型,占4个字节。double双精度浮点型,占8个字节。char字符型,占两个字节。boolean 型,表示逻辑值,有true和false两个值,分别占一个字节。 2.如果使用“&”在表达式之间进行连接,那么无论任何情况,“&”两边都会参与计算。如果使用“&&”进行连接,当“&&”左边的表达式为false时,就不会执行其右边的表达式。例如:定义int x = 2,y=0;执行输出表达式 boolean b = x0;的值时,会发生被0除的异常,因为“&”右边的表达式x/y>0的表达式执行了;而boolean b = x0;是不会出现这种异常的,因为“&&”左边的表达式x0就不会被执行。 3.方法重载指的是在一个类中可以声明多个同名的方法,而方法中参数的个数或者数据类型不一致。调用这些同名的方法时,JVM 会根据实际参数的不同绑定到不同的方法。 4.char型变量是用来存储Unicode编码的字符的,Unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在Unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:Unicode编码占用两个字节,所以char类型的变量也是占用两个字节。 5.break语句:在switch条件语句和循环语句中都可以使用break语句。当它出现在switch条件语句中时,作用是终止某个case 并跳出switch结构。当它出现在循环语句中,作用是跳出循环语句,执行后面的代码。 continue语句:continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。 return语句:return语句可以用于从当前的方法中退出,返回到该调用的方法的语句处,继续执行。return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致。 第三章: 1.构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。 2.单例模式可以保证在整个程序运行期间针对该类只存在一个实例对象。 3.Java语言中一个显著的特点就是引入了垃圾回收机制,使得Java程序员在编写程序的时候不再需要考虑内存管理。垃圾回收可以有效的防止内存泄露,有效地利用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清除和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。 4.在Java中共有四种代码块,它们分别是静态代码块、构造代码块、普通代码块和同步代码块。 静态代码块:在Java类中,使用一对大括号包围起来的若干行代码被称为一个代码块,用static关键字修饰的代码块称为静态代码块。当类被加载时,静态代码块会执行,由于类只加载一次,因此静态代码块只执行一次。在程序中,通常会使用静态代码块来对类的成员变量进行初始化。 构造代码块:直接在类中定义的没有加static关键字的代码块称为构造代码块。构造代码块在每次创建对象时都会执行。 普通代码块:在方法或语句中出现的代码块就称为普通代码块。普通代码块和一般的语句执行顺序由他们在代码中出现的次序决定,即“先出现先执行”。 同步代码块:Java对于多线程的安全问题提供了专业的解决方式,就是同步代码块。 synchronized(对象)//这个对象可以为任意对象 { 需要被同步的代码 } 对象如同锁,持有锁的线程可以在同步中执行,没持有锁的线程即使获取CPU的执行权,也进不去。 第四章: 1.在继承关系中,子类的方法与父类的某一方法具有相同的方法名、返回类型和参数列表,则称子类的该方法重写(覆盖)父类的方法。 2.多态意味着一个对象有着多种形态,可以在特定的情况下,表现不同的状态,从而对应着不同的属性和方法。简单的说,多态就是使用父类类型的变量引用子类对象,根据被引用子类对象的特性,程序会得到不同的运行效果。 3.在Java中,使用abstract关键字修饰的类称之为抽象类。抽象类是不能被实例化的,通常需要写一个子类来继承抽象类,同时实例化子类来获得该类的对象。抽象类通常用于表示一种抽象的概念。 接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。 4.方法重写(Overriding)和方法重载(Overloading)是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。 如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

Java简答题

1.简述Java语言中包(Package)的概念、意义和基本用法(package和import关键 字) 包是Java中区别类的名字的空间机制,是类的组织方式,是一组相关类和接口的集合,包提供了访问权限和命名管理机制。 (1)为了便于管理大型软件系统中数目众多的类,解决类命名冲突的问题,Java 引入了包(package)。提供了类的多重命名空间。 package语句必须是文件中的第一条语句。也就是说,在package语句之前,除了空白和注释之外不能有任何语句。 例如:package 如果不加package语句,则指定为缺省包或无名包。 包对应着文件系统的目录层次结构。 例如:.\com\bjsxt\java140; 在package语句中,用“.”来指明包(目录)的层次。 Class文件最上层包的父目录必须位于classpath下 比如:d:\java\testpackage 运行( class )也要写全包名 比如: java 引入包中的(某个)类。 import 引入整个包(包中所有类)。 import .*; 在同一包中的类可以互相引用,无需import语句。 中的包是自动加载的,无需import语句。

2.Java中的注释分为几种,请简述 三种类型: 1、单选注释:符号是: super与this的比较 比较super this 使用范围是由子类访问父类中 的内容是直接访问本类中的内容 访问属性时的格式super.父类属性, 如 果属性没有被复写, 则也可以不写super this.本类属性 访问方法时的格式super.父类方法(), 如果父类方法没有被 复写,则可以不写 super也表示调用父 类中的方法this.本类方法(),可以不写this,也表示调用本类的方法 访问构造函数时的格式super()是访问父类 中的构造方法,必须 放在首行 this()是访问本类中 的其他构造方法(注 意留入口!),必须放 在首行

相关主题
文本预览
相关文档 最新文档