Java题集(4)
1、 java 中 IO 流分为几种?
按功能来分:输入流(input)、输出流(output)。
按类型来分:字节流和字符流。
字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。
2、sleep() 和 wait() 有什么区别?
sleep():方法是线程类(Thread)的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其他线程一起竞争cpu的执行时间。
wait():wait()是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的机锁,使得其他线程能够访问,可以通过notify,notifyAll方法来唤醒等待的线程
3、Iterator 和 ListIterator 有什么区别?
Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。
Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。
ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。
4、Collection 和 Collections的区别?
Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。
Collection是个java.util下的接口,它是各种集合结构的父接口。
5、java中什么是函数式接口?
函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
6、描述一下递归和循环的异同?
相同点: 都是把一件复杂的事情简单化
不同点: 递归是用方法去完成,循环是用代码块完成
7、15 的十进制 换算成二进制 是多少?
1111
8、3*0.1==0.3返回值是什么?
false,因为有些浮点数不能完全精确的表示出来.
9、a=a+b与a+=b有什么区别吗?
+=操作符会进行隐式自动类型转换,此处a+=b隐式的将加操作的结果类型强制转换为持有结果的类型,而a=a+b则不会自动进行类型转换
10、synchronized关键字最主要的三种修饰方式是?
修饰实例方法、修饰静态方法、修饰代码块
11、JVM内存的划分有哪五片?
寄存器、本地方法区、方法区、栈内存、堆内存
12、静态代码块、构造代码块、构造函数同时存在时的执行顺序?
静态代码块->构造代码块->构造函数
13、构造器(constructor)是否可被重写(override)?
构造器不能被继承,因此不能被重写,但可以被重载
14、匿名内部类是什么?如何访问在其外面定义的变量
1.匿名内部类也就是没有名字的内部类,匿名内部类只能使用一次,它通常用来简化代码编写。
2.匿名内部类只能访问外部类的Final变量. Java 8更加智能:如果局部变量被匿名内部类访问,那么该局部变量相当于自动使用了final修饰
15、为什map没有实现collection接口?
Set 和List 都继承了Conllection,Map没有继承于Collection接口,Map提供的是key-Value的映射,而Collection代表一组对象。