Java笔试日常归纳(1)

(1)
在异常处理中,以下描述不正确的有
(A) try块不可以省略
(B)可以使用多重catch块
(C) finally块可以省略
(D)catch块和finally块可以同时省略

这一题说实话我还百度了,真惭愧。选D,当你在Idea写出了一个try{}编译器回报一个错误:catch’ or ‘finally’ expected.。

(2)
以下对继承的描述错误的是()
(A) Java中的继承允许一个子类继承多个父类
(B) 父类更具有通用性,子类更具体
(C)Java中的继承存在着传递性
(D)当实例化子类时会递归调用父类中的构造方法

惭愧,D选项纠结了半天,想着如果我通过反射来实例化子类会调用子类构造函数吗(只要子类调用了,当然父类也跑不了)。百度后知道了,这是会的。User.class.getConstructor(Integer.class, String.class).newInstance(1, “Jack”);或者是User.class.getConstructor().newInstance();

(3)
判断一块内存空间是否符合垃圾收集器收集的标准有哪些?

第一:给对象引用赋予了null,但是以下都没有调用过。
第二:给对象赋予了新的指,重新分配了内存空间

(4)
关于Java内存区域下列说法不正确的有哪些
正确答案: B C 你的答案: A B C D (错误)
(A)程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器,每个线程都需要一个独立的程序计数器.
(B)Java虚拟机栈描述的是java方法执行的内存模型,每个方法被执行的时候都会创建一个栈帧,用于存储局部变量表、类信息、动态链接等信息
(C)Java堆是java虚拟机所管理的内存中最大的一块,每个线程都拥有一块内存区域,所有的对象实例以及数组都在这里分配内存。
(D)方法区是各个线程共享的内存区域,它用于存储已经被虚拟机加载的常量、即时编译器编译后的代码、静态变量等数据。

A.程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示器(偏移地址),Java编译过程中产生的字节码有点类似编译原理的指令,程序计数器的内存空间存储的是当前执行的字节码的偏移地址,每一个线程都有一个独立的程序计数器(程序计数器的内存空间是线程私有的),因为当执行语句时,改变的是程序计数器的内存空间,因此它不会发生内存溢出 ,并且程序计数器是jvm虚拟机规范中唯一一个没有规定 OutOfMemoryError 异常 的区域;
B.java虚拟机栈:线程私有,生命周期和线程一致。描述的是 Java 方法执行的内存模型:每个方法在执行时都会床创建一个栈帧(Stack Frame)用于存储局部变量表、操作数栈、动态链接、方法出口等信息。每一个方法从调用直至执行结束,就对应着一个栈帧从虚拟机栈中入栈到出栈的过程。 没有类信息,类信息是在方法区中
C.java堆:对于绝大多数应用来说,这块区域是 JVM 所管理的内存中最大的一块。线程共享,主要是存放对象实例和数组
D.方法区:属于共享内存区域,存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值