牛客网刷题(纯java题型 391~420题)

329 阅读3分钟

interface是特殊的抽象类,但是接口不能继承类,因为只有类才能继承类,继承了类的都是类,而不能是接口

java中,充分考虑了鲁棒性的将String转换为int的方法(经典面试题)

抛出NumberFormatException异常

无论如何都要执行finally中的语句

管道实际上是一种固定大小的缓冲区,管道队与管道两端的进程而言,就是一个文件,但是不是不同的文件,不属于某种文件系统,只存在于内存当中,通常为内存中的一页,它的大小不是受磁盘容量的限制,是一种半双工通信(命名管道可以双向,匿名管道只能单向),当管道(缓冲区)满的时候,进程在管道上写会被阻塞,当管道为空的时候,进程在管道上读会被阻塞

A: 当管道(缓冲区)满的时候,进程在管道上写会被阻塞,当管道为空的时候,进程在管道上读会被阻塞
B:可以有多个进程读,也可以有多个进程进行写,但是不能同时有多个管道对其进行写
C:命名管道可以双向,匿名管道只能单向
D:管道的容量为内存中一页的大小,与磁盘容量无关

特殊记忆protected不可以修饰interface,
abstract可以修饰interface

要细心

一个线程通知另一个线程等待的方法是:wait() throw InterruptException
是Object类中的方法
notify()方法不抛出异常

实现跨平台功能的是JVM

ResultSet数据的索引从1开始

wait()方法是释放锁,等待notify,notify之后就可以竞争锁,notify之前不回去竞争锁
thread1 先获得obj锁,然后通过wait()释放锁,线程停止执行
thread2 获得obj锁,然后执行notify唤醒thread1,thread1可以抢占锁,但是此时thread2还没有释放锁(synchronized块之后才会释放锁),所以thread1抢不到锁,就无法执行,必须要等到thread2执行完之后才能执行thread1中剩余的语句

A选项不能调用另一个构造方法,只能使用this()方法来调用本类的另一个构造方法

数据类型包括基本数据类型和引用数值类型(类,接口,数组)

Hashtable 和 ConcurrentHashMap都是线程安全的,区别在于加锁的范围不同:
Hashtable是对整张表进行加锁,而ConcurrentHashMap是大神之作,将整张表分为16个segment,只对其中的一个segment加锁
Collections类提供了synchronizedXxx方法,可以对需要进行同步的类进行包装
如Map类,List,Set等

接口中的成员变量,可以使用static,final来修饰

A is assignable to B: A可以赋值给B
点之间不能赋值
点可以赋值给范围,范围不能赋值给点
小范围可以赋值给大范围
List和List<?> 可以代表点,也可以代表范围,都表示最大点和最大范围
List(Object) is assignable to List(?) , 此时List(?)可以表示最大范围,所以正确
List(Object) 可以赋值给 任意List , 不对,因为如果任意List,指的是List(点),那么点与点之间是不能相互赋值的