1.下列JavaDOC注释正确的是(C)
A. /阿拓老师很帅/
B. //阿拓老师很帅*/
C. /阿拓老师很帅/
D. /阿拓老师很帅/
解析:JavaDoc注释的用法:
//注释一行
/……/注释若干行
/……/注释若干行,并写入javadoc文档。通常这种注释的多行写法如下:
/**
……….
*……….
2.为一个boolean类型变量赋值时,可以使用(B)
A.boolean = 1;
B.boolean a = (9>=10);
C.boolean a = “真”;
D.boolean a == false;
解析:boolean变量赋值只能是true或者false,A、C为整型和string型故错误,D项赋值时应为=,==表示一种判断,改为boolean a=false;则正确。B中9>=10为false。
3. 下列代码输出结果是(D)
int i = 10;
while(i > 0){
i = i++;
if(i == 10){
break;
}
}
A.while循环执行10次
B.死循环
C.循环一次都不执行
D.循环执行一次
解析:i=10,进入while循环i=i++,++在后先赋值后自增,所以i依旧等于10。碰上if语句,i等于10,执行break语句跳出while循环,循环结束,共执行一次。
4.下面代码输出结果是(B)
int i = 0,s = 0;
do{
if(i%2 == 0){
i++;
continue;
}
i++;
s = s + i;
}while(i < 7);
System.out.println(s);
A. 16
B. 12
C. 28
D. 21
解析:i=0,s=0,进入do循环,执行if语句,i=1,并且结束该次循环,i<7,不跳出循环。
i=1,s=0,不执行if语句内部语句,i=2,s=0+2=2,结束该次循环,i<7,不跳出循环。
i=2,s=2,执行if语句,i=3,并且结束该次循环,i<7,不跳出循环。
i=3,s=2,不执行if语句内部语句,i=4,s=2+4=6,结束该次循环,i<7,不跳出循环。
i=4,s=6,执行if语句,i=5,并且结束该次循环,i<7,不跳出循环。
i=5,s=6,不执行if语句内部语句,i=6,s=6+6=12,结束该次循环,i<7,不跳出循环。
i=6,s=6,执行if语句,i=7,并且结束该次循环,i=7,跳出循环。
执行输出语句,输出s=12。
5.下列说法错误的有(不定项选择)(**B,C,D**)
A.数组是一种对象
B.数组属于一种原生类
C.int number = []{31,23,33,43,35,63};
D.数组的大小可以任意改变
解析:B,基本数据类型为原生类,数组是引用数据类型不是原生类,但是一种对象。C,数组的声明与初始化格式不对,应为int []number=new int[]{31,23,33,43,35,63};D,数组大小一经指定则无法改变。
6.下面哪个选项编译不会出错(**B**)
A.import java.util.*;
package mypackage;
class MyClass {}
B.package mypackage;
import java.util.*;
class MyClass{}
C.package mypackage;
class MyClass{}
import java.util.*;
D.class MyClass{}
package mypackage;
import java.util.*;
解析:package语句可以省略,写的话要放在第一句。需要引用其他包放在package后,类的声明之前。
**
7.关于数组默认值,错误的是(B)
A.String—null
B.Boolean—true
C.float—0.0f
D.int—0
解析:整型默认值为0;浮点型默认值为0.0;字符型默认值为’0’;boolean型默认值为false;引用数据类型默认值为null。
8.有以下程序片段且Interesting不是内部类
下列哪个选项不能插入到1.行(**D**)
1.
2.public class Interesting{
3. //#省略代码
4.}
A.import java.util.*;
B.package mypackage;
C.class OtherClass{}
D.public class MyClass{}
解析:A为引用包,B为创建包,C是一个普通类。D,public修饰的类只能有一个
9.以下代码的输出结果是?(**C**)
public class B{
public static B t1 = new B();
public static B t2 = new B();
{
System.out.println(“构造块”);
}
static{
System.out.println(“静态块”);
}
public static void main(String[] args){
B t = new B();
}
}
A.静态块 构造块 构造块 构造块
B.构造块 静态块 构造块 构造块
C.构造块 构造块 静态块 构造块
D.构造块 构造块 构造块 静态块
解析:在一个类中,先加载类再执行main函数。所以先执行t1实例化语句public static B t1 = new B();程序块运行输出构造块。接着执行t2实例化语句 public static B t2 = new B();程序块运行输出构造块。接着按照顺序执行静态代码块输出静态块,最后实例化t生成t对象,程序块运行输出构造块。
10.下列选项中关于Java封装的说法错误的是(**D**)
A.通常狭义的封装就是指将属性私有化,提供公有方法访问私有属性
B.属性的访问方法包括setter方法和getter方法
C.setter方法用于赋值,getter方法用于取值
D.包含属性的类都必须封装属性,否则无法通过编译
解析:(1)对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类、接口、异常等。它往往用于对外的情况,也就是对象或类对外的一种接口的形式。
(2)对于protected修饰符,它主要的作用就是用来保护子类的。它的含义在于子类可以用它修饰的成员,其他的不可以,它相当于传递给子类的一种继承的东西。
(3)(什么都不写就是default)对于default来说,有点的时候也成为friendly(友员),它是针对本包访问而设计的,任何处于本包下的类、接口、异常等,都可以相互访问,即使是父类没有用protected修饰的成员也可以。
(4)对于private来说,它的访问权限仅限于类的内部,是一种封装的体现,例如,大多数的成员变量都是修饰符为private的,它们不希望被其他任何外部的类访问。
11.正确描述如下类和类关系的选项是(**D**)
“Man has a best friend who is a Dog”
A.class Man extends Dog { }
B.class Man implements Dog { }
C.class Man { private BestFriend dog; }
D.class Man { private Dog bestFriend; }
E.class Man { private Dog
F.class Man { private BestFriend
解析:“Man has a best friend who is a Dog”人类有一个最好的朋友—狗。BestFriend是属性,Dog是属性的类型(成员变量可以叫做类属性)。**
12.Given:
class Alpha{
public void foo(){
System.out.print(“Afoo”);
}
}
public class Beta extends Alpha{
public void foo(){
System.out.print(“Bfoo”);
}
public static void main(String[] args){
Alpha a = new Beta();
Beta b = (Beta)a;
a.foo();
b.foo();
}
}
What is the result?(**D**)
A.Afoo Afoo
B.Afoo Bfoo
C.Bfoo Afoo
D.Bfoo Bfoo
E.Compilation fails
F.An exception is thrown at runtime
解析:考察多态性,编译器认为a是Alpha类型,b是Beta类型,但是虚拟机知道a和b的真实类型是Beta,重载发生过子类和父类中时会发生覆盖现象,子类优先调用自己的同名函数,所以调用Beta类的函数。
13.Given:
class Mammal{ }
class Raccoon extends Mammal{
Mammal m = new Mammal();
}
class BabyRaccoon extends Mammal{}
Which four statements are true(Choose four)(**A,B,C,F**)
A.Raccoon is-a Mammal.
B.Raccoon has-a Mammal.
C.BabyRaccoon is-a Mammal.
D.BabyRaccoon is-a Raccoon.
E.BabyRaccoon has-a Mammal.
F.BabyRaccoon is-a BabyRaccoon.
解析:Mammal为父类,拥有两个子类,Raccoon和BabyRaccoon,Raccoon类中创建了一个新对象m为Mammal类,故正确答案为A、B、C、F。
14.下面选项可以在interface中合法定义的是(**B**)
A.public static void main(String[] args);
B.boolean setFlags(Boolean[] results);
C.private float get(int x);
D.static int getCount();
解析:出现static、default关键字以及主方法时,需要有方法体,没有方法体则看为抽象方法,权限至少为protected。
15.Given:
interface DeclareStuff{
public static final int EASY = 3;
void doStuff(int t);
}
public class TestDeclare implements DeclareStuff{
public static void main(String [] args){
int x = 5;
new TestDeclare().doStuff(++x);
}
void doStuff(int s){
s += EASY + ++s;
System.out.println(“s “ + s);
}
}
What is the result?(D)
A.s 14
B.s 16
C.s 10
D.Compilation fails.
E.An exception is thrown at runtime.
解析:在interface中的void doStuff(int t);一定是public,而TestDeclare中实现的时候就变成了包可见性,reduce了可见性,所以编译要出错的。