07月
1(单选题)如果要按照特定顺序保存元素,应当使用的容器是( ) A.HashMap B.ArrayList C.TreeSet D.数组 正确答案:C本题考查TreeSet保存元素,会以特定的顺序保存元素选项C正确。2.(单选题)下列关于变量作用域的说法中,正确的是( )。
·
1(单选题)如果要按照特定顺序保存元素,应当使用的容器是( )
A.HashMap
B.ArrayList
C.TreeSet
D.数组
正确答案:C
本题考查TreeSet保存元素,会以特定的顺序保存元素
选项C正确。
2.
(单选题)下列关于变量作用域的说法中,正确的是( )。
A.在main()方法中任何位置定义的变量,其作用域为整个main()方法
B.块中定义的变量,在块外也是可以使用的
C.变量的作用域为:从定义处开始,到变量所在块结束位置
D.变量的作用域不受块的限制
正确答案:C
本题考查变量的作用域
Java中变量的作用域以语句块为标志,变量只在定义它的语句块内有效。选项C正确。
3.
(单选题)在Java中,如下代码的正确结果为()。
double dou = 5/2;
System.out.println(dou);
A.2
B.2.5
C.0
D.2.0
正确答案:D
此题目考查的是Java中的算术运算符。
在本题是,因为5和2都是int类型,所以相除的结果会舍弃小数位,只保留整数位的2,将int类型的2赋值给double型的变量,进而结果为2.0,所以本题选项D是正确的。
4.
(单选题)关于构造方法,下面说法正确的是( )。
A.构造方法不能带有参数
B.构造方法的名称必须和类名相同
C.构造方法可以定义返回值类型
D.构造方法不能重载
正确答案:B
本题考查构造方法的概念
Java中的构造方法,是用来初始化成员变量和创建对象的。构造方法的语法要求如下:
* 构造方法方法名必须与类名相同
* 构造方法可以有参数,可以根据传参的方式,初始化对象的成员变量
* 构造方法的定义不能有返回值类型,即使void也不可以使用
* 一个类可以定义多个构造方法,方法名都与类名相同,参数不同,即为重载
根据以上描述,本题只有选项B正确
5.
(单选题)在Java中,关于抽象方法的说法正确的是()。
A.抽象方法可以有方法体。
B.抽象类中的方法都是抽象方法。
C.抽象方法可以出现在非抽象类中。
D.抽象方法是没有方法体的方法。
正确答案:D
此题目考查的是Java的抽象方法。
在Java语言中,抽象方法指的是只有方法的定义,没有方法的具体实现的方法(没有方法体)。所以选项D是正确的,选项A是错误的。
Java规定,包含抽象方法的类必须是抽象类,所以选项C是错误的。
抽象类中可以有抽象方法也可以有非抽象方法。所以选项B是错误的。
6.
(单选题)下面的程序输出的结果是( )
// 已知 'T' 的int值为84,'t' 的int值为116
String s1="TEDU",s2="tedu";
System.out.println(s1.compareTo(s2));
A.-32
B.32
C.false
D.true
正确答案:A
本题考查compareTo()方法。
String 类实现了Comparable接口,并实现了compareTo()方法
方法在实现中,将两个字符串内容中的字符进行ASCII码值减的操作,
从前往后减,如果第一个字符相同,就操作第二个字符,再次减,直到
运行到不相同的字符,将结果返回,如果字符内容和大小写都相同,则返回0
本题程序中,字符‘T’-‘t’值为-32。
选项A正确。
7.
(单选题)实现Point类的equals方法,具体逻辑为:“成员变量x和y分别相等的Point对象被视为相等”。
public class Point {
private int x;
private int y;
...
public boolean equals(Object obj) {
《填入代码》
}
}
《填入代码》处应填入的代码正确的是:
A.if(obj.x == this.x || obj.y == this.y){
return true;
}
return false;
B.if(!(obj instanceof Point)) return false;
if(((Point)obj).x == ((Point)obj).y && this.x == this.y){
return true;
}
return false;
C.if(!(obj instanceof Point)) return false;
if(((Point)obj).x == this.x && ((Point)obj).y == this.y){
return true;
}
return false;
D.if(obj.x == this.x && obj.y == this.y){
return true;
}
return false;
正确答案:C
本题考查equals方法的重写。
选项A错误,必须将参数强制转换到Point类型,才能访问Point类中的x和y
选项B错误,不符合题目中的需求,需要比较的是两个对象的x和y
选项C正确
选项D错误必须将参数强制转换到Point类型,才能访问Point类中的x和y
8.
(单选题)Java源程序经过编译会生成相应的字节码文件,这些字节码文件的扩展名为()。
A..java
B..class
C..exe
D..html
正确答案:B
此题目考查的是Java的行业知识。
在Java语言中,字节码文件的后缀名为.class。所以本题正确选项为B。
9.
(单选题)Java中给一个boolean变量赋值时,可以使用()方式:
A.boolean b1 = "真";
B.boolean b1 == true;
C.boolean b1 = 1;
D.boolean b1 = (10>5);
正确答案:D
此题目考查的是对boolean变量的赋值。
boolean类型为布尔型,只允许取值为true和false,true表示条件成立而false表示条件不成立。适用于关系运算和逻辑运算,一般用于程序的流程控制。
因为boolean只允许取值为true和false,所以选项A 赋值为"真"是错误的。
在java中=号是在赋值,而==意为相等的判断,因此选项B是错误的。
将boolean变量赋值为1也是不合法,故而选项C是错误的。
10>5为关系运算,返回的结果就是boolean型,所以选项D是正确的。
10.
(单选题)下列Java代码的输出结果是()。
public class Test {
public static void main(String[] args) {
int[] arr = new int[5];
arr[5] = 88;
System.out.println(arr[5]);
}
}
A.0
B.88
C.编译错误
D.运行异常
正确答案:D
此题目考查的是Java中的数组。
在Java语言中,数组的下标从0开始,最大下标为数组的长度-1,本题中,arr数组包含5个元素,所以最大下标为4,故而在使用下标5时会出现数组下标越界的异常,本题选项D是正确的。
11.
(单选题)在Java中,下面代码段的输出结果是()。
public class Test {
public static void main(String[] args) {
Aoo aoo = new Aoo(8);
aoo.show();
}
}
class Aoo{
int num;
public Aoo(int num) {
this.num = num;
}
public static void show(){
System.out.println(num);
}
}
A.0
B.8
C.编译错误
D.运行异常
正确答案:C
此题目考查的是Java中的静态方法。
在Java语言中,通常的方法都会涉及到对具体对象的操作,这些方法在调用时,需要隐式的传递对象的引用this,而有一些方法不需要针对某些对象进行操作,其运行结果仅仅与输入的参数有关,这时此方法需要由static修饰为静态方法。因为静态方法没有隐式的this传递,所以在静态方法中不能直接访问实例成员,所以本题在静态方法show()中访问实例成员num是不正确的,所以本题正确选项为C。
12.
(单选题)对保存在List中的数据进行查找,方法不正确的是( )。
A.对元素进行遍历,依次比较
B.对内容有序的List可以进行二分法查找
C.调用indexOf方法查找
D.无论是否有序都可以用二分法查找,比线性查找快很多
正确答案:D
本题考查对List集合元素的查找
选项D说法不正确,二分查找法,必须是对有序的元素。
13.
(单选题)System.out.println(3+4+"tedu"+3+4);
的打印结果:( )
A.34tedu34
B.7tedu7
C.7tedu34
D.34tedu7
正确答案:C
本题考查程序的执行顺序。
输出语句中,先执行3+4,结果是7,再执行7+"tedu",结果是7tedu
再+3,结果是7tedu3,在加4,结果是7tedu34
选项C正确
14.
(单选题)给出下面的代码段 :
public class Base{
int w, x, y ,z;
public Base(int a,int b) {
x=a; y=b;
}
public Base(int a, int b, int c, int d) {
// ...
w=d;
z=c;
}
}
在代码// ... 处写入如下哪个代码是正确的?( )。
A.Base(a,b);
B.x=a, y=b;
C.this(a);
this(b);
D.this(a,b);
正确答案:D
本题考查this关键字的使用。
在构造函数中,调用构造函数的时候,必须使用this调用,而且必须是构造函数中的第一条语句,选项AC错误,选项B中,x=a必须使用分号结尾。选项D正确。
15.
(单选题)阅读如下代码:
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("aaa");
list.add("aaa");
list.add("aaa");
迭代该集合中的元素,下列待填入处应补充的是( )。
for(/*待填入*/){
System.out.print(str);
}
A.List list : String str
B.String str : List list
C.list : String str
D.String str : list
正确答案:D
本题考查使用增强的for循环,迭代集合ArrayList
增强的for循环使用如下:
For(String str : list){.....}
选项D正确
16.
(单选题)阅读下列代码:
class Emp{
private int empNo;
private String ename;
public int getEmpNo() {
return empNo;
}
public void setEmpNo(int empNo) {
this.empNo = empNo;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public int hashCode() {
return empNo;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Emp other = (Emp) obj;
if (empNo != other.empNo)
return false;
return true;
}
public static void main(String[] args) {
Emp e1 = new Emp();
e1.setEmpNo(1001);
e1.setEname("刘苍松");
Emp e2 = new Emp();
e2.setEmpNo(1001);
e2.setEname("Robin");
System.out.println(e1==e2);
System.out.println(e1.equals(e2));
}
}
运行该类,输出结果是( );
A.false false
B.false true
C.true false
D.true true
正确答案:B
本题考查equals和==的区别
Object类中默认equals()方法和==没有区别,本类中重写了equals()方法,如果empNo相同,两个Emp对象的equals()方法,即会返回true。
选项B正确。
17.
(单选题)如下程序:
String str = "I can do it because I think I can";
int index1 = str.indexOf("can");
int index2 = str.lastIndexOf("can");
int result = index1 + index2;
result结果是:( )。
A.2
B.30
C.32
D.-1
正确答案:C
本题考查字符串检索
int indexOf(String str) 在字符串中检索str,返回其第一次出现的位置,如果找不到返回-1.
int lastIndexOf(String str)str在字符串中多次出现时,将返回最后一个出现的位置。本题中index1 = 2;index2 = 30;result=2+30=32;
选项C正确。
18.
(单选题)以下程序运行结果是:
class Demo {
int x;
public static void main(String[] args) {
Demo d = new Demo();
d.x = 8;
show(d);
System.out.println("x="+d.x);
}
public static void show(Demo d) {
d.x = 7;
}
}
A.x=8
B.会出现语法编译错误
C.x=7
D.以上都不对
正确答案:C
本题考查调用带有引用类型的参数
调用带有引用类型的参数,传递的是对象的引用,方法中操作该参数,操作的
是传递到该方法中的具体对象。
本题目中,创建一个对象,变量d存储了该对象在内存中的地址信息,通过
d.x = 8,修改了该对象的x值,然后调用show()方法,将该引用传递给show方法
show()方法中,再次修改了该对象的x值为7,所以最后运行结果x=7
选项C正确
19.
(单选题)Outer类中定义了一个成员内部类Inner,需要在main()方法中创建
Inner类实例对象,以下四种方式正确的是( )。
A.Inner in = new Inner();
B.Inner in = new Outer.Inner();
C.Outer.Inner in = new Outer.Inner();
D.Outer.Inner in = new Outer().new Inner();
正确答案:D
本题考查静态方法创建实例内部类对象
内部类的最重要的一个特点就是它可以直接访问它外部类的成员变量。成员变量是
对象身上的。对象创建完成了,才会为成员变量分配空间。能调用成员变量,
意味着一定有了实例对象.
main方法是静态的,它执行的时候可以不用创建那个对象。这就矛盾了。
main方法运行的时候没有任何外部类的实例对象。我们的内部类的实例对象创建了
它又可以访问外部类的成员变量,外部类的实例对象在哪儿了?
所以这个原因,要想创建内部类的实例对象,必须创建外部类的实例对象
选项D正确。
20.
(单选题)分析如下Java代码,如果想在控制台上输出"B类的test()方法",
则在1处应填入( )。
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
public static void main(String args[]) {
// 1
}
}
A.A a = new B();
a.test();
B.A a = new A();
a.test();
C.B b = new A();
b.test();
D.B.test();
正确答案:A
本题考查面向对象的特性之一多态。
实现多态的条件是继承和重写,定义父类型的引用指向子类的对象
本题中类B继承了类A,子类中重写了父类的方法test()。
选项A,在继承和重写的前提下,父类A类型的引用变量a指向了子类
B创建的对象。a.test(),会调用子类中的test()方法,会满足题目要求
选项A正确。
21.
(单选题)score是一个整数数组,有五个元素,已经正确初始化并赋值,
仔细阅读下面代码,程序运行结果是( )。
int temp = score[0];
for (int index = 1;index < 5;index++) {
if (score[index] < temp) {
temp = score[index];
}
}
A.求最大数
B.求最小数
C.找到数组最后一个元素
D.编译出错
正确答案:B
本题考查对数组元素遍历的操作
循环体中,依次访问数组中第一个元素之后的每个元素,并与第一个元素比较
如果小于第一个元素,将该元素赋值给变量temp,最后temp的值为数组中
的最小元素
结果为选项B,求最小数。
22.
(单选题)Java代码的运行结果是( )。
class Account {
private String name; // 名字
private int state; // 账号状态
private String idCard; // 身份证号
public void Account() {
name = "李强";
state = 0;
idCard = "109...";
System.out.println("执行构造方法。");}
public void show() {
System.out.println
("账务账号的名字是" + name + ",状态是"
+ state + ",身份证号是" + idCard + "。"); }
public static void main(String[] args) {
Account acc = new Account();
acc.show();}
}
A.账务账号的名字是null,状态是1,身份证号是109...。
B.执行构造方法。
账务账号的名字是null,状态是1,身份证号是null。
C.账务账号的名字是null,状态是0,身份证号是null。
D.执行构造方法。
账务账号的名字是李强,状态是1,身份证号是109...。
正确答案:C
本题考查构造方法的特点和作用
构造方法必须与类名相同,没有返回值类型。如果没有定义构造方法,系统会提供无参
的构造方法。构造方法用来初始化成员变量和创建对象。当使用某个构造方法,创建对象的时候,系统会自动调用该构造方法。构造方法在初始化成员变量的时候,给成员变量添加初值。整型为0,字符串类型为null。本题中,定义的Account()方法,与类名相同,但并非是构造方法,只是普通的方法。所以,该类中的成员变量还是默认的初值。
选项C正确
23.
(单选题)在JAVA中,下面关于String类和StringBuilder类的描述正确的是( )。
A.StringBuilder类的对象调用tostring()方法将转换为String类型
B.两个类都有append()方法
C.可以直接将字符串“test”赋值给声明的Stirng类和StringBuilder类的变量
D.两个类的实例的值都能够被改变
正确答案:A
本题考查StringBuilder和String类的区别
选项A正确,toString()方法,即是转换到字符串类型的方法。
选项B错误,String类没有append()方法
选项C错误,字符串对象一旦创建,内容不可变
选项D错误,字符串对象一旦创建,内容不可变
24.
(单选题)下列程序的输出结果是( )。
class Person{
public Person(){
System.out.println("I am a Person!");
}
public void study(){
System.out.println("Person is Studing");
}
}
class Worker extends Person{
public Worker(){
System.out.println("I am a Worker!");
}
public void study(){
System.out.println("Worker is Studing");
}
public static void main(String[] args){
Person p = new Worker();
p.study();
}
}
A.I am a Person!
I am a Worker!
Worker is Studing
B.I am a Worker!
Worker is Studing
C.I am a Person!
I am a Worker!
Person is Studing
D.I am a Worker!
Person is Studing
正确答案:A
本题考查继承中的构造函数和父类的引用指向子类的对象
继承中,子类的构造函数,默认一定会调用父类的无参构造函数,本题中使用子类的
构造函数创建了对象,那么子类的构造函数首先调用父类的构造函数,所以会输出
I am a Person!
I am a Worker!
Person p = new Worker();父类的引用指向了子类的对象,子类重写了父类的
study()方法,在运行期,实际调用的一定是子类中的study()方法,会输出
Worker is Studing。所以选项A正确。
25.
(单选题)下列方法被调用后,变量result的结果是( )。
public static void main(String[] args) {
StringBuilder str = new StringBuilder("abc");
int result = getResult(str);
System.out.println(result);
}
public static int getResult(StringBuilder str){
str.append("abc");
str.delete(0,3);
str.insert(0, "abc");
str.replace(0,3, "abc");
return str.length();
}
A.0
B.5
C.6
D.9
正确答案:C
本题考查StringBuilder方法
本题自定义方法中用到了如下几个StringBuilder方法。
append();追加字符,运行后结果为"abcabc"
delete(0,3);删除0,1,2,3个字符,不包括索引值为3的字符,运行后结果"abc"
insert(0,"abc");从开头插入abc3个字符,运行后结果为"abcabc"
replace(0,3,"abc"),将原内容的0,1,2,的字符替换为abc,结果为"abcabc"
运行结束后内容为"abcabc"
length()方法用于获取字符数,所以结果是6
选项C正确
26.
(单选题)下列程序运行结果是( )。
public class Test {
String str=new String("tedu");
char[]ch={'x','y','z'};
public static void main(String args[]){
Test t = new Test();
t.change(ex.str,ex.ch);
System.out.print(t.str+"and");
System.out.print(t.ch);}
public void change(String str,char ch[]){
str="tarena";
ch[0]='w';
}
}
A.tedu and xyz
B.tarena and xyz
C.tedu and wyz
D.tarena and wyz
正确答案:C
本题考查方法的调用
调用带有引用数据类型参数的方法,传的是引用,当在方法中操作该引用,被传递的参数所指向的对象将发生变化。
本题中,调用change()方法,传递一个字符串类型引用,和数组对象的引用,方法中
将字符串引用重新指向了一个新的字符串对象,源字符串对象不会发生变化。还是
tedu,而方法中对数组的操作,改变了源数组中第1个元素,源数组被改变后为
wyz,所以本题选项C正确
27.
(单选题)下列for循环执行结束后,输出结果是:()。
int y = 1;
for(System.out.println("a"); y < 3; System.out.println("c")){
System.out.println("d");
y++;
}
A.a d c d d
B.a d d d d
C.a c d c d
D.a d c d c
正确答案:D
for 循环中,使用三个表达式控制循环的执行,该题目中的循环比较特殊,第一和第三表达式分别为输出语句所替代,但是不影响for循环的执行流程。执行流程如下:
1、计算表达式1的值
2、计算表达式2的值,如果为true则执行循环体,否则退出循环
3、执行循环体
4、执行表达式3
5、计算表达式2的值,如果为true则执行循环体,否则退出循环
6、如此循环往复
28.
(单选题)下列程序输出结果是( )。
int i= 0;
int count = 0;
while(i++<2){
count+=i;
}
System.out.println(count);
A.2
B.3
C.4
D.5
正确答案:B
本题考查While循环执行流程
对于该循环,执行原理推演如下:
i=0,i++<2,先比较0<2,结果为true,然后i++,此时i=1,count = 1;
i=1,i++<2,先比较1<2, 结果为true,然后i++,此时i=2,count = 1+2=3;
i=2,i++<2,先比较2<2结果为false循环结束
count结果是3
选项B正确
29.
(单选题)Iterator进行迭代集合中元素,并将其移除
《插入代码》处应填入的代码是( )。
ArrayList<String> list = new ArrayList<String>();
list.add("刘苍松");
list.add("范传奇");
list.add("王克晶");
《插入代码》
A.Iterator<String> it = list.iterator();
while(it.hasNext()){
it.next();
it.remove();
}
B.Iterator<String> it = list.iterator();
while(it.hasNext()){
it.remove();
}
C.Iterator<String> it = list.iterator();
while(it. hasNext()){
String str = it.next();
list.remove(str);
}
D.Iterator<String> it = list.iterator();
while(it.hasNext()){
list.remove();
}
正确答案:A
本题考查Iterator的使用。
Iterator可以迭代集合,迭代期间,不能通过集合对象,删除集合中元素
如果通过集合对象删除,程序在运行期间会抛出异常。选项CD错误
Iterator可以迭代集合,迭代期间,不能通过集合对象,删除集合中元素
但是可以通过迭代器Iterator对象删除集合中元素,需要迭代一个元素
删除一个元素,选项A正确。
选项B没有迭代元素,直接删除,会抛出异常。
30.
(单选题)下列程序输出结果是( )。
class Super {
public static void m1() {
System.out.println("m1 in Super"); }
public void m2() {
System.out.println("m2 in Super"); }}
class Sub extends Super {
public static void m1() {
System.out.println("m1 in Sub"); }
public void m2() {
System.out.println("m2 in Sub"); }}
public class TestMain {
public static void main(String args[]) {
Super sup = new Sub();
sup.m1();
sup.m2();
Sub sub = (Sub) sup;
sub.m1();
sub.m2(); }}
A.m1 in Sub
m2 in Sub
m1 in Sub
m2 in Sub
B.m1 in Super
m2 in Super
m1 in Sub
m2 in Sub
C.m1 in Sub
m2 in Sub
m1 in Super
m2 in Super
D.m1 in Super
m2 in Sub
m1 in Sub
m2 in Sub
正确答案:D
静态方法可以被继承和隐藏 而不能够被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象进行多态调用。
选项D正确
31.
(多选题)下列选项中不会出现语法编译错误的是:()。
A.long l = 999999;
B.long l = 9999999999L;
C.byte b = 90+40;
D.int i = 'A'+'中';
正确答案:ABD
A选项999999没有超出int类型取值范围,语法合法
B选项9999999999超出int类型取值范围,必须以字母L结尾
C选项90+40超出byte类型最大取值范围127,编译会报错
D选项两个char类型使用加的运算,使用编码值,结果为int类型
32.
(多选题)可以表示6位任意数字的正则是( )。
A.^[0-9]{6}$
B.^\d{6}$
C.^[0~9]{6}$
D.^\D{6}$
正确答案:AB
本题考查正则
正则表示任意数字:[0-9]或\d,选项CD错误,{6}表示6位,选项AB均正确。
33.
(多选题)关于集合框架,说法正确的是( )。
A.与数组不同,集合框架是容量可变的容器
B.集合框架不能保存基本类型,但是可以将它们转换为包装类后保存
C.集合框架中的List, Set, Map接口都是Collection接口的子接口
D.集合类除了提供可变容量的存储外,还提供了对数据的算法
正确答案:ABD
本题考查集合框架
选项C错误,Map接口不是Collection接口的子接口。
34.
(多选题)变量定义如下:
int i = 128;
下列赋值语句正确的是:()。
A.int j = i;
B.short s = i;
C.short s = 128;
D.long l = i;
正确答案:ACD
整数常量在java中默认是int类型。
选项A 将int 类型赋值给int 类型是合法的。
选项B i是int类型变量,赋值给short类型的变量s,需要强制转换
语法为:short s = (short)i
选项C Java的编译器,可以对常量值进行隐式转换,128属于short
类型范围,所以语法正确
选项D Java中,向上转型是自动完成的,即隐式转换或自动转换
35.
(多选题)下列关于java中的方法描述正确的是( )。
A.Java中定义方法的格式是,修饰符 返回值类型 方法名(参数列表){方法体}。
B.Java中的方法,如果有返回值,方法中必须有return语句
C.Java中定义方法,参数列表中必须有形参变量
D.Java中的方法,可以无限的被反复调用
正确答案:ABD
本题考查方法的基本使用
Java中的方法用于封装一段特定的逻辑功能,可以在程序中反复调用,方法可以减少
代码重复,便于程序的维护。java中定义方法有5个要素,修饰符,返回值类型,方法名,参数列表和方法体。修饰符和参数列表会根据需要,是可选要素。定义方法,如果指定了方法的特殊的返回值类型,方法中必须有return语句,如果方法没有返回值,必须使用void。
根据以上描述,本题中ABD正确,C错误,可以没有参数列表。
36.
(多选题)下列关于Linux操作系统,描述正确的是( )。
A.Linux 是一个开源的操作系统 是一个类似Unix的操作系统
B.Linux 是主流的服务器操作系统,广泛应用于互联网、云计算、智能手机等领域
C.Linux 中的相对路径,使用“.”表示上一级目录,“..”表示当前路径
D.Linux 中使用"pwd"命令显示当前工作目录的内容
正确答案:AB
本题考查对Linux操作系统的基本了解和命令的使用
Linux是一套免费使用和自由传播的类Unix操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个开源的类Unix的操作系统。A选项正确
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机,是主流的服务器操作系统 B选项正确
"."表示当前路径,“..”表示上一级路径 C选项错误
常用命令中,pwd用于显示当前工作目录 D选项错误
37.
(多选题)循环统计1到100之间能被7整除的整数的个数,
代码输出正确的是:()。
A.int y = 1;
int count = 0;
while(y<=100){
if(y/7==0)
count++;
y++;
}
System.out.println(count);
B.int y = 1;
int count = 0;
while(y<=100){
if(y%7==0)
count++;
y++;
}
System.out.println(count);
C.int count = 0;
for(int i=1;i<=100;i++){
if(i%7==0)
count++;
}
System.out.println(count);
D.int count = 0;
for(int i=1;i<=100;i++){
if(i/7==0)
count++;
}
System.out.println(count);
正确答案:BC
题目要求7的整数倍,所以应该选择模的运算
A,D选项都是除的运算
38.
(多选题)对如下数组,说法正确的是( )。
int [] arr = {12,23,34,45,56,67};
A.获取数组中第三个元素的语法是arr[3]
B.获取数组中第三个元素的语法是arr[2]
C.该数组的最后一个元素的下标值为arr.length
D.该数组的最后一个元素的下标值为arr.length-1
正确答案:BD
该题目考查数组元素和长度的访问
数组中元素通过其下标访问语法为arr[0],
数组中元素下标从0开始,该题目中A,B
都是要求访问第三个元素,数组中第三个元素
下标为2,所以B正确。
数组元素下标从0开始,数组长度使用leng属性获取
所以最后一个元素的下标值为arr.length-1,D选项正确
39.
(多选题)下列对java中关键字final的说法正确的是( )。
A.关键字final可以修饰类,方法,变量。
B.final修饰的类,称为final类,类中方法必须使用final修饰
C.类中被final修饰的方法,在其子类中不能被重写
D.类中的变量如果使用static和final修饰,必须声明同时初始化,不可被改变
正确答案:ACD
本题考查final的用法
* final可以修饰类,方法,和变量
* final修饰方法,不可以被重写
* final修饰类,该类不能被继承
* final修饰的变量,为常量,不可改变
选项ACD正确。
选项B错误,final的类中,没有对方法是否final的限定。
40.
(多选题)下列关于封装的说法正确的是( )。
A.封装思想的体现之一就是将属性私有化,提供公共的方法访问私有属性
B.属性的访问方法包括setter方法和getter方法
C.setter方法用于给属性赋值,getter方法用于获取属性的值
D.包含属性的类都必须将属性私有化,即使用private修饰,否则无法通过编译
正确答案:ABC
本题考查与封装相关的语法现象
封装是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。
选项ABC正确,规范的实体类设计。
选项D,错误,类中的属性,从语法规则上,可以有非private属性,不会出现语法
编译错误
41.
(多选题)下列选项中可以实现无限循环的是:()。
A.for(;;){}
B.while(true){}
C.do{}while(true);
D.for(int i=0;i++){}
正确答案:ABC
此题考查无限循环的语法。
选项D有编译错误,缺少分号,不满足for循环的基本语法要求
42.
(多选题)对下列运算结果,判断正确的是( );
A."1az098".matches("\\d[a-z]{2,8}[0-9]+")
结果为true
B."1az098".matches("\\d[a-z]{2,8}[0-9]+")
结果为false
C."张三,,,李四,,王五,,,,,,马六,,".split("[,]+").length == 1;
该表达式结果返回true
D."张三,,,李四,,王五,,,,,,马六,,".split("[,]+").length == 4;
该表达式结果返回true
正确答案:AD
本题考查正则表达式
String类中的matches()方法和split()方法都支持正则表达式。
matches()方法用于判断已知字符串是否匹配某个正则
split()方法用于根据正则拆分字符串
选项A,B正则“\\d[a-z]{2,8}[0-9]+”表示1位数字开头,2~8位字母,1位或多位数字,字符串"1az098"匹配正确,选项A正确
选项C,D 正则"[,]+"表示1位或多位逗号字符,split()方法,使用1位或多位逗号字符
为分隔符拆分字符串,拆分后字符串数组中为4个元素,选项D正确
选项A,D正确
43.
(多选题)下列对Java变量的使用说法正确的是( )
A.声明变量可以指定数据类型,也可以不指定
B.变量名采用任意命名的方式,尽量做到见名知意
C.局部变量声明后,要为其赋一个确定的初值后再使用
D.变量是指在内存中开辟的存储空间中存放的运算过程中需要用到的数据。
正确答案:CD
选项A错误,Java中的变量声明,必须指定数据类型
选项B错误,Java中的变量命名必须符合标识符的规则
选项C、D说法正确
44.
(多选题)下列对于内部类描述中正确的是:( )
A.在一个类的声明里声明的类,也叫做内部类或嵌套类,内部类可以作为外部类的一个成员使用,可以访问外部类的所有成员,包括私有成员。
B.内部类的访问权限可以被定义为public、protected、private和default。但是普通类只可以定义public和default两种访问权限。
C.内部类的访问权限可以被定义为public、protected、private和default。普通类也可以定义上面四种访问权限,但是通常我们只应用public和default两种访问权限。
D.局部内部类中不可定义静态变量,可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的
正确答案:ABD
本题考查内部类的使用。
选项C错误,普通类只能使用public和default两种访问权限
选项ABD正确。
45.
(多选题)给出以下代码,请问该程序的运行结果是什么?
class A{
private int x=0;
static int y=1;
protected int z=2;
}
class B extends A{
void method(){
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
}
下列说法正确的是( )。
A.程序编译错误,因为类B不能访问变量x。
B.程序编译成功,打印输出012。
C.程序编译错误,如果移走System.out.println(x)这条语句,
可使编译程序通过。
D.程序编译错误,因为变量x未在类B中定义。
正确答案:ACD
本题考查java中几种访问修饰符
public:公共的,可以在任何类中访问
protected:受保护的,只能在同一个包中,或子类中访问
default:只能在同一个包中的类中访问
private:私有的,只能在本类中访问的
本题代码中,变量x是私有的,不能在类外部访问,ACD正确。
46.
(多选题)Java中,下列说法正确的是( )。
A.私有方法不能被重载
B.静态方法能被重载
C.公有方法被重写之后,可以使用private修饰。
D.一个重写的方法不能抛出在父类中不被检查的异常。
正确答案:BD
本题考查Java中方法的重载和重写。
类中的方法,任意方法都可以被重载。只要满足方法名相同,参数不同,即可
实现重载。
选项A错误。
选项B正确。
选项C错误,子类重写父类的方法,子类的方法访问修饰符的访问权限必须大于或等于父类的访问修饰符的权限。
选项D正确,子类重写父类的方法,子类的方法抛出的异常类型必须是父类方法抛出异常类型或其子类型。如果父类方法没有定义异常,子类重写的方法也不可以抛出异常。
47.
(多选题)给定java代码如下所示,在1处新增下列( )方法,是对show方法的重载
public class Test{
public void show(int x, int y, int z) { }
//1
}
A.public int show(int x,int y,float z){return 0;}
B.public int show(int x,int y,int z){return 0;}
C.public void show(int x,int z){}
D.public viod show(int z,int y,int x){}
正确答案:AC
本题考查方法的重载规则
方法的重载必须满足方法名相同和参数不同(类型或个数)
选项AC满足重载的条件正确
选项BD参数都与定义的方法参数相同,不是重载。
48.
(多选题)下列switch语句会输出哪些字符:( )。
int i1 = 97;
int i2 = 65;
switch (i1-i2) {
case 30:
System.out.println('A');break;
case 31:
System.out.println('B');break;
case 32:
System.out.println('C');
default:
System.out.println('D');break;
}
A.A
B.B
C.C
D.D
正确答案:CD
switch语句块中,表达式的值匹配到case语句中的常量值,会执行对应的
case中的语句,如果case语句以break语句结束,会跳出swithc语句,如果没有break,会继续执行该case后的case语句。
本题中,表达式结果为32,会打印字符C,但是该case没有使用break语句,程序还会继续执行,所以会输出C,D字符
49.
(多选题)腾讯QQ号从10000开始的,下列能正确表示QQ号的正则是( )。
A.^\d{5,}$
B.^[1-9][0-9]{4,8}$
C.^[1-9]\d{4,}$
D.^[1-9][0-9]{4,}$
正确答案:CD
本题考查5位以上数字1-9开头的数字,正则的表示方法。
选项CD正确。
50.
(多选题)下列关于JDK的说法正确的是( )
A.开发一个Java程序,需要完整的JDK
B.运行一个Java程序,需要完整的JDK
C.运行一个Java程序,只需要JDK中的JRE
D.以上说法都不对
正确答案:AC
本题考查JDK的组成和每个组成部分的功能
JDK是Java语言的软件开发工具包,其中包括JRE和一组开发工具
选项A,开发一个JAVA程序,需要开发工具,所以需要完整的JDK,正确
选项B,运行一个Java程序只需要JRE 错误
选项C,运行一个Java程序,只需要JDK中的JRE 正确
选项D,A C 选项是正确的,所以该选项是错误的
A.HashMap
B.ArrayList
C.TreeSet
D.数组
正确答案:C
本题考查TreeSet保存元素,会以特定的顺序保存元素
选项C正确。
2.
(单选题)下列关于变量作用域的说法中,正确的是( )。
A.在main()方法中任何位置定义的变量,其作用域为整个main()方法
B.块中定义的变量,在块外也是可以使用的
C.变量的作用域为:从定义处开始,到变量所在块结束位置
D.变量的作用域不受块的限制
正确答案:C
本题考查变量的作用域
Java中变量的作用域以语句块为标志,变量只在定义它的语句块内有效。选项C正确。
3.
(单选题)在Java中,如下代码的正确结果为()。
double dou = 5/2;
System.out.println(dou);
A.2
B.2.5
C.0
D.2.0
正确答案:D
此题目考查的是Java中的算术运算符。
在本题是,因为5和2都是int类型,所以相除的结果会舍弃小数位,只保留整数位的2,将int类型的2赋值给double型的变量,进而结果为2.0,所以本题选项D是正确的。
4.
(单选题)关于构造方法,下面说法正确的是( )。
A.构造方法不能带有参数
B.构造方法的名称必须和类名相同
C.构造方法可以定义返回值类型
D.构造方法不能重载
正确答案:B
本题考查构造方法的概念
Java中的构造方法,是用来初始化成员变量和创建对象的。构造方法的语法要求如下:
* 构造方法方法名必须与类名相同
* 构造方法可以有参数,可以根据传参的方式,初始化对象的成员变量
* 构造方法的定义不能有返回值类型,即使void也不可以使用
* 一个类可以定义多个构造方法,方法名都与类名相同,参数不同,即为重载
根据以上描述,本题只有选项B正确
5.
(单选题)在Java中,关于抽象方法的说法正确的是()。
A.抽象方法可以有方法体。
B.抽象类中的方法都是抽象方法。
C.抽象方法可以出现在非抽象类中。
D.抽象方法是没有方法体的方法。
正确答案:D
此题目考查的是Java的抽象方法。
在Java语言中,抽象方法指的是只有方法的定义,没有方法的具体实现的方法(没有方法体)。所以选项D是正确的,选项A是错误的。
Java规定,包含抽象方法的类必须是抽象类,所以选项C是错误的。
抽象类中可以有抽象方法也可以有非抽象方法。所以选项B是错误的。
6.
(单选题)下面的程序输出的结果是( )
// 已知 'T' 的int值为84,'t' 的int值为116
String s1="TEDU",s2="tedu";
System.out.println(s1.compareTo(s2));
A.-32
B.32
C.false
D.true
正确答案:A
本题考查compareTo()方法。
String 类实现了Comparable接口,并实现了compareTo()方法
方法在实现中,将两个字符串内容中的字符进行ASCII码值减的操作,
从前往后减,如果第一个字符相同,就操作第二个字符,再次减,直到
运行到不相同的字符,将结果返回,如果字符内容和大小写都相同,则返回0
本题程序中,字符‘T’-‘t’值为-32。
选项A正确。
7.
(单选题)实现Point类的equals方法,具体逻辑为:“成员变量x和y分别相等的Point对象被视为相等”。
public class Point {
private int x;
private int y;
...
public boolean equals(Object obj) {
《填入代码》
}
}
《填入代码》处应填入的代码正确的是:
A.if(obj.x == this.x || obj.y == this.y){
return true;
}
return false;
B.if(!(obj instanceof Point)) return false;
if(((Point)obj).x == ((Point)obj).y && this.x == this.y){
return true;
}
return false;
C.if(!(obj instanceof Point)) return false;
if(((Point)obj).x == this.x && ((Point)obj).y == this.y){
return true;
}
return false;
D.if(obj.x == this.x && obj.y == this.y){
return true;
}
return false;
正确答案:C
本题考查equals方法的重写。
选项A错误,必须将参数强制转换到Point类型,才能访问Point类中的x和y
选项B错误,不符合题目中的需求,需要比较的是两个对象的x和y
选项C正确
选项D错误必须将参数强制转换到Point类型,才能访问Point类中的x和y
8.
(单选题)Java源程序经过编译会生成相应的字节码文件,这些字节码文件的扩展名为()。
A..java
B..class
C..exe
D..html
正确答案:B
此题目考查的是Java的行业知识。
在Java语言中,字节码文件的后缀名为.class。所以本题正确选项为B。
9.
(单选题)Java中给一个boolean变量赋值时,可以使用()方式:
A.boolean b1 = "真";
B.boolean b1 == true;
C.boolean b1 = 1;
D.boolean b1 = (10>5);
正确答案:D
此题目考查的是对boolean变量的赋值。
boolean类型为布尔型,只允许取值为true和false,true表示条件成立而false表示条件不成立。适用于关系运算和逻辑运算,一般用于程序的流程控制。
因为boolean只允许取值为true和false,所以选项A 赋值为"真"是错误的。
在java中=号是在赋值,而==意为相等的判断,因此选项B是错误的。
将boolean变量赋值为1也是不合法,故而选项C是错误的。
10>5为关系运算,返回的结果就是boolean型,所以选项D是正确的。
10.
(单选题)下列Java代码的输出结果是()。
public class Test {
public static void main(String[] args) {
int[] arr = new int[5];
arr[5] = 88;
System.out.println(arr[5]);
}
}
A.0
B.88
C.编译错误
D.运行异常
正确答案:D
此题目考查的是Java中的数组。
在Java语言中,数组的下标从0开始,最大下标为数组的长度-1,本题中,arr数组包含5个元素,所以最大下标为4,故而在使用下标5时会出现数组下标越界的异常,本题选项D是正确的。
11.
(单选题)在Java中,下面代码段的输出结果是()。
public class Test {
public static void main(String[] args) {
Aoo aoo = new Aoo(8);
aoo.show();
}
}
class Aoo{
int num;
public Aoo(int num) {
this.num = num;
}
public static void show(){
System.out.println(num);
}
}
A.0
B.8
C.编译错误
D.运行异常
正确答案:C
此题目考查的是Java中的静态方法。
在Java语言中,通常的方法都会涉及到对具体对象的操作,这些方法在调用时,需要隐式的传递对象的引用this,而有一些方法不需要针对某些对象进行操作,其运行结果仅仅与输入的参数有关,这时此方法需要由static修饰为静态方法。因为静态方法没有隐式的this传递,所以在静态方法中不能直接访问实例成员,所以本题在静态方法show()中访问实例成员num是不正确的,所以本题正确选项为C。
12.
(单选题)对保存在List中的数据进行查找,方法不正确的是( )。
A.对元素进行遍历,依次比较
B.对内容有序的List可以进行二分法查找
C.调用indexOf方法查找
D.无论是否有序都可以用二分法查找,比线性查找快很多
正确答案:D
本题考查对List集合元素的查找
选项D说法不正确,二分查找法,必须是对有序的元素。
13.
(单选题)System.out.println(3+4+"tedu"+3+4);
的打印结果:( )
A.34tedu34
B.7tedu7
C.7tedu34
D.34tedu7
正确答案:C
本题考查程序的执行顺序。
输出语句中,先执行3+4,结果是7,再执行7+"tedu",结果是7tedu
再+3,结果是7tedu3,在加4,结果是7tedu34
选项C正确
14.
(单选题)给出下面的代码段 :
public class Base{
int w, x, y ,z;
public Base(int a,int b) {
x=a; y=b;
}
public Base(int a, int b, int c, int d) {
// ...
w=d;
z=c;
}
}
在代码// ... 处写入如下哪个代码是正确的?( )。
A.Base(a,b);
B.x=a, y=b;
C.this(a);
this(b);
D.this(a,b);
正确答案:D
本题考查this关键字的使用。
在构造函数中,调用构造函数的时候,必须使用this调用,而且必须是构造函数中的第一条语句,选项AC错误,选项B中,x=a必须使用分号结尾。选项D正确。
15.
(单选题)阅读如下代码:
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("aaa");
list.add("aaa");
list.add("aaa");
迭代该集合中的元素,下列待填入处应补充的是( )。
for(/*待填入*/){
System.out.print(str);
}
A.List list : String str
B.String str : List list
C.list : String str
D.String str : list
正确答案:D
本题考查使用增强的for循环,迭代集合ArrayList
增强的for循环使用如下:
For(String str : list){.....}
选项D正确
16.
(单选题)阅读下列代码:
class Emp{
private int empNo;
private String ename;
public int getEmpNo() {
return empNo;
}
public void setEmpNo(int empNo) {
this.empNo = empNo;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public int hashCode() {
return empNo;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Emp other = (Emp) obj;
if (empNo != other.empNo)
return false;
return true;
}
public static void main(String[] args) {
Emp e1 = new Emp();
e1.setEmpNo(1001);
e1.setEname("刘苍松");
Emp e2 = new Emp();
e2.setEmpNo(1001);
e2.setEname("Robin");
System.out.println(e1==e2);
System.out.println(e1.equals(e2));
}
}
运行该类,输出结果是( );
A.false false
B.false true
C.true false
D.true true
正确答案:B
本题考查equals和==的区别
Object类中默认equals()方法和==没有区别,本类中重写了equals()方法,如果empNo相同,两个Emp对象的equals()方法,即会返回true。
选项B正确。
17.
(单选题)如下程序:
String str = "I can do it because I think I can";
int index1 = str.indexOf("can");
int index2 = str.lastIndexOf("can");
int result = index1 + index2;
result结果是:( )。
A.2
B.30
C.32
D.-1
正确答案:C
本题考查字符串检索
int indexOf(String str) 在字符串中检索str,返回其第一次出现的位置,如果找不到返回-1.
int lastIndexOf(String str)str在字符串中多次出现时,将返回最后一个出现的位置。本题中index1 = 2;index2 = 30;result=2+30=32;
选项C正确。
18.
(单选题)以下程序运行结果是:
class Demo {
int x;
public static void main(String[] args) {
Demo d = new Demo();
d.x = 8;
show(d);
System.out.println("x="+d.x);
}
public static void show(Demo d) {
d.x = 7;
}
}
A.x=8
B.会出现语法编译错误
C.x=7
D.以上都不对
正确答案:C
本题考查调用带有引用类型的参数
调用带有引用类型的参数,传递的是对象的引用,方法中操作该参数,操作的
是传递到该方法中的具体对象。
本题目中,创建一个对象,变量d存储了该对象在内存中的地址信息,通过
d.x = 8,修改了该对象的x值,然后调用show()方法,将该引用传递给show方法
show()方法中,再次修改了该对象的x值为7,所以最后运行结果x=7
选项C正确
19.
(单选题)Outer类中定义了一个成员内部类Inner,需要在main()方法中创建
Inner类实例对象,以下四种方式正确的是( )。
A.Inner in = new Inner();
B.Inner in = new Outer.Inner();
C.Outer.Inner in = new Outer.Inner();
D.Outer.Inner in = new Outer().new Inner();
正确答案:D
本题考查静态方法创建实例内部类对象
内部类的最重要的一个特点就是它可以直接访问它外部类的成员变量。成员变量是
对象身上的。对象创建完成了,才会为成员变量分配空间。能调用成员变量,
意味着一定有了实例对象.
main方法是静态的,它执行的时候可以不用创建那个对象。这就矛盾了。
main方法运行的时候没有任何外部类的实例对象。我们的内部类的实例对象创建了
它又可以访问外部类的成员变量,外部类的实例对象在哪儿了?
所以这个原因,要想创建内部类的实例对象,必须创建外部类的实例对象
选项D正确。
20.
(单选题)分析如下Java代码,如果想在控制台上输出"B类的test()方法",
则在1处应填入( )。
class A {
public void test() {
System.out.println("A类的test()方法");
}
}
class B extends A {
public void test() {
System.out.println("B类的test()方法");
}
public static void main(String args[]) {
// 1
}
}
A.A a = new B();
a.test();
B.A a = new A();
a.test();
C.B b = new A();
b.test();
D.B.test();
正确答案:A
本题考查面向对象的特性之一多态。
实现多态的条件是继承和重写,定义父类型的引用指向子类的对象
本题中类B继承了类A,子类中重写了父类的方法test()。
选项A,在继承和重写的前提下,父类A类型的引用变量a指向了子类
B创建的对象。a.test(),会调用子类中的test()方法,会满足题目要求
选项A正确。
21.
(单选题)score是一个整数数组,有五个元素,已经正确初始化并赋值,
仔细阅读下面代码,程序运行结果是( )。
int temp = score[0];
for (int index = 1;index < 5;index++) {
if (score[index] < temp) {
temp = score[index];
}
}
A.求最大数
B.求最小数
C.找到数组最后一个元素
D.编译出错
正确答案:B
本题考查对数组元素遍历的操作
循环体中,依次访问数组中第一个元素之后的每个元素,并与第一个元素比较
如果小于第一个元素,将该元素赋值给变量temp,最后temp的值为数组中
的最小元素
结果为选项B,求最小数。
22.
(单选题)Java代码的运行结果是( )。
class Account {
private String name; // 名字
private int state; // 账号状态
private String idCard; // 身份证号
public void Account() {
name = "李强";
state = 0;
idCard = "109...";
System.out.println("执行构造方法。");}
public void show() {
System.out.println
("账务账号的名字是" + name + ",状态是"
+ state + ",身份证号是" + idCard + "。"); }
public static void main(String[] args) {
Account acc = new Account();
acc.show();}
}
A.账务账号的名字是null,状态是1,身份证号是109...。
B.执行构造方法。
账务账号的名字是null,状态是1,身份证号是null。
C.账务账号的名字是null,状态是0,身份证号是null。
D.执行构造方法。
账务账号的名字是李强,状态是1,身份证号是109...。
正确答案:C
本题考查构造方法的特点和作用
构造方法必须与类名相同,没有返回值类型。如果没有定义构造方法,系统会提供无参
的构造方法。构造方法用来初始化成员变量和创建对象。当使用某个构造方法,创建对象的时候,系统会自动调用该构造方法。构造方法在初始化成员变量的时候,给成员变量添加初值。整型为0,字符串类型为null。本题中,定义的Account()方法,与类名相同,但并非是构造方法,只是普通的方法。所以,该类中的成员变量还是默认的初值。
选项C正确
23.
(单选题)在JAVA中,下面关于String类和StringBuilder类的描述正确的是( )。
A.StringBuilder类的对象调用tostring()方法将转换为String类型
B.两个类都有append()方法
C.可以直接将字符串“test”赋值给声明的Stirng类和StringBuilder类的变量
D.两个类的实例的值都能够被改变
正确答案:A
本题考查StringBuilder和String类的区别
选项A正确,toString()方法,即是转换到字符串类型的方法。
选项B错误,String类没有append()方法
选项C错误,字符串对象一旦创建,内容不可变
选项D错误,字符串对象一旦创建,内容不可变
24.
(单选题)下列程序的输出结果是( )。
class Person{
public Person(){
System.out.println("I am a Person!");
}
public void study(){
System.out.println("Person is Studing");
}
}
class Worker extends Person{
public Worker(){
System.out.println("I am a Worker!");
}
public void study(){
System.out.println("Worker is Studing");
}
public static void main(String[] args){
Person p = new Worker();
p.study();
}
}
A.I am a Person!
I am a Worker!
Worker is Studing
B.I am a Worker!
Worker is Studing
C.I am a Person!
I am a Worker!
Person is Studing
D.I am a Worker!
Person is Studing
正确答案:A
本题考查继承中的构造函数和父类的引用指向子类的对象
继承中,子类的构造函数,默认一定会调用父类的无参构造函数,本题中使用子类的
构造函数创建了对象,那么子类的构造函数首先调用父类的构造函数,所以会输出
I am a Person!
I am a Worker!
Person p = new Worker();父类的引用指向了子类的对象,子类重写了父类的
study()方法,在运行期,实际调用的一定是子类中的study()方法,会输出
Worker is Studing。所以选项A正确。
25.
(单选题)下列方法被调用后,变量result的结果是( )。
public static void main(String[] args) {
StringBuilder str = new StringBuilder("abc");
int result = getResult(str);
System.out.println(result);
}
public static int getResult(StringBuilder str){
str.append("abc");
str.delete(0,3);
str.insert(0, "abc");
str.replace(0,3, "abc");
return str.length();
}
A.0
B.5
C.6
D.9
正确答案:C
本题考查StringBuilder方法
本题自定义方法中用到了如下几个StringBuilder方法。
append();追加字符,运行后结果为"abcabc"
delete(0,3);删除0,1,2,3个字符,不包括索引值为3的字符,运行后结果"abc"
insert(0,"abc");从开头插入abc3个字符,运行后结果为"abcabc"
replace(0,3,"abc"),将原内容的0,1,2,的字符替换为abc,结果为"abcabc"
运行结束后内容为"abcabc"
length()方法用于获取字符数,所以结果是6
选项C正确
26.
(单选题)下列程序运行结果是( )。
public class Test {
String str=new String("tedu");
char[]ch={'x','y','z'};
public static void main(String args[]){
Test t = new Test();
t.change(ex.str,ex.ch);
System.out.print(t.str+"and");
System.out.print(t.ch);}
public void change(String str,char ch[]){
str="tarena";
ch[0]='w';
}
}
A.tedu and xyz
B.tarena and xyz
C.tedu and wyz
D.tarena and wyz
正确答案:C
本题考查方法的调用
调用带有引用数据类型参数的方法,传的是引用,当在方法中操作该引用,被传递的参数所指向的对象将发生变化。
本题中,调用change()方法,传递一个字符串类型引用,和数组对象的引用,方法中
将字符串引用重新指向了一个新的字符串对象,源字符串对象不会发生变化。还是
tedu,而方法中对数组的操作,改变了源数组中第1个元素,源数组被改变后为
wyz,所以本题选项C正确
27.
(单选题)下列for循环执行结束后,输出结果是:()。
int y = 1;
for(System.out.println("a"); y < 3; System.out.println("c")){
System.out.println("d");
y++;
}
A.a d c d d
B.a d d d d
C.a c d c d
D.a d c d c
正确答案:D
for 循环中,使用三个表达式控制循环的执行,该题目中的循环比较特殊,第一和第三表达式分别为输出语句所替代,但是不影响for循环的执行流程。执行流程如下:
1、计算表达式1的值
2、计算表达式2的值,如果为true则执行循环体,否则退出循环
3、执行循环体
4、执行表达式3
5、计算表达式2的值,如果为true则执行循环体,否则退出循环
6、如此循环往复
28.
(单选题)下列程序输出结果是( )。
int i= 0;
int count = 0;
while(i++<2){
count+=i;
}
System.out.println(count);
A.2
B.3
C.4
D.5
正确答案:B
本题考查While循环执行流程
对于该循环,执行原理推演如下:
i=0,i++<2,先比较0<2,结果为true,然后i++,此时i=1,count = 1;
i=1,i++<2,先比较1<2, 结果为true,然后i++,此时i=2,count = 1+2=3;
i=2,i++<2,先比较2<2结果为false循环结束
count结果是3
选项B正确
29.
(单选题)Iterator进行迭代集合中元素,并将其移除
《插入代码》处应填入的代码是( )。
ArrayList<String> list = new ArrayList<String>();
list.add("刘苍松");
list.add("范传奇");
list.add("王克晶");
《插入代码》
A.Iterator<String> it = list.iterator();
while(it.hasNext()){
it.next();
it.remove();
}
B.Iterator<String> it = list.iterator();
while(it.hasNext()){
it.remove();
}
C.Iterator<String> it = list.iterator();
while(it. hasNext()){
String str = it.next();
list.remove(str);
}
D.Iterator<String> it = list.iterator();
while(it.hasNext()){
list.remove();
}
正确答案:A
本题考查Iterator的使用。
Iterator可以迭代集合,迭代期间,不能通过集合对象,删除集合中元素
如果通过集合对象删除,程序在运行期间会抛出异常。选项CD错误
Iterator可以迭代集合,迭代期间,不能通过集合对象,删除集合中元素
但是可以通过迭代器Iterator对象删除集合中元素,需要迭代一个元素
删除一个元素,选项A正确。
选项B没有迭代元素,直接删除,会抛出异常。
30.
(单选题)下列程序输出结果是( )。
class Super {
public static void m1() {
System.out.println("m1 in Super"); }
public void m2() {
System.out.println("m2 in Super"); }}
class Sub extends Super {
public static void m1() {
System.out.println("m1 in Sub"); }
public void m2() {
System.out.println("m2 in Sub"); }}
public class TestMain {
public static void main(String args[]) {
Super sup = new Sub();
sup.m1();
sup.m2();
Sub sub = (Sub) sup;
sub.m1();
sub.m2(); }}
A.m1 in Sub
m2 in Sub
m1 in Sub
m2 in Sub
B.m1 in Super
m2 in Super
m1 in Sub
m2 in Sub
C.m1 in Sub
m2 in Sub
m1 in Super
m2 in Super
D.m1 in Super
m2 in Sub
m1 in Sub
m2 in Sub
正确答案:D
静态方法可以被继承和隐藏 而不能够被重写,因此不能实现多态,不能实现父类的引用可以指向不同子类的对象进行多态调用。
选项D正确
31.
(多选题)下列选项中不会出现语法编译错误的是:()。
A.long l = 999999;
B.long l = 9999999999L;
C.byte b = 90+40;
D.int i = 'A'+'中';
正确答案:ABD
A选项999999没有超出int类型取值范围,语法合法
B选项9999999999超出int类型取值范围,必须以字母L结尾
C选项90+40超出byte类型最大取值范围127,编译会报错
D选项两个char类型使用加的运算,使用编码值,结果为int类型
32.
(多选题)可以表示6位任意数字的正则是( )。
A.^[0-9]{6}$
B.^\d{6}$
C.^[0~9]{6}$
D.^\D{6}$
正确答案:AB
本题考查正则
正则表示任意数字:[0-9]或\d,选项CD错误,{6}表示6位,选项AB均正确。
33.
(多选题)关于集合框架,说法正确的是( )。
A.与数组不同,集合框架是容量可变的容器
B.集合框架不能保存基本类型,但是可以将它们转换为包装类后保存
C.集合框架中的List, Set, Map接口都是Collection接口的子接口
D.集合类除了提供可变容量的存储外,还提供了对数据的算法
正确答案:ABD
本题考查集合框架
选项C错误,Map接口不是Collection接口的子接口。
34.
(多选题)变量定义如下:
int i = 128;
下列赋值语句正确的是:()。
A.int j = i;
B.short s = i;
C.short s = 128;
D.long l = i;
正确答案:ACD
整数常量在java中默认是int类型。
选项A 将int 类型赋值给int 类型是合法的。
选项B i是int类型变量,赋值给short类型的变量s,需要强制转换
语法为:short s = (short)i
选项C Java的编译器,可以对常量值进行隐式转换,128属于short
类型范围,所以语法正确
选项D Java中,向上转型是自动完成的,即隐式转换或自动转换
35.
(多选题)下列关于java中的方法描述正确的是( )。
A.Java中定义方法的格式是,修饰符 返回值类型 方法名(参数列表){方法体}。
B.Java中的方法,如果有返回值,方法中必须有return语句
C.Java中定义方法,参数列表中必须有形参变量
D.Java中的方法,可以无限的被反复调用
正确答案:ABD
本题考查方法的基本使用
Java中的方法用于封装一段特定的逻辑功能,可以在程序中反复调用,方法可以减少
代码重复,便于程序的维护。java中定义方法有5个要素,修饰符,返回值类型,方法名,参数列表和方法体。修饰符和参数列表会根据需要,是可选要素。定义方法,如果指定了方法的特殊的返回值类型,方法中必须有return语句,如果方法没有返回值,必须使用void。
根据以上描述,本题中ABD正确,C错误,可以没有参数列表。
36.
(多选题)下列关于Linux操作系统,描述正确的是( )。
A.Linux 是一个开源的操作系统 是一个类似Unix的操作系统
B.Linux 是主流的服务器操作系统,广泛应用于互联网、云计算、智能手机等领域
C.Linux 中的相对路径,使用“.”表示上一级目录,“..”表示当前路径
D.Linux 中使用"pwd"命令显示当前工作目录的内容
正确答案:AB
本题考查对Linux操作系统的基本了解和命令的使用
Linux是一套免费使用和自由传播的类Unix操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个开源的类Unix的操作系统。A选项正确
Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机,是主流的服务器操作系统 B选项正确
"."表示当前路径,“..”表示上一级路径 C选项错误
常用命令中,pwd用于显示当前工作目录 D选项错误
37.
(多选题)循环统计1到100之间能被7整除的整数的个数,
代码输出正确的是:()。
A.int y = 1;
int count = 0;
while(y<=100){
if(y/7==0)
count++;
y++;
}
System.out.println(count);
B.int y = 1;
int count = 0;
while(y<=100){
if(y%7==0)
count++;
y++;
}
System.out.println(count);
C.int count = 0;
for(int i=1;i<=100;i++){
if(i%7==0)
count++;
}
System.out.println(count);
D.int count = 0;
for(int i=1;i<=100;i++){
if(i/7==0)
count++;
}
System.out.println(count);
正确答案:BC
题目要求7的整数倍,所以应该选择模的运算
A,D选项都是除的运算
38.
(多选题)对如下数组,说法正确的是( )。
int [] arr = {12,23,34,45,56,67};
A.获取数组中第三个元素的语法是arr[3]
B.获取数组中第三个元素的语法是arr[2]
C.该数组的最后一个元素的下标值为arr.length
D.该数组的最后一个元素的下标值为arr.length-1
正确答案:BD
该题目考查数组元素和长度的访问
数组中元素通过其下标访问语法为arr[0],
数组中元素下标从0开始,该题目中A,B
都是要求访问第三个元素,数组中第三个元素
下标为2,所以B正确。
数组元素下标从0开始,数组长度使用leng属性获取
所以最后一个元素的下标值为arr.length-1,D选项正确
39.
(多选题)下列对java中关键字final的说法正确的是( )。
A.关键字final可以修饰类,方法,变量。
B.final修饰的类,称为final类,类中方法必须使用final修饰
C.类中被final修饰的方法,在其子类中不能被重写
D.类中的变量如果使用static和final修饰,必须声明同时初始化,不可被改变
正确答案:ACD
本题考查final的用法
* final可以修饰类,方法,和变量
* final修饰方法,不可以被重写
* final修饰类,该类不能被继承
* final修饰的变量,为常量,不可改变
选项ACD正确。
选项B错误,final的类中,没有对方法是否final的限定。
40.
(多选题)下列关于封装的说法正确的是( )。
A.封装思想的体现之一就是将属性私有化,提供公共的方法访问私有属性
B.属性的访问方法包括setter方法和getter方法
C.setter方法用于给属性赋值,getter方法用于获取属性的值
D.包含属性的类都必须将属性私有化,即使用private修饰,否则无法通过编译
正确答案:ABC
本题考查与封装相关的语法现象
封装是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。
选项ABC正确,规范的实体类设计。
选项D,错误,类中的属性,从语法规则上,可以有非private属性,不会出现语法
编译错误
41.
(多选题)下列选项中可以实现无限循环的是:()。
A.for(;;){}
B.while(true){}
C.do{}while(true);
D.for(int i=0;i++){}
正确答案:ABC
此题考查无限循环的语法。
选项D有编译错误,缺少分号,不满足for循环的基本语法要求
42.
(多选题)对下列运算结果,判断正确的是( );
A."1az098".matches("\\d[a-z]{2,8}[0-9]+")
结果为true
B."1az098".matches("\\d[a-z]{2,8}[0-9]+")
结果为false
C."张三,,,李四,,王五,,,,,,马六,,".split("[,]+").length == 1;
该表达式结果返回true
D."张三,,,李四,,王五,,,,,,马六,,".split("[,]+").length == 4;
该表达式结果返回true
正确答案:AD
本题考查正则表达式
String类中的matches()方法和split()方法都支持正则表达式。
matches()方法用于判断已知字符串是否匹配某个正则
split()方法用于根据正则拆分字符串
选项A,B正则“\\d[a-z]{2,8}[0-9]+”表示1位数字开头,2~8位字母,1位或多位数字,字符串"1az098"匹配正确,选项A正确
选项C,D 正则"[,]+"表示1位或多位逗号字符,split()方法,使用1位或多位逗号字符
为分隔符拆分字符串,拆分后字符串数组中为4个元素,选项D正确
选项A,D正确
43.
(多选题)下列对Java变量的使用说法正确的是( )
A.声明变量可以指定数据类型,也可以不指定
B.变量名采用任意命名的方式,尽量做到见名知意
C.局部变量声明后,要为其赋一个确定的初值后再使用
D.变量是指在内存中开辟的存储空间中存放的运算过程中需要用到的数据。
正确答案:CD
选项A错误,Java中的变量声明,必须指定数据类型
选项B错误,Java中的变量命名必须符合标识符的规则
选项C、D说法正确
44.
(多选题)下列对于内部类描述中正确的是:( )
A.在一个类的声明里声明的类,也叫做内部类或嵌套类,内部类可以作为外部类的一个成员使用,可以访问外部类的所有成员,包括私有成员。
B.内部类的访问权限可以被定义为public、protected、private和default。但是普通类只可以定义public和default两种访问权限。
C.内部类的访问权限可以被定义为public、protected、private和default。普通类也可以定义上面四种访问权限,但是通常我们只应用public和default两种访问权限。
D.局部内部类中不可定义静态变量,可以访问外部类的局部变量(即方法内的变量),但是变量必须是final的
正确答案:ABD
本题考查内部类的使用。
选项C错误,普通类只能使用public和default两种访问权限
选项ABD正确。
45.
(多选题)给出以下代码,请问该程序的运行结果是什么?
class A{
private int x=0;
static int y=1;
protected int z=2;
}
class B extends A{
void method(){
System.out.println(x);
System.out.println(y);
System.out.println(z);
}
}
下列说法正确的是( )。
A.程序编译错误,因为类B不能访问变量x。
B.程序编译成功,打印输出012。
C.程序编译错误,如果移走System.out.println(x)这条语句,
可使编译程序通过。
D.程序编译错误,因为变量x未在类B中定义。
正确答案:ACD
本题考查java中几种访问修饰符
public:公共的,可以在任何类中访问
protected:受保护的,只能在同一个包中,或子类中访问
default:只能在同一个包中的类中访问
private:私有的,只能在本类中访问的
本题代码中,变量x是私有的,不能在类外部访问,ACD正确。
46.
(多选题)Java中,下列说法正确的是( )。
A.私有方法不能被重载
B.静态方法能被重载
C.公有方法被重写之后,可以使用private修饰。
D.一个重写的方法不能抛出在父类中不被检查的异常。
正确答案:BD
本题考查Java中方法的重载和重写。
类中的方法,任意方法都可以被重载。只要满足方法名相同,参数不同,即可
实现重载。
选项A错误。
选项B正确。
选项C错误,子类重写父类的方法,子类的方法访问修饰符的访问权限必须大于或等于父类的访问修饰符的权限。
选项D正确,子类重写父类的方法,子类的方法抛出的异常类型必须是父类方法抛出异常类型或其子类型。如果父类方法没有定义异常,子类重写的方法也不可以抛出异常。
47.
(多选题)给定java代码如下所示,在1处新增下列( )方法,是对show方法的重载
public class Test{
public void show(int x, int y, int z) { }
//1
}
A.public int show(int x,int y,float z){return 0;}
B.public int show(int x,int y,int z){return 0;}
C.public void show(int x,int z){}
D.public viod show(int z,int y,int x){}
正确答案:AC
本题考查方法的重载规则
方法的重载必须满足方法名相同和参数不同(类型或个数)
选项AC满足重载的条件正确
选项BD参数都与定义的方法参数相同,不是重载。
48.
(多选题)下列switch语句会输出哪些字符:( )。
int i1 = 97;
int i2 = 65;
switch (i1-i2) {
case 30:
System.out.println('A');break;
case 31:
System.out.println('B');break;
case 32:
System.out.println('C');
default:
System.out.println('D');break;
}
A.A
B.B
C.C
D.D
正确答案:CD
switch语句块中,表达式的值匹配到case语句中的常量值,会执行对应的
case中的语句,如果case语句以break语句结束,会跳出swithc语句,如果没有break,会继续执行该case后的case语句。
本题中,表达式结果为32,会打印字符C,但是该case没有使用break语句,程序还会继续执行,所以会输出C,D字符
49.
(多选题)腾讯QQ号从10000开始的,下列能正确表示QQ号的正则是( )。
A.^\d{5,}$
B.^[1-9][0-9]{4,8}$
C.^[1-9]\d{4,}$
D.^[1-9][0-9]{4,}$
正确答案:CD
本题考查5位以上数字1-9开头的数字,正则的表示方法。
选项CD正确。
50.
(多选题)下列关于JDK的说法正确的是( )
A.开发一个Java程序,需要完整的JDK
B.运行一个Java程序,需要完整的JDK
C.运行一个Java程序,只需要JDK中的JRE
D.以上说法都不对
正确答案:AC
本题考查JDK的组成和每个组成部分的功能
JDK是Java语言的软件开发工具包,其中包括JRE和一组开发工具
选项A,开发一个JAVA程序,需要开发工具,所以需要完整的JDK,正确
选项B,运行一个Java程序只需要JRE 错误
选项C,运行一个Java程序,只需要JDK中的JRE 正确
选项D,A C 选项是正确的,所以该选项是错误的
更多推荐
已为社区贡献1条内容
所有评论(0)