Java选择题(十六)

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中

解释:
接口,比抽象类还要抽象的类。

  1. 接口中每一个方法也是隐式抽象的,接口中的方***被隐式的指定为 public abstract (只能是 public
    abstract,其他修饰符都会报错)。
  2. 接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量(并且只能是 public,用
    private 修饰会报编译错误。)
  3. 接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法。

注:
接口是隐式抽象的,当声明一个接口的时候,不必使用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:静态方法不能通过类名直接访问,也不需要任何对象。(×) 静态方法可以直接用类名访问。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Java选择题题库是一种包含了一系列针对Java编程语言的选择题的资源库。这些选择题具有不同的难度级别和不同的主题,旨在帮助学习者更好地理解和掌握Java语言的各个方面。 Java选择题题库的使用对于学习者来说具有很大的好处。首先,通过解答选择题,学习者可以检验自己对Java语言的知识掌握程度。这可以帮助他们发现自己的不足之处,并将精力放在需要加强的知识点上。此外,通过解答选择题,学习者还可以加深对Java语言相关概念和知识的理解和记忆。 Java选择题题库可以涵盖Java语言的各个方面,比如基本语法、数据类型、控制流、面向对象编程、异常处理、多线程编程、输入输出、集合框架等等。这样的题库可以帮助学习者全面而系统地学习Java语言,并在各个方面都有所提高。 除了作为学习工具外,Java选择题题库还可以用于考试或评估学习者的水平。教育机构或培训机构可以使用这样的题库来组织考试,评估学生对Java语言的掌握情况。这样的题库可以提供一种客观的评估方式,帮助教育机构或培训机构更好地了解学生的学习状况,进行科学的教学安排。 总之,Java选择题题库是一种有益的学习资源,可以帮助学习者巩固和提高对Java语言的理解和应用能力。无论是个人学习还是教育考试,Java选择题题库都是一个有用的工具。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风儿吹吹吹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值