20210324牛客Java150题错题解

题目

关于instanceof的应用

在这里插入图片描述
正解为C,错解为A。
instanceof是java中的一个二元操作符,作用是测试它左边的对象是否是它右边的类的实例。
该题中 obj 对象声明为A类型,创建为D类型对象。D对象继承了B对象,B对象继承了A对象,而C对象又继承了B对象,也就是说,D并不是C的一个实例。
在这里插入图片描述
在这里插入图片描述

JVM内存不包含如下哪个部分( )

在这里插入图片描述
正解为D,错解为B。
错误原因:众所周知,JVM内存区域大概分为五块:堆,栈,本地方法区,程序计数器,方法区
其中线程共享的是:堆,方法区
PC寄存器也叫程序计数器。

如果要建立一个java.scut.computer的包,叙述正确的是? ( )

在这里插入图片描述
正解:A(存疑),错解:D
一般不能用java来命名,不然会报错。
而如果能够用java命名,那么package必须在非注释语句第一行。
总结:该题不严谨。

java中将ISO8859-1字符串转成GB2312编码,语句为 ?

在这里插入图片描述
JAVA有一个 public String(byte bytes[], Charset charset) 函数可以用指定字节数组和编码来构造字符串。一个 public byte[] getBytes(Charset charset) 函数把字符串按指定编码来得到字节数组。可以用这两个函数来实现编码转换。选A。

下面有关java object默认的基本方法,说法错误的是?

在这里插入图片描述
正解:B,错解:C
解析:Object类中只有以下几种方法。

  • clone
  • notify
  • notifyAll
  • toString
  • wait(三个重载)
  • finalize
  • getClass
  • hashCode
  • equals
    其中没有copy方法,只有clone方法。

下面哪个行为被打断不会导致InterruptedException:( )?

在这里插入图片描述
正解:E 错解:B
解答这个题,我们首先得了解InterruptedException
官方源码解释是:
在这里插入图片描述
翻译:当线程在活动之前或者活动期间处于正在等待,休眠或占用状态且线程中断 时,抛出该异常。
抛InterruptedException的代表方法有:

  • java.lang.Object 类的 wait 方法
  • java.lang.Thread 类的 sleep 方法
  • java.lang.Thread 类的 join 方法
    而选项D这个类大概的意思就是一个可循环利用的屏障,属于并发的知识。它的await方法可以简单的理解为:等待多个线程同时到达之后才能继续进行,在此之前它就是这些线程的屏障,线程不能继续进行,而对于失败的同步尝试,CyclicBarrier 使用了一种要么全部要么全不 (all-or-none) 的破坏模式:如果因为中断、失败或者超时等原因,导致线程过早地离开了屏障点,那么在该屏障点等待的其他所有线程也将通过 BrokenBarrierException(如果它们几乎同时被中断,则用 interruptedException)以反常的方式离开。因此它被中断也是可以抛出interruptedException的。

E选项的方法以及被淘汰,不多了解。

从内存实现或者反射的角度来看,关于继承的说法正确的是()。注:此处的继承不代表能调用

在这里插入图片描述
正解:A,错解:B
子类将会继承父类的所有的数据域和方法,只是对于调用有所限制,否则反射也无法去调用。

Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是()(多选)

在这里插入图片描述
正解:ABD
ArrayList底层是一个动态数组,而LinkedList底层是一个链表,所以在访问的时候ArrayList是更快一些,而LinkedList在删除元素和增加元素的时候是更为快速的。
HashMap是可以插入null值的,但是HashTable不可以。

Java 提供的事件处理模型是一种人机交互模型。它有三个基本要素

在这里插入图片描述
正解:ABD 错解:ACD
解析:面向过程的语言中没有对象这个概念,面向对象的语言中没有过程这个概念。

以下关于final关键字说法错误的是()

在这里插入图片描述
正解:AC 错解:AD
可以重载,不能重写。

java中关于继承的描述正确的是()

在这里插入图片描述
正解:ACD 错解:AD
继承具有传递性,背的。

往OuterClass类的代码段中插入内部类声明, 哪一个是错误的: (多选)

在这里插入图片描述
正解:ABCD 错解: AD
主要考核了这几个知识点:

  1. 静态内部类才可以声明静态方法
  2. 静态方法不可以使用非静态变量
  3. 抽象方法不可以有函数体

下列JAVA程序的运行结果是什么

在这里插入图片描述
正解:D 错解:A
三元运算符会自动提升精度。

下面的Java赋值语句哪些是有错误的 ()(多选)

在这里插入图片描述
正解:BF 错解:BE
解析:float赋值的时候需要在值后面加上一个l,Double类型赋值的时候需要是一个小数,或者在数后面加上d。

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

在这里插入图片描述
正解:BCD 错解:BC
解析:看错了,没看到Stack。

Math.floor(-8.5)=( )

在这里插入图片描述
正解:D 错解:B
解析:

  • floor(地板)代表向下取整,返回double
  • ceil(天花板)代表向上取整,返回double
  • round代表四舍五入,返回int

下面有关webservice的描述,错误的是?

在这里插入图片描述
正解:B 错解:D
解析:webservice没听过,查看题解后得知其为xml数据交换。

以下代码段执行后的输出结果为在这里插入图片描述

不能用来修饰interface的有( )(仅限外部接口)(多选)

在这里插入图片描述
正解:ACD 错解:CD
解析:接口的权限修饰符只能够使用 public 和 缺省。

Java类Demo中存在方法func1、func2、func3和func4,请问该方法中,哪些是不合法的定义?

在这里插入图片描述
在这里插入图片描述
正解:AD 错解:ABC
解析:范围更小的数值类型可以自动转为范围更大的数值类型。

在jdk 1.7中,以下说法正确的是( )。

在这里插入图片描述
正解:A 错解:C
解析:限制1.7,1.8接口中也可以写方法了,所以屏蔽。

下面为ture的是

在这里插入图片描述
正解:G 错解:E
解析:equals类会先比较是否为同一类型的类,如果不是就直接返回 false。

下列说法正确的是

在这里插入图片描述
正解:D 错解: B
解析:
intValue()是把Integer对象类型变成int的基础数据类型;
parseInt()是把String 变成int的基础数据类型;
Valueof()是把String 转化成Integer对象类型;(现在JDK版本支持自动装箱拆箱了。)
本题:parseInt得到的是基础数据类型int,valueof得到的是装箱数据类型Integer,然后再通过valueInt转换成int,所以选择D

String s = new String(“xyz”);创建了几个StringObject?

在这里插入图片描述
正解:A 错解:B
解析:如果常量池中有“xyz”,那么就是一个,不然就是两个。

关于Java的抽象类、接口,以下描述错误的是?

在这里插入图片描述
正解:C 错解:B
解析:抽象类只是一个不能够实例化的类,除了不能实例化和可能带有抽象方法之外都跟普通类一致。其中可以有普通方法。

非抽象类实现接口后,必须实现接口中的所有抽象方法,除了abstract外,方法头必须完全一致.在这里插入图片描述

正解:B 错解:A
实际上这道题考查的是两同两小一大原则:
方法名相同,参数类型相同
子类返回类型小于等于父类方法返回类型,
子类抛出异常小于等于父类方法抛出异常,
子类访问权限大于等于父类方法访问权限。

如果希望监听TCP端口9000,服务器端应该怎样创建socket?

在这里插入图片描述
正解:B 错解:A
解析:
new Socket(“localhost”,9000); //客户端连接端口
new ServerSocket(9000); //服务器端监听端口

在java中重写方法应遵循规则的包括()(多选)

在这里插入图片描述
正解:BC 错解:BD
解析:没看清题目。

下面选项中,哪些是interface中合法方法定义?() (多选)

在这里插入图片描述
正解:ACD 错解:CD
解析:众所周知,jdk1.8之后接口中可以写方法。

下面关于变量及其范围的陈述哪些是不正确的()(多选)

在这里插入图片描述
正解:BC 错解:BD
解析:局部变量当代码执行到该变量被赋值的代码时才被创建

关于Java的一些概念,下面哪些描述是正确的:( ) (多选)

在这里插入图片描述
正解:BF 错解:BD
解析:
D:finallize一些特殊情况下不会执行。
F:Synchronized修饰非静态方法,实际上是对调用该方法的对象加锁,俗称“对象锁”
Synchronized修饰静态方法,实际上是对该类对象加锁,俗称“类锁”。

下列代码编译和运行的结果是

在这里插入图片描述
在这里插入图片描述
正解:C 错解:A
解析:正常运行。

以下Java程序运行的结果是:

在这里插入图片描述
正解:A 错解:C
解析:方法传递是对象的一个副本。

哪个类可用于处理 Unicode?

在这里插入图片描述
正解A 错解:B
解析:单选选A,多选选AB。

下列关于容器集合类的说法正确的是?

在这里插入图片描述
正解:C 错解:A
解析:
A:继承AbstractList

下面代码在main()方法中第八行后可以正常使用的是()

在这里插入图片描述

正解:AD 错解:ABD
解析:static方法里没有this的说法。

以下哪种方式实现的单例是线程安全的

在这里插入图片描述
正解:ABCD 错解:BD
解析:实现单例模式的方法有六种

  1. 懒汉式(线程不安全)
  2. 饿汉式(线程安全)
  3. 懒汉式(线程安全)
  4. 双重检查锁实现(线程安全)
  5. 静态内部类实现(线程安全)
  6. 枚举类实现(线程安全)

下面有关值类型和引用类型描述正确的是

在这里插入图片描述
正解:ABC 错解:ACD
解析:引用类型变量也在栈上,只是这个对象实体在堆上。

内部类(也叫成员内部类)可以有4种访问权限。

在这里插入图片描述
正解:A 错解:B
解析:内部类也可以看做类的成员,所以其也有四种访问权限。

以下哪项不属于java类加载过程?

在这里插入图片描述
正解:A 错解:B
解析:
不会生成Class类对象。

下列程序的运行结果

在这里插入图片描述
正解:A 错解:B
解析:无论是什么情况,都只会抛出一个异常。

下面哪些语法结构是正确的?

在这里插入图片描述
正解:AC 错解:ACD
解析:看错了。。。

下面有关java的instanceof、?、&、&&说法正确的有?(多选)

在这里插入图片描述
正解:ABCD 错解:ABD
解析:在这里插入图片描述

下面哪些类可以被继承? Java.lang.Thread、java.lang.Number、java.lang.Double、java.lang.Math、 java.lang.ClassLoader(多选)

在这里插入图片描述
正解:ABE 错解:ABCD
解析:CD是由final修饰的类。

以下哪个不属于JVM堆内存中的区域()?

在这里插入图片描述
正解:B 错解:A
解析:jvm堆分为:新生代(一般是一个Eden区,两个Survivor区),老年代(old区)。
常量池属于 PermGen(方法区)

try块后必须有catch块。

catch可以省略

以下哪个区域不属于新生代?

在这里插入图片描述
正解:C
from和to都是Survious区域。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值