oracle最新java试题(学生)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ORACLE软件工程师培训班JAVA基础试卷
一、单选题
1. 在面向对象方法中,实现信息隐蔽是依靠:
A)对象的继承 B)对象的多态C)对象的封装 D)对象的分类
2. 对成员的访问控制保护最强的是()。
A)public B)缺省 C)private D)protected
3.可用作Java标识符的是()。
A)#123# B)@ C)_date D)10years
4.属于Java输入输出流的、且处理的是char类型的类是()。
A)Reader类 B)InputStream类 C)OutputStream类 D)File类
5.用于存放创建后则不变的字符串常量是()。
A)String类 B)StringBuffer类 C)Character类 D)以上都不对
6. JDK中提供的文档生成器是()。
A)java.exe B)javap.exe C)javadoc.exe D)javaprof.exe
7. 下列语句中,属于多分支语句的是()。
A)if语句B)switch语句 C)do while语句 D)for语句
8.给定下列代码:
public class Person {
static int arr[] = new int[10];
public static void main(String a[]) {
System.out.println(arr[1]);
}
}
下列说法正确的有:( )
A. 编译时将发生错误。
B. 编译时正确但是运行时出错。
C. 输出为0。
D. 输出为null
9. 设有四个线程,它们的优先级分别为如下四种之一。
则那种级别的线程优先执行?( )
A. Thread.MIN_PRIORITY
B. Thread.MAX_PRIORITY
C. Thread.NORM_PRIORITY
D. 优先级别码为 7 级
10.设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x-x 的值是?( )
A. 0
B. 1
C. 2
D. 3
11. 在Java语言中,类Student是类Person的子类,Student的构造方法中有一句"super()",该语句表达了什么概念?
A. 调用类Worker中定义的super()方法
B. 调用类Person中定义的super()方法
C. 调用类Person的构造方法
D. 语法错误
12.在java中,哪一个关键字使类不能派生出子类。
A. final
B. public
C. private
D. volatile
13. 在Java语言中,下列语句中正确的是哪个?
A. String temp[]=new String {"j","a","z"};
B. String temp[]= new String() {"j","a","z"};
C. String temp= {"a","b","c"};
D. String temp[ ]= {"a", "b" ,"c"};
14 .下面答案中a,b结果正确的是:()
StringBuffer stringBuffer1 = new StringBuffer(“abc”);
StringBuffer stringBuffer2 = new StringBuffer(“abc”);
boolean a = ( stringBuffer1.equals(stringBuffer2));
String empA = new String (“abc”);
String empB = new String (“abc”);
boolean b = (empA == empB);
A)true false B)true true C)false false D)flase true
15. 编译并运行下面的代码,会打印出:( )
int i = 1;
switch(i){
case 0: System.out.println(“zero”);break;
case 1: System.out.println(“one”);break;
case 2: System.out.println(“two”);break;
default:System.out.println(“default”);
}
A. one
B. one, default
C. one, two, default
D. default
16. 编译并运行下面的代码,会发生什么情况?
public class Q {
public static void main(string argv[]){
int anar[] = new int[]{1,2,3};
System.out.println(anar[0]);
}
}
A. 1
B. Error anar is referenced before it is initialized
C. 2
D. Error size of array must be defined
17.阅读下列代码
public class Parent{
public int i = 10;
public Parent(int i){
this.i = 20;
}
}
class Son extends Parent{
public static void main(String[] g){
Son s = new Son();
System.out.println(s.i);
}
}
其运行结果是()。
A)10 B)20 C)不确定 D)编译出错
18. 下面不是JAVA的关键字或保留字是:( )
A. if
B. strictfp
C. var
D. synchronized
E. assert
19.为了编程需要,现需自己编写一个异常类。
一般说来,下面声明哪个最为合适?
A.class myClass extentds Exception{...
B.class myException extends Error{...
C.class myException extends RuntimeException{...
D.class myException extends Exception{...
20. 给定下列代码:
String s = "hello" + 30 + 5;
System.out.println(s);
String s1 = 30 + 5 +"hello";
System.out.println(s1);
下列输出结果正确的是:
A. hello305 35hello
B. hello35 305hello
C. 编译时出错
D.运行出错
21. 下列哪个类声明是正确的?( )。
A)abstract final class HI{···}B)abstract private move(){···}
C)protected private number; D)public abstract class Car{···}
22. 给定下列程序:
public class Test {
public static void main(String args[]) {
String str = new String("World");
char ch[] = { 'H', 'e', 'l', 'l', 'o' };
change(str, ch);
System.out.println(str + "and");
System.out.println(ch);
}
public static void change(String str, char ch[]) {
str = "Changed";
ch[0] = 'C';
}
}
上述程序的运行结果应该是?
A. WorldandHello
B. WorldandCello
C. ChangedandHello
D. ChangedandCello
23. Java运行时异常java程序时由Java运行时系统负责抛出的一系列异常。
本选择对于如下的程序,系统将抛出哪个运行时异常。
classQuiz4{
inta[]=newint[10];
a[10]=0;
}
A.ArithmeticException
B.ArrayIndexOutOfBoundsException
C.NegativeArraySizeException
D.IllegalArgumentException
24. 编译java Applet源程序文件将产生相应的结果文件,这些结果文件的扩展名是什么?
A. .java
B. .class
C. .html
D. .exe
25. 在类MyClass中定义了方法getResult(),其中包含语句:
double myresult=Math.sqrt(1000);
为了使此程序可用,需要导入什么包?( )
A. ng.*
B. java.Math.*
C. java.util.Math.*;
D. 以上皆非
26. 现在有两个类:Person与Chinese,Chinese试图继承Person类,如下项目中哪个是正确的写法?
A. class Chinese extents Person{}
B. class Chinese extants Person{}
C. class Chinese extends Person{}
D. class Chinese extands erson{}
27.执行下列代码后,哪个结论是正确的 String[] s=new String[10];( )
A s[9] 为 "";
B s[9] 为 0;
C s[0] 为未定义
D s.length 为10
28. 在下述程序中,判断i>j共执行的次数是( )
public static void main(String [] args)
{
int i=0, j=10, k=2, s=0;
for (;;)
{
i+=k;
if(i>j)
{
System.out.println(s);
break;
}
s+=i;
}
}
A)4 B)7
C)5 D)6
输出结果是()
A)10 B)12
C)30 D)42
29. Java是从()语言改进重新设计。
A)Ada B)C++
C)Pasacal D)BASIC
30.下列关于继承的哪项叙述是正确的?( )
A)在java中允许多重继承
B)在java中一个类只能实现一个接口
C)在java中一个类不能同时继承一个类和实现一个接口D)java的单一继承使代码更可靠
31.下列哪一种叙述是正确的()
A) abstract修饰符可修饰字段、方法和类
B)抽象方法的body部分必须用一对大括号{ }包住
C)声明抽象方法,大括号可有可无
D)声明抽象方法不可写出大括号
32. 阅读下列代码
public class TestDynDuotai{
public static void main(String[] g){
AA a = new CC();
a.show();
System.out.println(a.i);
}
}
interface AA{
int i = 78;
public void show();
public void display();
}
class CC implements AA{
int i = 89;
public void show(){
System.out.println(“kkk ”);
}
}
其运行结果是()
A)kkk B)89 C)kkk 78 D)编译出错
33. 运行下列程序段后
int a = 100, b = 20, c;
char oper = ‘+’;
switch(oper){
case ‘+’:
c = a + b;
case ‘-’:
c = a – b;
break;
default:
c = a * b;
break;
}
c 的值是:b
A)120 B)80 C)2000 D)不确定
34.int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是( )。
A.public int MAX_LENGTH=100
B.final int MAX_LENGTH=100
C.public const int MAX_LENGTH=100
D.public final int MAX_LENGTH=100
35.下列代码中,将引起一个编译错误的行是( )。
1)public class Test{
2)int m,n;
3)public Test() {}
4)public Test(int a) {m=a;}
5)public static void main(String args[]){
6)Test t1,t2;
7)int j,k;
8)j=0;k=0;
9)t1=new Test();
10)t2=new Test(j,k);
11)}
12)}
A.第3行
B.第5行
C.第6行
D.第10行
36.下列叙述中,正确的是( )。
A.Java语言的标识符是区分大小写的
B.源文件名与public类名可以不相同
C.源文件扩展名为.jar
D.源文件中public类的数目不限
37.下列属于合法的Java标识符是( )。
A._cat B.5books C.+static D.-3.14159
38.在Java中,表示换行符的转义字符是( )。
A.\n B.\f C.'n' D.\dd
39.在Java中,由Java编译器自动导入,而无需在程序中用import导入的包是( )。
A.java.applet B.java.awt C.java.util D.ng
二、填空题((1)~(30)每空1分,共15分)
(1)每个Java应用程序都要有且只有一个_main__ 方法,它是程序运行的开始点。
该方法的格式是__public static void main(String[] args)_
(2)在面向对象方法中,__类___ _描述的是具有相似属性与操作的一组对象。
(3)如果要在程序中使用键盘输入语句,则需要预先导入___java.io_包。
(4)在switch语句中,case的值必须是__ _基本数据类型_________。
(5)面向对象的三大基本特征是___ 封装____、继承、__多态_____
(6)任何一个Java程序都默认引入了一个包,这个包的名字叫__java。
Lang___。
(7)Java语言中,有一个类是所有类或接口的父类,这个类的名称是__Interface________。
(8)在面向对象概念中,每一个对象都是由_ __和___ _两个最基本的部分组成的。
(9)关键字__interface___是用来定义接口的。
使用关键字__implement___来定义某个类实现了接口。
(10)__continue_____语句可以终止当前一轮的循环,不再执行其下面的语句,直接进入下一轮的循环。
__break__语句可以使程序从一个语句体的内部跳出去,继续执行该语句体下面的语句。
三、简答题
1、String是最基本的数据类型吗?
不是
2、面向对象的特征有哪些方面?简述每个特征。
继承性子类可继承父类,可实现接口,节约代码,提高代码利用率
封装性用访问修饰符修饰成员和类以及接口,保证其安全性
多态性一个方法,多种功能
3、int 和 Integer 有什么区别?
Integrer 是一个类,int时其实咧
4、String 和StringBuffer的区别?
String在改变时将连接新的地址,stringbuffer不然
5、运行时异常与一般异常有何异同?
运行是异常不强制处理,其他的异常需要添加throws或try-catch
6、final, finally, finalize的区别?
Final 修饰的方法不可重写,类不可继承,变量不可更改
Finally 在try语句后,无论try运行顺利与否一律执行
7、Overload和Override的区别。
Overloaded的方法是否可以改变返回值的类型?
重载:函数名相同,参数列表不同,作用与相同。
重写:在不同类中,存在继承关系,函数名、参数均相同
8、abstract class和interface有什么区别?
抽象类是类,所以不可多继承,接口可以多个实现。
抽象类中允许有非抽象函数。
9、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
可以,可以,可以
10、数组有没有length()这个方法? String有没有length()这个方法?
数组中有length,String有length()
11、构造器Constructor是否可被override?
可以
12、是否可以继承String类?
可以
13、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
可以,可以,不可以
14、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
会,之后
15、简述Java多态性的概念,隐藏、覆盖和重载的概念及使用时应注意的问题。
多态:一种方法,在不同情况下多种不同
覆盖:对父类的方法修改,实子类在运行同名方法时功能不同;
重载:对同一类的方法修改,使其在不同环境下功能不同
16、简述Java中构造方法的概念及特点。
每个类都有构造方法,构造方法的作用是在创建对象时对其进行初始化。
四、程序解析题
1.下列代码哪几行会出错:并说明理由.
1) public void modify() {
2) int I, j, k;
3) I = 100;
4) while ( I > 0 ) {
5) j = I * 2;
6) System.out.println (" The value of j is " + j );
7) k = k + 1;
8) I--;
9) }
10) }
2.给定下列代码:
public void test() {
try { oneMethod();
System.out.println("condition 1");
return;
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("condition 2");
} catch(Exception e) {
System.out.println("condition 3");
} finally {
System.out.println("finally");
}
}
在方法oneMethod()运行正常的情况下程序执行的流程是什么?Condition 1
Finally
五、阅读程序写结果
1、class V1{
int a=1;
void m1(){ System.out.println(a); }
}
class E1 extends V1{
int a=2,b=3,c;
void m2(){ System.out.println(a); }
}
class H{
public static void main(String[] s){
E1 e1=new E1();
e1.m1(); e1.m2(); }
}
2
2
2、class V1{
public int x=2;
V1(){ System.out.println("V1"); }
}
class V2 extends V1{
public int x=3;
V2(){ System.out.println("V2"); }
}
class H{
public static void main(String[] s){
V1 e1=new V2();
System.out.println(e1.x); } }
V2
2
3、import java.io.*;
public class abc
{ public static void main(String args[ ])
{ AB s = new AB("Hello!");
System.out.println(s.toString( ));
}
}
class AB {
String s1;
String s2;
AB( String str1 , String str2 )
{ s1 = str1; s2 = str2; }
public String toString( )
{ return s1+s2;}
}
报错
4、 import java.io.* ;
public class abc
{
public static void main(String args[ ])
{ int i , s = 0 ;
int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };
for ( i = 0 ; i < a.length ; i ++ )
if ( a[i]%3 = = 0 ) s += a[i] ;
System.out.println("s="+s);
}
}
S=180
5、 class V1{
public int x=4;
V1(){ System.out.println("V1"); }
}
class V2 extends V1{
public int x=7;
V2(){ System.out.println("V2"); }
}
class H{
public static void main(String[] s){
V1 e1=new V2();
System.out.println(e1.x); }
}
V2
4
6、class V1{
int a=3;
void m1(){ System.out.println(a); }
}
class E1 extends V1{
int a=5,b=3,c;
void m2(){ System.out.println(a); }
}
class H{
public static void main(String[] s){
E1 e1=new E1();
e1.m1(); e1.m2(); }
}
5
5
六、程序设计题
1、输出101-200之间所有的素数
2、输出100-999之间所有的水仙花数。
(水仙花数数指一个三位数,其各位数字立方和等于该数本身。
如:153=1的三次方+5的三次方+3的三次方。
3、利用system.in输入5个数,把这个5个数排序后从小到大输出
1.
Class Sushu{
Public static void main(String[] args){
For(int a = 101; a<= 200; a++){
For(int i = 2; i<a; i++){
If(a % i != 0&&I = a-1) System.out.println(a);
}
}
}
}
2.
Class Shuixian{
Int b, c, d;
Public static void main(String[] args){
For(int a = 100; a< 200; a++){
b = a/100;
c = (a-100*b)/10;
d = (a-100*b-10*c);
if(a == b*b*b+c*c*c+d*d*d) system.out.println(a);
}
}
}
3.
Class Paixu{
bufferedReader br = new bufferedReader(new inputStreamReader(System.in));
Public static void main(String[] args){
Int[] ele = new ele[5];
For(int a = 0; a< 5; a++){
Ele[a] = new Integer(br.readLine());
}
For(int i = 0; a< 5; j++){
For(int j = i+1; a< 5; j++){
If(ele[i]>ele[j]){
Int temp = ele[i];
Ele[i] = ele[j];
Ele[j] = temp;
}
}
System.out.println(ele[i]);
}
}
}
(注:文档可能无法思考全面,请浏览后下载,供参考。
)。