Java笔试错题集

2 篇文章 0 订阅
2 篇文章 0 订阅

时间:2022/3/18

1.运用下列哪个命令能够获取JVM的内存映像

正确答案: B 你的答案: B (正确)
jinfo
jmap
jhat
jstat

2.如果一个接口Cup有个方法use(),有个类SmallCup实现接口Cup,则在类SmallCup中正确的是?

正确答案: C 你的答案: A (错误)
void use() { …}
protected void use() { …}
public void use() { …}
以上语句都可以用在类SmallCup中
在这里插入图片描述

3.下面哪个不对?

正确答案: C 你的答案: 空 (错误)
RuntimeException is the superclass of those exceptions that can be thrown during the normal operation of the Java Virtual Machine.
RuntimeException(运行时异常)是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类
A method is not required to declare in its throws clause any subclasses of
RuntimeExeption that might be thrown during the execution of the method but not caught

An RuntimeException is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch.

NullPointerException is one kind of RuntimeException
空指针异常是其中一种,还有数组越界异常ArrayIndexOutOfBoundsException等等,见基础

4.以下各类中哪几个是线程安全的?( )

正确答案: B C D 你的答案: A (错误)
ArrayList
Vector
Hashtable
Stack

线程同步:喂,SHE
喂(Vector)
S(Stack)
H(hashtable)
E(enumeration)

5.java7后关键字 switch 支不支持字符串作为条件:()

正确答案: A 你的答案: A (正确)
支持
不支持
在Java7之前,switch只能支持 byte、short、char、int或者其对应的封装类以及Enum类型。在Java7中,呼吁很久的String支持也终于被加上了。在switch语句中,表达式的值不能是null,否则会在运行时抛出NullPointerException。在case子句中也不能使用null,否则会出现编译错误。
同时,case字句的值是不能重复的。

6.欲定义类字段或类方法(静态方法),应该使用下列哪一个修饰符修饰()

正确答案: B 你的答案: C (错误)
public
static
protected
synchronized
答案解析
A、 public可以修饰类,数据成员,构造方法,方法成员。被public修饰的成员 ,可以在任何一个类中被调用,不管同包或不同包,是权限最大的一个修饰符。
B、 static用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
C、 private可以修饰数据成员,构造方法,方法成员,不能修饰类(此处指外部 类,不考虑内部类)。被private修饰的成员,只能在定义它们的类中使用,在 其他类中不能调用。
D、 synchronized可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码

7.关于final说法正确的是?

正确答案: B 你的答案: B (正确)
final类的方法肯定不能被同一个包的类访问
final类的方法能否被同一个包的类访问不是由final决定
final方法等同于private方法
final对象本身的引用和值都不能改变

final变量,如果是基本数据类型,则其数值一旦初始化后就不能被改变。如果是引用类型的变量,则对其初始化后,便不能再指向另一个对象,但是其里面的值是可以改变的。引用变量所指向的对象中的内容是可以改变的。

8.在运行时,由java解释器自动引入,而不用import语句引入的包是()。

正确答案: A 你的答案: A (正确)
java.lang
java.system
java.io
java.util

java.lang包是java语言的核心包,lang是language的缩写
java.lang包定义了一些基本的类型,包括Integer,String之类的,是java程序必备的包,有解释器自动引入,无需手动导入

9.将下列哪个代码(A、B、C、D)放入程序中标注的【代码】处将导致编译错误?

class A{
public float getNum(){
return 3.0f;
}
}
public class B extends A{
【代码】
}

正确答案: B 你的答案: D (错误)
public float getNum(){return 4.0f;}
public void getNum(){}
public void getNum(double d){}
public double getNum(float d){return 4.0d;}

重写要满足的条件:
1.参数列表要完全相同——(如果不一致就是重载不是重写)
2.返回类型是父类方法的返回类型的子类型
3.访问权限不能大于父类方法权限——(就是访问修饰符要比父类的小于等于)
这里访问权限都相同,返回类型都是基本类型,只看相不相同就可以
A.返回值类型相同,参数名参数列表相同,满足方法重写,是正确的
B.返回值类型不同,参数名参数列表相同,是重写但不满足重写条件,错误
C.返回值类型不同,参数名参数列表不同,不是重写,只是一个重名方法
D.返回值类型不同,参数名参数列表不同,不是重写,只是一个重名方法

没懂。。。。## 10.下面代码输出结果是?
int i = 5;
int j = 10;
System.out.println(i + ~j);
正确答案: C 你的答案: B (错误)
Compilation error because”~”doesn’t operate on integers
-5
-6
15
*公式-n=n+1可推出n=-n-1,所以~10=-11再加5结果为-6
计算机本身储存的就是补码:
那么10的补码就是10的原码:0000 0000 0000 1010——这是补码,因为现在是计算机在计算
~10的补码就是:1111 1111 1111 0101
~10的反码就是:1111 1111 1111 0100——补码减1
~10的原码就是:1000 0000 0000 1011——反码取反:这个才是正常二进制数,换算为整数为-11
原码才可以对应为正常的整数,补码只有转换为原码才能被正常人类识别。
*

11.以下代码段执行后的输出结果为

public class Test {
public static void main(String[] args) {
System.out.println(test());

}
private static int test() {
    int temp = 1;
    try {
        System.out.println(temp);
        return ++temp;
    } catch (Exception e) {
        System.out.println(temp);
        return ++temp;
    } finally {
        ++temp;
        System.out.println(temp);
    }
}

}

正确答案: D 你的答案: B (错误)
1,2,2
1,2,3
1,3,3
1,3,2

finally代码块在return中间执行。return的值会被放入临时空间,然后执行finally代码块,如果finally中有return,会刷新临时空间的值,方法结束返回临时空间值。
finally中的代码一定会执行

12.java运行时内存分为“线程共享”和“线程私有”两部分,以下哪些属于“线程共享”部分

正确答案: B D 你的答案: C D (错误)
程序计算器
方法区
java虚拟机栈
java堆

共享的资源有:
a. 由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)
b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的
c. 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的
d. 文件等公用资源 这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。
独享的资源有
a. 栈是独享的
b. 寄存器 这个可能会误解,因为电脑的寄存器是物理的,每个线程去取值难道不一样吗?其实线程里存放的是副本,包括程序计数器PC

13.下面关于volatile的功能说法正确的是哪个

正确答案: B C 你的答案: A (错误)
原子性
有序性
可见性
持久性

synchronized保证三大性,原子性,有序性,可见性,volatile保证有序性,可见性,不能保证原子性

数据库事务正确执行的四个基本要素,ACID(原子性Atomicity,一致性consistency,隔离性isolation,持久性durability ),持久性就是能够长期保存到磁盘或数据库里。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值