天天看点

牛客java选择题每日打卡Day10

牛客java选择题每日打卡Day10

👩‍💻博客主页:京与旧铺的博客主页

✨欢迎关注🖱点赞🎀收藏⭐留言✒

🔮本文由京与旧铺原创

😘系列专栏:java学习

👕参考网站:牛客网

💻首发时间:🎞2022年6月1日🎠

🎨你做三四月的事,八九月就会有答案,一起加油吧

🀄如果觉得博主的文章还不错的话,请三连支持一下博主哦

🎧最后的话,作者是一个新人,在很多方面还做的不好,欢迎大佬指正,一起学习哦,冲冲冲

💬推荐一款模拟面试、刷题神器👉​​​点击进入网站​​

牛客java选择题每日打卡Day10

🛒导航小助手🎪

文章目录

  • ​​牛客java选择题每日打卡Day10​​
  • ​​🛒导航小助手🎪​​
  • ​​@[toc]​​
  • ​​🤐选择题1​​
  • ​​正确答案: A 你的答案: D (错误)​​
  • ​​😴选择题2​​
  • ​​正确答案: B D 你的答案: B C (错误)​​
  • ​​😎选择题3​​
  • ​​正确答案: A 你的答案: B (错误)​​
  • ​​😋选择题4​​
  • ​​正确答案: A B C D 你的答案: B D (错误)​​
  • ​​😫选择题5​​
  • ​​正确答案: A C D G 你的答案: B D F G (错误)​​

🤐选择题1

基本的Java语言函数存储在以下哪个java包中?()

正确答案: A 你的答案: D (错误)

java.lang
java.io
java.net
java.util      
  • java.lang 提供java基础类,例如:Object\Math\String\StringBuffer\System\Tread等,这是我们最常用的包包,但是我们并不常见到她,因为我们不需要将她手动导入;

    java.util 提供包括集合框架、事件模型、日期时间、等等的使用工具类;

    java.io 提供通过文件系统、数据流和序列化提供系统的输入输入;

    java.net 提供实时网络应用和开发的类;

    java.sql 提供使用java语言访问并处理存储在数据源中的数据API;

    java.awt 和 java.swing 提供了GUI开发与设计的类,awt提供了创建界面和绘制图形图像的所有类,swing包提供了一组“轻量级”的组件,尽量让这些组件在所有平台上的工作方式相同;

    java.text 提供了与自然语言无关的方式来处理文本日期、数字和消息的类和接口。

😴选择题2

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

正确答案: B D 你的答案: B C (错误)

程序计算器
方法区
java虚拟机栈
java堆      
  • 共享的资源有:

    a. 堆 由于堆是在进程空间中开辟出来的,所以它是理所当然地被共享的;因此new出来的都是共享的(16位平台上分全局堆和局部堆,局部堆是独享的)

    b. 全局变量 它是与具体某一函数无关的,所以也与特定线程无关;因此也是共享的

    c. 静态变量 虽然对于局部变量来说,它在代码中是“放”在某一函数中的,但是其存放位置和全局变量一样,存于堆中开辟的.bss和.data段,是共享的

    d. 文件等公用资源 这个是共享的,使用这些公共资源的线程必须同步。Win32 提供了几种同步资源的方式,包括信号、临界区、事件和互斥体。

    独享的资源有

    a. 栈 栈是独享的

    b. 寄存器 这个可能会误解,因为电脑的寄存器是物理的,每个线程去取值难道不一样吗?其实线程里存放的是副本,包括程序计数器PC

😎选择题3

程序文件名必须与公共外部类的名称完全一致(包括大小写).

正确答案: A 你的答案: B (错误)

正确
错误      

一个java文件里可以有多个class,但是只能有一个public class外部类,并且类名必须和.java文件名相同

😋选择题4

关于OutOfMemoryError,下面说法正确的是()?

正确答案: A B C D 你的答案: B D (错误)

java.lang.OutOfMemoryError: PermGen space 增加-XX:MaxPermSize这个参数的值的话,这个问题通常会得到解决。
java.lang.OutOfMemoryError: Requested array size exceeds VM limit当你正准备创建一个超过虚拟机允许的大小的数组时,这条错误将会出现
java.lang.OutOfMemoryError: Java heap space 一般情况下解决这个问题最快的方法就是通过-Xmx参数来增加堆的大小
java.lang.OutOfMemoryError: nativeGetNewTLA这个异常只有在jRockit虚拟机时才会碰到      

关于此题,《深入理解java虚拟机》有关于OOM(OutOfMemory)问题的解释

A:属于运行时常量池导致的溢出,设置-XX:MaxPermSize可以解决这个问题,

B:属于堆空间不足导致的错误,问题比较少见,解决方式和C相同,

C:属于java堆内存问题,一般的手段是通过内存映像分析工具,对Dump出来的堆转储存快照进行分析,重点是确认内存中的对象是否是有必要的,也就是要判断是出现了内存泄漏,还是出现了内存溢出,如果是内存列楼,通过工具检查泄露对象打GC Roots的引用链信息,可以准确的确定出泄露代码的位置,不存在泄露,就应该检查虚拟机的堆参数,如果可以继续调大,可以设置-Xmx解决问题

D:java.lang.OutOfMemoryError: nativeGetNewTLA指当虚拟机不能分配新的线程本地空间(Thread Local Area)的时候错误信息,此错误是线程申请一个新的TLA时产生的,这个异常一般只会发生在jRockit虚拟机,只有过于绝对。

😫选择题5

class A {}

class B extends A {}

class C extends A {}

class D extends B {}

下面的哪4个语句是正确的?

正确答案: A C D G 你的答案: B D F G (错误)

The type List<A>is assignable to List.
The type List<B>is assignable to List<A>.
The type List<Object>is assignable to List<?>.
The type List<D>is assignable to List<?extends B>.
The type List<?extends A>is assignable to List<A>.
The type List<Object>is assignable to any List reference.
The type List<?extends B>is assignable to List<?extends A>.      

耐心看完,保证能懂这道题!

public static void main(String[] args) {
    List<A> a;
    List list;
    list = a;   //A对,因为List就是List<?>,代表最大的范围,A只是其中的一个点,肯定被包含在内
    List<B> b;
    a = b;      //B错,点之间不能相互赋值
    List<?> qm;
    List<Object> o;
    qm = o;     //C对,List<?>代表最大的范围,List<Object>只是一个点,肯定被包含在内
    List<D> d;
    List<? extends B> downB;
    downB = d;  //D对,List<? extends B>代表小于等于B的范围,List<D>是一个点,在其中
    List<?extends A> downA;
    a = downA;  //E错,范围不能赋值给点
    a = o;      //F错,List<Object>只是一个点
    downA = downB;  //G对,小于等于A的范围包含小于等于B的范围,因为B本来就比A小,B时A的子类嘛
  }
>是一个点,在其中
    List<?extends A> downA;
    a = downA;  //E错,范围不能赋值给点
    a = o;      //F错,List<Object>只是一个点
    downA = downB;  //G对,小于等于A的范围包含小于等于B的范围,因为B本来就比A小,B时A的子类嘛
  }