概述
1.映射 (Map) 的key和value都不可重复。( )
正确答案: B 你的答案: B (正确)
A.正确
B.错误
解释:
Map接口有两个金典的子类分别是 Hashtable 和 Hashmap。
Hashtable 线程安全,不支持key和value为空,key不能重复,但value可以重复,不支持key和value为null。
Hashmap 非线程安全,支持key和value为空,key不能重复,但value可以重复,支持key和value为null。
2.有以下代码片段:
String str1="hello";
String str2="he"+ new String("llo");
System.out.println(str1==str2);
请问输出的结果是:
正确答案: D 你的答案: D (正确)
A.true
B.都不对
C.null
D.false
解释:
String str1=“hello”; 这样创建字符串是存在于常量池中
String str2=new String(“hello”); str2存在于堆中,
==是验证两个对象是否是一个(内存地址是否相同)
用+拼接字符串时会创建一个新对象再返回。
3.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是? ( )
正确答案: C 你的答案: D (错误)
A.void use() { …}
B.protected void use() { …}
C.public void use() { …}
D.以上语句都可以用在类SmallCup中
解释:
接口,比抽象类还要抽象的类。
- 接口中每一个方法也是隐式抽象的,接口中的方***被隐式的指定为 public abstract (只能是 public
abstract,其他修饰符都会报错)。- 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用
private 修饰会报编译错误。)- 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。
注:
接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字。
接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字。
接口中的方法都是公有的。public
4.以下 b 的值是: byte b = (byte)129;
正确答案: B 你的答案: B (正确)
A.-126
B.-127
C.-128
D.-129
解释:
这题考察的就两个知识点:一、强制转换(主要涉及各个类型占几个字节,这里我只简单说一下byte型占一个字节,也就是8位,int型4个字节,32位);二、在计算机系统中,数值一律用补码来表示(存储)
正数:补码=反码=原码(当然以二进制形式表达)
129 int类型(4个字节)二进制: 00000000 00000000 00000000 10000001
强制转换byte型后,只有一个字节即 10000001(注意这里从二进制角度看,第一位是符号位,即求负数的补码接下来)
只要求出上面原码对应的补码就行了,然后再转换对应的int型数值(因为题干所给的答案都是比较int型)
10000001(原码) 对应的反码为1111 1110
又补码等于反码+1
即1111 1111 该二进制转换int型刚好是-127(1+2+4+8+16+32+64)
5.以下哪个类包含方法flush()?()
正确答案: B 你的答案: B (正确)
A.InputStream
B.OutputStream
C.A 和B 选项都包含
D.A 和B 选项都不包含
解释:
flush()函数强制将缓冲区中的字符流、字节流等输出,目的是如果输出流输出到缓冲区完成后,缓冲区并没有填满,那么缓冲区将会一直等待被填满。所以在关闭输出流之前要调用flush()。
6.当x=?时,会输出”Test2“?
switch (x)
{
case 1: System.out.println("Test1");
case 2:
case 3:
System.out.println("Test2");
break;
default:
System.out.println("Test3");
break;
}
正确答案: B C D 你的答案: B C D (正确)
A.0
B.1
C.2
D.3
E.4
解释:
switch(表达式)
{
case 常量表达式1:语句1;
…
case 常量表达式2:语句2;
default:语句;
}
default就是如果没有符合的case就执行它,default并不是必须的.
case后的语句可以不用大括号.
switch语句的判断条件可以接受int,byte,char,short,不能接受其他类型.
一旦case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break,利用这一特性可以让好几个case执行统一语句.
7.对于构造方法,下列叙述正确的是( )。
正确答案: A C D 你的答案: A D (错误)
A.构造方法的优先级一般比代码块低。
B.构造方法的返回类型只能是void型。
C.构造方法的主要作用是完成对类的对象的初始化工作。
D.一般在创建新对象时,系统会自动调用构造方法。
解释:
A:静态成员变量或静态代码块>main方法>非静态成员变量或非静态代码块>构造方法
B:think in java中提到构造器本身并没有任何返回值。
C: 构造方法的主要作用是完成对类的对象的初始化工作。
D: 一般在创建(new)新对象时,系统会自动调用构造方法。
补充:
构造方法的特点:
构造方法的方法名与类名相同
构造方法没有返回值类型,也不写void
构造方法可以重载
什么时候会用到构造方法:
在创建对象的时候
构造方法的作用:
创建对象的时候给属性赋初值
构造方法的分类:
显示的构造方法和隐式地构造方法
显示的构造方法:显示的写出构造方法时,系统不会提供默认的无参构造方法
隐式地构造方法:系统默认提供的无参构造方法
代码块:
分类:静态代码块和实例代码块
静态代码块:static修饰的代码块,在类加载时执行,且只执行一次。因为类就加
载一次了。
实例代码块:没有static修饰的代码块,创建对象时执行,每创建一次对加载一
次。
实例代码块在执行构造方法之前执行。所以优先级高于构造方法。
8.JAVA反射机制主要提供了以下哪些功能?
正确答案: A B C D 你的答案: A C D (错误)
A.在运行时判断一个对象所属的类
B.在运行时构造一个类的对象
C.在运行时判断一个类所具有的成员变量和方法
D.在运行时调用一个对象的方法
解释:
普通的java对象是通过new关键字把对应类的字节码文件加载到内存,然后创建该对象的。
反射是通过一个名为Class的特殊类,用Class.forName(“className”);得到类的字节码对象,然后用newInstance()方法在虚拟机内部构造这个对象(针对无参构造函数)。
也就是说反射机制让我们可以先拿到java类对应的字节码对象,然后动态的进行任何可能的操作,
包括
- 在运行时判断任意一个对象所属的类
- 在运行时构造任意一个类的对象
- 在运行时判断任意一个类所具有的成员变量和方法
- 在运行时调用任意一个对象的方法
这些都是反射的功能。
使用反射的主要作用是方便程序的扩展。
9.以下哪种JAVA的变量表达式使得变量a和变量b具有相同的内存引用地址( )
正确答案: A B 你的答案: A B (正确)
A.String a = “hello”; String b = “hello”;
B.Integer a; Integer b = a;
C.int a = 1; Integer b = new Integer(1);
D.int a = 1; Integer b = 1;
解释:
内存引用地址,是指栈中存放的地址,来指向堆中的某个位置。
int 是基本类型,数据直接存放在栈中,不存在内存引用地址的说法
==
A对 指向常量池里的"hello"。
B对 题中没说声明的a是局部变量。
C错 int a =1;并不指向堆中,它只有值,没有引用地址,Integer b =new Integer(1);指向堆中地址为1的位置。
D错 原因同C
10.What is Static Method in Java()
(什么是Java中的静态方法)
正确答案: A B C 你的答案: B C (错误)
A.It is a method which belongs to the class and not to the object(instance)
(它是属于类而不是对象(实例)的方法)
B.A static method can access only static data. It can not access non-static data (instance variables)
(静态方法只能访问静态数据。它不能访问非静态数据(实例变量)
C.A static method can call only other static methods and can not call a non-static method from it.
(静态方法只能调用其他静态方法,不能从中调用非静态方法)
D.A static method can not be accessed directly by the class name and doesn’t need any object
(静态方法不能通过类名直接访问,也不需要任何对象)
解释:
A:静态方法是一个属于类而不属于对象(实例)的方法。(√)
B:静态方法只能访问静态数据。无法访问非静态数据(实例变量)。(√)
C:静态方法只能调用其他静态方法,不能从中调用非静态方法。(√)
D:静态方法不能通过类名直接访问,也不需要任何对象。(×) 静态方法可以直接用类名访问。
最后
以上就是雪白百褶裙为你收集整理的Java选择题(十六)的全部内容,希望文章能够帮你解决Java选择题(十六)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复