Java工程师认证工信部考试2文档格式.docx
《Java工程师认证工信部考试2文档格式.docx》由会员分享,可在线阅读,更多相关《Java工程师认证工信部考试2文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
D.IndexOutOfBoundsException下标越界
5)执行下面程序,输出的结果是?
B
1,publicclassTest{
2,publicstaticvoidmain(String[]args){
3,inta=5;
4,doubleb=8;
5,a=a+++b;
int型不够装入double型
6,System.out.println(a);
7,}
8,}
A.第4行编译报错
B.第5行编译报错
C.编译成功,输出13
D.编译成功,输出14
6)在JavaAPI文档中哪些节是包含在class文档内的?
(多选)ABC
A、class的描述以及相关内容
B、成员变量列表
C、类的层次结构图
D、父类的方法列表
7)关于被保护访问控制符protected修饰的成员变量,以下说法错误的是?
A、能被同一包内的类访问,也能被同一包内的子类访问
B、只可以被两种类访问和引用:
该类本身、该类的所有子类
C、可以被三种类所引用:
该类本身、与它在同一个包中的其他类、在所有继承该类的子类
D、能被同一包内的类访问,也能被其它包内的子类访问
//prptected可以被同一包的类、该类的所有子类(同包&
不同包)访问,
可以被该类本身,同一包的其他类和其所有继承的子类引用
8)以下哪个可以用来描述文件和目录对象?
A、File
B、Directory
C、FileDescriptor
D、FileNameFilter
9)执行以下代码会输出什么结果?
publicclassTest{
StringgetStr(Strings){
returns+“hello”;
}
publicstaticvoidmain(Stringarg[]){
Testt=newTest();
System.out.println(t.getStr(“LiLei\n”));
}
A.编译报错
B.LiLei
hello
C.LiLeihello
D.无任何输出
10)下面程序的输出结果是?
publicclassTest{
publicstaticvoidmain(String[]args){
Strings=“abcdsfghi”;
String[]arr=s.split(“\s”);
//变成\\s
System.out.println(arr.length);
}
A.编译报错
B.2
C.1
D.3
11)以下的程序的执行结果为?
C
1publicclassDemo{
2publicdoublegetHeight(){
3return171.0;
4}
5publicintgetHeight(){
6return171;
7}
8publicstaticvoidmain(String[]args){
9Demodemo=newDemo();
10System.out.println(demo.getHeight());
11}
12}
A.输出171.0
B.输出171
C.第2行和第5行编译报错
D.第10行编译报错
12)执行以下代码后,下面哪些描述是正确的?
1publicclassStudent{
2privateStringname=“Jema”;
3publicvoidsetName(Stringname){
4this.name=name;
5}
6publicStringgetName(){
7returnthis.name;
8}
9publicstaticvoidmain(String[]args){
10Students;
11System.out.println(s.getName());
13}
A.输出null
B.第10行编译报错
C.第11行编译报错
D.输出Jema
13)JAVA面向对象的特征有?
(多选)ACD
A.封装;
B.类;
C.继承;
D.多态;
14)以下是JAVA中正确的入口方法是?
A
A.publicstaticvoidmain(String[]args){}
B.publicstaticvoidmain(Stringargs){}
C.publicvoidmain(String[]args){}
D.publicstaticintmain(String[]args){}
15)关于JAVA赋值,下面哪些值的说明是正确的(多选)?
ABC
A.'
\n'
是表示char类型的换行字符;
B.010是表示8进制的int类型值;
C.1.0f表示float类型的值;
D.20L是表示int类型的值;
//L表示long
16)阅读以下代码:
D
publicstaticvoidmain(){
System.out.println(“x=”+x);
请问,代码运行的结果是?
A.x
B.x=x
C.“x=”+5
D.编译报错
17)执行以下代码,输出结果的结果是?
C//静态的只能调用静态的,非静态的可调用静态的
publicString[]ss=newString[5];
System.out.println(ss[1]);
//报错
A.null
B.-1
C.编译时出错
D.运行时报错
18)如下代码:
publicvoidTest(){
try{
oneMethod();
System.out.println("
condition1"
);
}catch(ArrayIndexOutOfBoundsExceptione){
condition2"
}catch(Exceptione){
System.out.println("
condition3"
}finally{
finally"
}
如果oneMethod正常运行,则输出结果中是?
A
A.condition1finally
B.condition2finally
C.condition3finally
D.finally//用于异常捕捉,无论是否会报异常,finally语句块都会执行。
final修饰变量,修饰成常量,值不可以改变。
修饰方法,该方法不能被重写,但能被重载。
修饰类,该类不能被继承。
19)关于JAVA中数据类型描述正确的是?
(多选)AD
A.double型是基本数据类型
B.Double型是基本数据类型
C.double型是引用数据类型
D.Double型是引用数据类型
20)下面哪段语法执行正确?
(多选)AC
A.Strings="
Gonewiththewind"
;
Stringt="
good"
Stringk=s+t;
B.Strings="
Stringt;
t=s[3]+"
one"
C.Strings="
Stringstandard=s.toUpperCase();
变大写
D.Strings="
homedirectory"
Stringt=s-"
directory"
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
二、简答题(共5题,每题5分,共25分)
1)请简述final和finally的区别,并说明各自的用途。
finally用于异常捕捉,无论是否会报异常,finally语句块都会执行。
final修饰变量,该变量就成常量,值不可以改变。
2)请描述什么是方法的重写、什么是方法的重载。
重写:
重载:
3)String如何与字节数组相互转换?
请写出相应的方法。
//字符串转换成字节数组
Strings="
welcometozjxy"
char[]array=s.toCharArray();
for(chararr:
array){
System.out.print(arr);
}
System.out.println();
//将字节数组转换成字符串
char[]array1={'
a'
'
t'
r'
};
Strings1=newString(array1);
System.out.print(s1);
4)请写出面向对象的三大特征,并做简要说明。
封装:
将功能封装成一个个独立的单元,减小耦合,方便对程序的修改
继承:
代码重用,减少编码量,间接减少维护成本。
多态:
不同的场合做出不同相应
5)请描述一下JAVA中抽象类与接口的异同点。
1.一个类只能继承一个抽象类,一个类可以实现多个接口
2.接口中不能含有静态代码块和静态方法,而抽象类可以
3.抽象类可以提供成员方法的实现细节,而接口中只能存在抽象方法
4.抽象类中的成员变量可以是各种类型,而接口中的成员变量只能是publicstaticfinal类型
三、编程题(共2题,共35分)
1)现有一个数组fromNums,数组的值为{76,23,98,65,21},要求实现将该数组中的值复制到另一个数组toNums中。
(15分)
提示:
使用System.arraycopy();
/**
*1)现有一个数组fromNums,数组的值为{76,23,98,65,21},
*要求实现将该数组中的值复制到另一个数组toNums中。
*@authorAdministrator
*
*/
publicclassTest7{
publicstaticvoidmain(String[]args){
int[]fromNums={76,23,98,65,21};
int[]toNums=newint[fromNums.length];
//第一种
/*for(inti=0;
i<
fromNums.length;
i++){
toNums[i]=fromNums[i];
}*/
System.arraycopy(fromNums,0,toNums,0,fromNums.length);
//遍历数组
for(intto:
toNums){
System.out.print(to+"
"
2)现有一个字符串:
“welcometoChina!
”,要求使用代码实现将该字符串转换成以下格式:
“WelcomeToChina!
”。
(20分)
提示:
首先对字符串按空格(\s)进行分割,再将首字母变成大写。
**
*现有一个字符串:
”,
*要求使用代码实现将该字符串转换成以下格式:
“Welcome_To_China!
”
publicclassTest8{
welcometoChina!
"
//对字符串进行分割
String[]array=s.split("
\\s"
/*Stringss="
for(inti=0;
i<
array.length;
ss+=array[i].substring(0,1).toUpperCase()+array[i].substring
(1);
System.out.println(ss);
*/
/*for(Stringa:
System.out.println(a);
//方法二
StringBuffersb=newStringBuffer();
sb.append(array[i].substring(0,1).toUpperCase()).append(array[i].substring
(1)).append("
System.out.println(sb.substring(0,sb.length()-1));
补充
*定义一个数组,在中间位置添加一个数
publicclassTest9{
int[]array={34,5,112,55,783,23,899};
int[]newArray=newint[array.length+1];
//前半部分
array.length/2;
newArray[i]=array[i];
//中间部分
newArray[array.length/2]=119;
//后半部分
for(inti=array.length/2;
i<
array.length;
newArray[i+1]=array[i];
for(inta:
newArray){