个人牛客错题集

2023年10月9日20:56:37

在Java中,关于HashMap类的描述,以下正确的是 (A)
A
HashMap使用键/值得形式保存数据
B
HashMap 能够保证其中元素的顺序
C
HashMap允许将null用作键
D
HashMap允许将null用作值
个人解析:HashMap可以的键值都可以为null,但是只能有一个键为null,而值可以有多个为null,HashTable
在这里插入图片描述

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

A
Java中所有的非抽象方法都必须在类内定义
B
Java中主方法可以不在类内定义,其他方法都必须定义在类内
C
Java中主方法必须定义在类内,其他方法可以不必定义在类内
D
Java中所有方法都不必在类内定义

别人的解析:1.8接口可以定义default方法和static方法;1.9接口中可以定义私有方法。

因此在JDK1.7中,接口只能定义抽象方法,既Java中所有的非抽象方法都必须在类内定义。
这里我还没有复习到,等我复习到接口的时候再来解决一下。

  • 在这里插入图片描述
    这个题有点意思,
    A
    /
    B C
    /
    D
    继承的关系是这样的,但是我当时无法理解的是这一句:
    A obj = new D().我没办法判断obj是代表A呢?还是代表D。
    看了答案有人说:多态时,编译看左边,运行看右边, 当 obj instanceof B的时候早就不是在编译了,所以它是在运行,所以obj代表了D类对象。那就解决了
    输出结果如下
    在这里插入图片描述
  • 在这里插入图片描述
    倒在了构造方法上:构造方法
    [访问修饰符] 类名(参数列表) {
    方法体
    }
    千万不要加返回值类型或者void,加上就不再是一个构造函数,而是方法了所以这题知道这是个方法就很好解决了。
  • 在这里插入图片描述
    我也不懂
  • 在这里插入图片描述
    在这里插入图片描述
  • 在这里插入图片描述
    A、抛出Interruption异常,并没有说捕获,所以A会导致线程停止
    B、什么时候可能用到这个wait方法呢?比如说,我创建很多个消费者和生产者,在消费的时候我判读发现余额并不能满足自己当前的消费,所以现在我消费不了,那我干嘛,wait()的作用是让当前线程进入阻塞(等待)状态,同时,wait()也会让当前线程释放它所持有的锁。让其他线程去跑。
    C、创建一个新的线程,新线程要先把除cpu以外的资源都准备好,才有机会等下抢到cpu然后进入运行状态。
    D,高级优先线程进入就绪状态,高级优先只能代表它在抢夺cpu的几率大而已,并不会引发中断。

在这里插入图片描述
强引用:只要引用还在就不管内存空间怎么样,都不会被回收
软引用:空间够就不回收,不够就回收
弱引用:无论空间如何,垃圾回收一定会回收
虚引用:然任何时候都可能被回收

2023年10月12日19:53:41

在这里插入图片描述
CountDownLatch:一个或者多个线程,等待其他多个线程完成某件事情之后才能执行;
CyclicBarrier:多个线程互相等待,直到到达同一个同步点,再继续一起执行。
对于CountDownLatch来说,重点是“一个线程(多个线程)等待”,而其他的N个线程在完成“某件事情”之后,可以终止,也可以等待。 而对于CyclicBarrier,重点是多个线程,在任意一个线程没有完成,所有的线程都必须互相等待,然后继续一起执行。
CountDownLatch是计数器,线程完成一个记录一个,只不过计数不是递增而是递减,而CyclicBarrier更像是一个阀门,需要所有线程都到达,阀门才能打开,然后继续执行。
按照这个题目的描述等所有线程都到达了这一个阀门处,再一起执行,此题强调的是,一起继续执行,我认为 选B 比较合理!

作者:huwei0706
链接:https://www.nowcoder.com/exam/test/74810860/submission?pid=53531439&pageSource=testHistory
来源:牛客网
在这里插入图片描述
静态变量只能在类中使用,不能在方法中使用。
静态什么东西都是跟着类走的,比如像子类不能重写父类的静态方法一样。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
##2023年10月15日14:51:35
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
错的,
当代码执行到该变量被赋值的代码时才被创建,你不给它赋值它还是不会创建。
在这里插入图片描述
在这里插入图片描述
按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。

 节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.    

 处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。    


JAVA常用的节点流:     



 文 件 FileInputStream FileOutputStrean FileReader FileWriter 文件进行处理的节点流。    

 字符串 StringReader StringWriter 对字符串进行处理的节点流。    

 数 组 ByteArrayInputStream ByteArrayOutputStreamCharArrayReader CharArrayWriter 对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。    

 管 道 PipedInputStream PipedOutputStream PipedReaderPipedWriter对管道进行处理的节点流。    


常用处理流(关闭处理流使用关闭里面的节点流)   



 缓冲流:BufferedInputStrean BufferedOutputStream BufferedReader BufferedWriter  增加缓冲功能,避免频繁读写硬盘。    



 转换流:InputStreamReader OutputStreamReader 实现字节流和字符流之间的转换。    

 数据流 DataInputStream DataOutputStream  等-提供将基础数据类型写入到文件中,或者读取出来.    


流的关闭顺序   


 一般情况下是:先打开的后关闭,后打开的先关闭    

 另一种情况:看依赖关系,如果流a依赖流b,应该先关闭流a,再关闭流b。例如,处理流a依赖节点流b,应该先关闭处理流a,再关闭节点流b    

 可以只关闭处理流,不用关闭节点流。处理流关闭的时候,会调用其处理的节点流的关闭方法

作者:无情的AC机器
链接:https://www.nowcoder.com/exam/test/74969462/submission?pid=53635651&pageSource=testHistory
来源:牛客网

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值