【每日选择题】11~20天做选择题汇总
day 11 4 月23 日测验
1.下面哪个标识符是合法的?(D)
A "9HelloWorld"
B "_Hello World"
C "Hello*World"
D "Hello$World"
标识符只能是数字字母下划线组成的,而且不能以数字开头
2.以下java程序代码,执行后的结果是(C)
java.util.HashMap map=new java.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.size());
A 0
B null
C 1
D 2
Map中键只能出现一次,是惟一的,当出现相同的key时,会覆盖之前的key
3.Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是(C)
A ArrayList和LinkedList均实现了List接口
B ArrayList的访问速度比LinkedList快
C 添加和删除元素时,ArrayList的表现更佳
D HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
4.以下描述正确的是(B)
A CallableStatement是PreparedStatement的父接口
B PreparedStatement是CallableStatement的父接口
C CallableStatement是Statement的父接口
D PreparedStatement是Statement的父接口
PreparedStatement 是CallableStatement 的父接口, Statement 是PreparedStatement 的父接口
5.下列程序的运行结果(B)
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
A pingpong
B pongping
C pingpong和pongping都有可能
D 都不输出
调用的是t线程的run方法知识一个普通的代码,顺序是按照代码出现的顺序执行的
6.下列关于容器集合类的说法正确的是?(C)
A LinkedList继承自List
B AbstractSet继承自Set
C HashSet继承自AbstractSet
D WeakMap继承自HashMap
LinkedList 继承自AbstractSequentialList 实现了List 、Deque 、Cloneable 、java.io.Serializable 接
口
AbstractSet 继承自AbstractCollection ,实现了set 接口
HashSet 继承自AbstractSet ,实现了set 、Cloneable 、java.io.Serializable 接口
7.ArrayList list = new ArrayList(20);中的list扩充几次(A)
A 0
B 1
C 2
D 3
ArrayList的底层是数组,如果没有指定长度,则默认大小是10,若指定了大小,则初始大小就是指定值
8.以下程序的输出结果是?(B)
public class Example {
String str = new String("good");
char[] ch = { 'a', 'b', 'c' };
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public static void change(String str, char ch[])
{
str = "test ok";
ch[0] = 'g';
}
}
A good and abc
B good and gbc
C test ok and abc
D test ok and gbc
调用change 的方法时,向该方法的str 传入了"good" 的地址,向该方法的数组传入了{'a','b','c'} 的地址,修改str ,将其指
向"test ok" ,但此时ex.str 依旧指向的是"good" .
修改ch 指向的数组的元素, ex.ch 指向的也是该数组,所以看到的是跟着变。
9.下面的方法,当输入为2的时候返回值是多少?(D)
public static int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}
A 0
B 2
C 4
D 10
switch 中如果没有break 会把后边的语句都执行,即第7、9 行代码都会执行到。
10.下列关于Java 并发的说法中正确的是(B)
A CopyOnWriteArrayList 适用于写多读少的并发场景
B ReadWriteLock 适用于读多写少的并发场景
C ConcurrentHashMap 的写操作不需要加锁,读操作需要加锁
D 只要在定义int 类型的成员变量i 的时候加上volatile 关键字,那么多线程并发执行i++ 这
样的操作的时候就是线程安全的了
copyonwritearraylist 适用于写少读多的并发场景
readwritelock : 读写锁,要求写写互斥、读写互斥,读读可以并发执行,在读多写少的情况下可以提高效率
concurrenthashmap 是同步的HashMap ,读写都需要加锁
volatile 只保证多线程操作的可见性,不保证原子性
day 12 4 月24 日测验
java.util.HashMap map=new java.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.size());
A "9HelloWorld"
B "_Hello World"
C "Hello*World"
D "Hello$World"
标识符有数字、美元( $ )、下划线( _ ) ,且不能以数字开头,不能使用已有的关键字
2.以下java程序代码,执行后的结果是(C)
java.util.HashMap map=new java.util.HashMap();
map.put("name",null);
map.put("name","Jack");
System.out.println(map.size());
A .0 B.null C. 1 D.2
map<key,value>中的key是不能重复的,当插入map中已有的key时,会自动覆盖已有的key
3.Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述错误的是(C)
A ArrayList和LinkedList均实现了List接口
B ArrayList的访问速度比LinkedList快
C 添加和删除元素时,ArrayList的表现更佳
D HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
删除和插入元素,LinkedList表现更佳,ArrayList删除和插入元素时,会将后面的元素进行移动,效率不高
4.以下描述正确的是(B)
A CallableStatement是PreparedStatement的父接口
B PreparedStatement是CallableStatement的父接口
C CallableStatement是Statement的父接口
D PreparedStatement是Statement的父接口
Statement是PreParedStatement的父接口,
PrePareStatement是CallableStatement的父接口
5.下列程序的运行结果(B)
public static void main(String args[]) {
Thread t = new Thread() {
public void run() {
pong();
}
};
t.run();
System.out.print("ping");
}
static void pong() {
System.out.print("pong");
}
A pingpong
B pongping
C pingpong和pongping都有可能
D 都不输出
调用的是t的run方法,所以程序会按照顺序执行
如果调用的是t的start方法,则 pingpong和pongping都有可能
6.下列关于容器集合类的说法正确的是?(C)
A LinkedList继承自List
B AbstractSet继承自Set
C HashSet继承自AbstractSet
D WeakMap继承自HashMap
LinkedList 继承自AbstractSequentialList 实现了List 、Deque 、Cloneable 、java.io.Serializable 接
口
AbstractSet 继承自AbstractCollection ,实现了set 接口
HashSet 继承自AbstractSet ,实现了set 、Cloneable 、java.io.Serializable 接口
7.ArrayList list = new ArrayList(20);中的list扩充几次(A)
A 0
B 1
C 2
D 3
ArrayList默认大小是10.如果初始化指定大小则初始就是指定的大小,ArrayList扩容每次1.5倍
8.以下程序的输出结果是?(B)
public class Example {
String str = new String("good");
char[] ch = { 'a', 'b', 'c' };
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public static void change(String str, char ch[]){
str = "test ok";
ch[0] = 'g';
}
}
A good and abc
B good and gbc
C test ok and abc
D test ok and gbc
9.下面的方法,当输入为2的时候返回值是多少?(D)
public static int getValue(int i) {
int result = 0;
switch (i) {
case 1:
result = result + i;
case 2:
result = result + i * 2;
case 3:
result = result + i * 3;
}
return result;
}
A 0
B 2
C 4
D 10
switch中没有break,则会从开始的case一直执行完
10.下列关于Java并发的说法中正确的是(B)
A CopyOnWriteArrayList适用于写多读少的并发场景
B ReadWriteLock适用于读多写少的并发场景
C ConcurrentHashMap的写操作不需要加锁,读操作需要加锁
D 只要在定义int类型的成员变量i的时候加上volatile关键字,那么多线程并发执行i++这样的操作的时候就是线程安全的了
copyonwritearraylist 适用于写少读多的并发场景
readwritelock : 读写锁,要求写写互斥、读写互斥,读读可以并发执行,在读多写少的情况下可以提高效率
concurrenthashmap 是同步的HashMap ,读写都需要加锁
volatile 只保证多线程操作的可见性,不保证原子性
day 13 4 月26 日测验
1.下面有关JVM内存,说法错误的是?(C)
A 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程隔离的
B Java方法执行内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程隔离的
C 方法区用于存储JVM加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,是线程隔离的
D 原则上讲,所有的对象都在堆区上分配内存,是线程之间共享的
方法区、堆是线程共享的,栈是线程私有的
2.下列程序段的输出结果是:( B)
public void complicatedexpression_r(){
int x=20, y=30;
boolean b;
b = x > 50 && y > 60 || x > 50 && y < -60 || x < -50 && y > 60 || x < -50 && y < -60;
System.out.println(b);
}
A true
B false
C 1
D 0
运算规则,先算&& ,再算||
3.输入流将数据从文件,标准输入或其他外部输入设备中加载道内存,在 java 中其对应于抽象类()及其子类。(A)
A java.io.InputStream
B java.io.OutputStream
C java.os.InputStream
D java.os.OutputStream
输入输出流在io包中,输入流inputStream,输出流outputStream
4.以下程序的输出结果是(A)
public class Print{
static boolean out(char c){
System.out.println(c);
return true;
}
public static void main(String[] argv){
int i = 0;
for(out('A');out('B') && (i<2);out('C')){
i++;
out('D');
}
}
}
A ABDCBDCB
B BCDABCD
C 编译错误
D 运行错误
out方法永远返回true,所以for循环取决于i,for循环了两次
5.下面关于程序编译说法正确的是(C)
A java语言是编译型语言,会把java程序编译成二进制机器指令直接运行
B java编译出来的目标文件与具体操作系统有关
C java在运行时才进行翻译指令
D java编译出来的目标文件,可以运行在任意jvm上
java编译成的是字节码文件。被JVM翻译成机器码
java源文件生成的是.class文件,与系统无关
机器码和字节码是两个概念,javac编译生成的是.class字节码文件,java运行是将字节码文件翻译成机器码
JVM的版本会影响
6.(A)仅包含方法定义和常量值。
A 接口
B 变量
C 单元
D 成员
7下面程序的运行结果:(B)
public static void main(String args[]) {
Thread t=new Thread(){
public void run(){
dianping();
}
};
t.run();
System.out.print("dazhong");
}
static void dianping(){
System.out.print("dianping");
}
A dazhongdianping
B dianpingdazhong
C a和b都有可能
D dianping循环输出,dazhong夹杂在中间
线程调用run()方法只是一行普通的代码,代码执行的顺序是按照代码的顺序的
只有当调用线程的start()方法是才会两种情况都有可能出现
8.默认类型等价表示是哪一项(C)
public interface IService {
String NAME="default";
}
A public String NAME="default";
B public static String NAME="default";
C public static final String NAME="default";
D private String NAME="default";
接口中的属性只能用public static final来修饰
9.有以下类定义:
abstract class Animal{
abstract void say();
}
public class Cat extends Animal{
public Cat(){
System.out.printf("I am a cat");
}
public static void main(String[] args) {
Cat cat=new Cat();
}
}
运行后:(B)
A I am a cat
B Animal能编译,Cat不能编译
C Animal不能编译,Cat能编译
D 编译能通过,但是没有输出结果
继承抽象类必须重写抽象类中的所有方法,或者子类也是抽象类
所以这个题有两种改法
1.在Cat中重写Animal中的say方法
2.将Cat设置成抽象类
10.类Test1定义如下
public class Test1{//1
public float aMethod(float a,float b){}//2
//3
}//4
将以下哪种方法插入行3是不合法的。(C)
A public int aMethod(int a,int b){}
B private float aMethod(int a,int b,int c){}
C public float aMethod(float a,float b){}
D public float aMethod(float a,float b,float c){}
方法重载时要求参数类型或个数不一致,对返回值没有要求
day 14 4 月27 日测验
1.在Java中,以下关于方法重载和方法重写描述正确的是?(D)
A 方法重载和方法的重写实现的功能相同
B 方法重载出现在父子关系中,方法重写是在同一类中
C 方法重载的返回值类型必须一致,参数项必须不同
D 方法重写的返回值类型必须相同或相容。
方法重载是同一个类中的两个函数,要求参数类型或参数个数不相同,对返回值类型没有要求
方法重写是父类子类中的,要求返回值类型必须相同或相容
2.下列哪些语句关于内存回收的说明是正确的? ( B)
A 程序员必须创建一个线程来释放内存
B 内存回收程序负责释放无用内存
C 内存回收程序允许程序员直接释放内存
D 内存回收程序可以在指定的时间释放内存对象
3._(A)___技术是一种可以使音频,视频和其他多媒体信息在 Internet 及 Intranet 上以实时的,无需下载等待的方式进行播放的技术。
A 流媒体
B 多媒体
C 复合媒体
D 音视媒体
4.在 java 中 , 以下 __C___ 类的对象以键 - 值的方式存储对象
A java,util.List
B java,util.ArrayList
C java,util.HashMap
D java,util.LinkedList
5.下列语句正确的是:(D)
A 形式参数可被字段修饰符修饰
B 形式参数不可以是对象
C 形式参数为方法被调用时真正被传递的参数
D 形式参数可被视为local variable
形式参数只能用final 修饰符,其它任何修饰符都会引起编译器错误
形式参数为方法被声明时的参数
6.下列哪种情况可以终止当前线程的运行?(D)
A 当一个优先级高的线程进入就绪状态时
B 当该线程调用sleep()方法时
C 当创建一个新线程时
D 抛出一个异常时
AB只会让线程阻塞,暂时停止,不会终止,线程异常或者线程正常结束才会终止当前线程
7.A派生出子类B,B派生出子类C,并且在java源代码中有如下声明:(A)
1.A a0=new A();
2.A a1=new B();
3.A a2=new C();
以下哪个说法是正确的?
A 第1行,第2行和第3行的声明都是正确的
B 第1,2,3行都能通过编译,但第2,3行运行时出错
C 第1,2行能通过编译,但第3行编译出错
D 只有第1行能通过编译
8.在java7中,下列哪个说法是正确的:(D)
A ConcurrentHashMap使用synchronized关键字保证线程安全
B HashMap实现了Collection接口
C Arrays.asList方法返回java.util.ArrayList对象
D SimpleDateFormat对象是线程不安全的
HashMap在单线程中使用synchronize大大提高效率,在多线程中使用hashTable来确保安全,hashTable使用synchronize关键字来确保线程安全,但是synchronize是对整张表加锁,在保证安全的同时效率大大降低,ConcurrentHashMap使用分段加锁机制来确保安全
Arrays.asList 方法返回java.util.ArraysList 对象
9.给定代码:
public class SwitchTest{//1
public static void main(String[] args) {//2
System.out.println("value="+switchit(4));//3
}//4
public static int switchit(int x) {
int j=1;
switch (x) {
case 1:j++;
case 2:j++;
case 3:j++;
case 4:j++;
case 5:j++;
default:j++;
}
return j+x;
}
}
第三行将输出什么?(B)
A value=6
B value=8
C value=3
D value=5
E value=4
10.关于以下程序段,正确的说法是:()
String s1="abc"+"def";//1
String s2=new String(s1);//2
if(s1.equals(s2))//3
System.out.println(".equals succeeded");//4
if(s1==s2)//5
System.out.println("==succeeded");//6
day 15 4 月28 日测验
1.用命令方式运行以下代码的运行结果是(C)
public class f{
public static void main(String[] args){
String foo1 = args[1];
String foo2 = args[2];
String foo3 = args[3];
}
}
命令: java f a b c
A 程序编译错误
B a b c
C 程序运行错误
D f
2.若有定义语句: int a=10 ; double b=3.14 ; 则表达式 'A'+a+b 值的类型是(C)
A char
B int
C double
D float
有浮点数的运算结果都是浮点数
3.指出下列程序运行的结果(B)
public class Example{ String str = new String("good"); char[ ] ch = { 'a' , 'b' , 'c' }; public static void main(String args[]){ Example ex = new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str + " and "); System.out.print(ex.ch); } public void change(String str,char ch[ ]){ str = "test ok"; ch[0] = 'g'; } }A good and abc
B good and gbc
C test ok and abc
D test ok and gbc
4.下列说法正确的是(B)
A 在类方法中可用this来调用本类的类方法
B 在类方法中调用本类的类方法可直接调用
C 在类方法中只能调用本类的类方法
D 在类方法中绝对不能调用实例方法
类方法可以通过实例调用实例方法,通过类名调用其他类的类方法,本类的类方法可以直接调用
5.可将语句块或方法设为同步使用的语句是(A)
A synchronized
B static
C abstract
D final
6.已知如下类说明:(D)
public class Test{
private float f=1.0f;
int m=12;
static int n=1;
public static void main(String args[]){
Test t=new Test();
}
}
如下哪些使用是正确的()
A t.f = 1.0
B this.n
C Test.m
D Test.n
实例边变量要通过实例调用,类变量通过类名或实例调用
7.有以下代码:
class A{
public A(String str){
}
}
public class Test{
public static void main(String[] args) {
A classa=new A("he");
A classb=new A("he");
System.out.println(classa==classb);
}
}
请问输出的结果是:(A)
A false
B true
C 报错
D 以上选项都不正确
8.以下哪项不属于java类加载过程?(B)
A 生成java.lang.Class对象
B int类型对象成员变量赋予默认值
C 执行static块代码
D 类方法解析
成员变量的赋值是在对象创建的时候
9.如果一个方法或变量是"private"访问级别,那么它的访问范围是:(D)
A 在当前类,或者子类中
B 在当前类或者它的父类中
C 在当前类,或者它所有的父类中
D 在当前类中
10.java中下面哪个能创建并启动线程(C)
public class MyRunnable implements Runnable {
public void run() {
//some code here
}
}
A new Runnable(MyRunnable).start()
B new Thread(MyRunnable).run()
C new Thread(new MyRunnable()).start()
D new MyRunnable().start()
day 16 4 月29 日测验
1.如果希望监听TCP端口9000,服务器端应该怎样创建socket?(B)
A new Socket("localhost",9000);
B new ServerSocket(9000);
C new Socket(9000);
D new ServerSocket("localhost",9000);
服务端监听ServerSocket ss = new ServerSocket(int port)
客户端连接Soceket s = new Socket(String host,int port)
网络编程服务器端只需要监听客户端的端口new Socket("localhost",9000); //客户端连接端口
new ServerSocket(9000); //服务器端监听端口
2.下列哪个类的声明是正确的?(D)
A abstract final class HI{}
B abstract private move(){}
C protected private number;
D public abstract class Car{}
final和abstract不能同时用来修饰类,
因为abstract用来修饰类表示类是抽象类,可以被继承
而final用来修饰类,表示这个类是最终类,不能被继承
abstract用来修饰方法表示是抽象方法,抽象方法不能有方法体,而且抽象方法不能是私有的,因为抽象方法需要在其他类中重写,所以不能是私有的
3.java 接口的修饰符可以为(D)
A private
B protected
C final
D abstract
4.jre 判断程序是否执行结束的标准是(A)
A 所有的前台线程执行完毕
B 所有的后台线程执行完毕
C 所有的线程执行完毕
D 和以上都无关
后台线程不会阻止进程的终止。属于某个进程的所有前台线程都终止后,该进程就会被终止。所有剩余的后台线程都会停止且不会完成。
5.s=( )//s 的值是什么?(E)
int i=5;
int s=(i++)+(++i)+(i--)+(--i);
A 28
B 25
C 21
D 26
E 24
F 23
6.如下语句通过算术运算和逻辑运算之后i和 j的结果是(D )
int i=0;
int j=0;
if((++i>0)||(++j>0))
{
//打印出i和j的值。
}
A i=0;j=0
B i=1;j=1
C i=0;j=1
D i=1;j=0
对于或运算(A||B)如果A是正确则不会继续往后执行,直接结果就是正确
7.下面不属于Object类中方法的是:(B)
A hashCode()
B finally()
C wait()
D toString()
8.下列哪项不属于jdk1.6垃圾收集器?(D)
A Serial收集器
B parNew收集器
C CMS收集器
D G1收集器
1.Serial收集器
单线程收集器,收集时会暂停所有工作线程(我们将这件事情称之为Stop The World,下称STW),使用复制收集算法,虚拟机运行在Client模式时的默认新生代收集器。
2.ParNew收集器
ParNew 收集器就是Serial的多线程版本,除了使用多条收集线程外,其余行为包括算法、STW、对象分配规则、回收策略等都与Serial收集器一摸一样。对 应的这种收集器是虚拟机运行在Server模式的默认新生代收集器,在单CPU的环境中,ParNew收集器并不会比Serial收集器有更好的效果。
3.Parallel Scavenge收集器
Parallel Scavenge收集器(下称PS收集器)也是一个多线程收集器,也是使用复制算法,但它的对象分配规则与回收策略都与ParNew收集器有所不同,它是 以吞吐量最大化(即GC时间占总运行时间最小)为目标的收集器实现,它允许较长时间的STW换取总吞吐量最大化。
4.Serial Old收集器
Serial Old是单线程收集器,使用标记-整理算法,是老年代的收集器,上面三种都是使用在新生代收集器。
5.Parallel Old收集器
老年代版本吞吐量优先收集器,使用多线程和标记-整理算法,JVM 1.6提供,在此之前,新生代使用了PS收集器的话,老年代除Serial Old外别无选择,因为PS无法与CMS收集器配合工作。
6.CMS(Concurrent Mark Sweep)收集器
CMS 是一种以最短停顿时间为目标的收集器,使用CMS并不能达到GC效率最高(总体GC时间最小),但它能尽可能降低GC时服务的停顿时间,这一点对于实时或 者高交互性应用(譬如证券交易)来说至关重要,这类应用对于长时间STW一般是不可容忍的。CMS收集器使用的是标记-清除算法,也就是说它在运行期间会 产生空间碎片,所以虚拟机提供了参数开启CMS收集结束后再进行一次内存压缩。
9.instanceof运算符能够用来判断一个对象是否为:(C)
A 一个类的实例
B 一个实现指定接口的类的实例
C 全部正确
D 一个子类的实例
instance是java的二元运算符,用来判断他左边的对象是否为右面类(接口,抽象类,父类)的实例
interface A{ } class B implements A{ } class C extends B{ } public class Iinstanceof { public static void main(String[] args) { A ab=new B(); A ac=new C(); B bc=new C(); B bb=new B(); C cc=new C(); //对象实现一个接口,用这个对象和这个接口进行instanceof判断,都为true。 System.out.println("ab instanceof A="+(ab instanceof A)); System.out.println("ac instanceof A="+(ac instanceof A)); System.out.println("bc instanceof A="+(bc instanceof A)); System.out.println("bb instanceof A="+(bb instanceof A)); System.out.println("cc instanceof A="+(cc instanceof A)); //对象和父类进行instanceof判断,都为true System.out.println("ab instanceof B="+(ab instanceof B)); System.out.println("ac instanceof B="+(ac instanceof B)); System.out.println("bc instanceof B="+(bc instanceof B)); System.out.println("bb instanceof B="+(bb instanceof B)); System.out.println("cc instanceof B="+(cc instanceof B)); //对象和他的子类进行instanceof判断为false System.out.println("ab instanceof C="+(ab instanceof C)); System.out.println("ac instanceof C="+(ac instanceof C)); System.out.println("bc instanceof C="+(bc instanceof C)); System.out.println("bb instanceof C="+(bb instanceof C)); System.out.println("cc instanceof C="+(cc instanceof C)); } }
10.对于java类型变量char c,short s,float f,double d,表达式c*s+f+d的结果类型为(D)
A float
B char
C short
D double
day 17 5 月7 日测验
1.以下哪项是类实例化的语句?(D)
A varName ClassName=new varName();
B ClassName varName=new ClassName(new ClassName);
C ClassName varName=ClassName();
D ClassName varName=new ClassName();
2.下列关于 java 语言的特点,描述错误的是(C)
A java是跨平台的编程语言
B java支持分布式计算
C java是面向过程的编程语言
D java支持多线程
3.当你编译和运行下面的代码时,会出现下面选项中的哪种情况?(B)
public class Pvf{
static boolean Paddy;
public static void main(String args[]){
System.out.println(Paddy);
}
}
A 编译时错误
B 编译通过并输出结果false
C 编译通过并输出结果true
D 编译通过并输出结果null
局部变量必须初始化,成员变量和类变量不需要初始化,他们具有默认值:
- 整型(byte、int、short、long):0
- 浮点型(double、float):0.0
- 布尔型(boolean):false
- 字符型(char):\u0000
- 引用类型(String):null
4.以下叙述正确的是(D)
A 实例方法可直接调用超类的实例方法
B 实例方法可直接调用超类的类方法、
C 实例方法可直接调用子类的实例方法
D 实例方法可直接调用本类的实例方法
实例方法调用超类的方法,超类的方法必须是public或protected
实例方法可直接调用实例方法可静态方法
静态方法调用实例方法必须使用实例调用,调用静态方法可直接调用
5.Java 语言用以下哪个类来把基本类型数据封装为对象(A)
A 包装类
B Class
C Math
D Object
6.c变量a是一个64位有符号的整数,初始值用16进制表示为:0Xf000000000000000; 变量b是一个64位有符号的整数,初始值用16进制表示为:
0x7FFFFFFFFFFFFFFF。 则a-b的结果用10进制表示为多少?(C)
A 1
B -(2^62+2^61+2^60+1)
C 2^62+2^61+2^60+1
D 2^59+(2^55+2^54+…+2^2+2^1+2^0)
7.HashSet子类依靠()方法区分重复元素。(C)
A toString(),equals()
B clone(),equals()
C hashCode(),equals()
D getClass(),clone()
8.以下代码在编译和运行过程中会出现什么情况(A)
public class TestDemo{
private int count;
public static void main(String[] args) {
TestDemo test=new TestDemo(88);
System.out.println(test.count);
}
TestDemo(int a) {
count=a;
}
}
A 编译运行通过,输出结果是88
B 编译时错误,count变量定义的是私有变量
C 编译时错误,System.out.println方法被调用时test没有被初始化
D 编译和执行时没有输出结果
9.以下程序执行的结果是:(C)
class X{
Y y=new Y();
public X(){
System.out.print("X");
}
}
class Y{
public Y(){
System.out.print("Y");
}
}
public class Z extends X{
Y y=new Y();
public Z(){
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
A ZYXX
B ZYXY
C YXYZ
D XYZX
10.有这么一段程序:
public class Test{
public String name="abc";
public static void main(String[] args){
Test test=new Test();
Test testB=new Test();
System.out.println(test.equals(testB)+","+test.name.equals(testB.name));
}
}
请问以上程序执行的结果是()
A true,true
B true,false
C false,true
D false,false
第一个比较的是两个Test的对象是否一致,一个是test一个是TestB,分别在堆的两块内存空间,所以是false。
第二个比较的时候name的值是否一致,都是abc,true
day 18 5 月8 日测验
day 19 5 月10 日测验
day 20 5 月11 日测验


