我们要想通过java面试,一定要多刷一些相关面试题,这样才能知道自己的不足之处,进而及时去弥补,那java常见面试题有哪些?下面来我们就来给大家讲解一下java常见面试题。
1.Int与integer的区别是什么?
Integer是int的包装类型。Int的默认值是0,integer的默认值是null;
2.怎么唤醒一个阻塞的线程?
如果线程是因为调用了wait()、sleep()或者join()方法而导致的阻塞,可以中断线程,并且通过抛出InterruptedException来唤醒它;如果线程遇到了IO阻塞,无能为力,因为IO是操作系统实现的,Java代码并没有办法直接接触到操作系统。
3、如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?
不会,在下一个垃圾回调周期中,这个对象将是被可回收的。也就是说并不会立即被垃圾收集器立刻回收,而是在下一次垃圾回收时才会释放其占用的内存。
4、String 和 StringBuilder 的区别有哪些?
1)可变与不可变:String不可变,每一次执行“+”都会新生成一个新对象,所以频繁改变字符串的情况中不用String,以节省内存。
2)是否多线程安全:StringBuilder并没有对方法进行加同步锁,所以是非线程安全的。StringBuffer和String均线程安全。
5、Java 中,Comparator 与Comparable 有什么不同?
Comparable 接口用于定义对象的自然顺序,是排序接口,而 comparator 通常用于定义用户定制的顺序,是比较接口。我们如果需要控制某个类的次序,而该类本身不支持排序(即没有实现Comparable接口),那么我们就可以建立一个“该类的比较器”来进行排序。Comparable 总是只有一个,但是可以有多个 comparator 来定义对象的顺序。
6、Java中多态的实现原理是什么?
所谓多态,指的就是父类引用指向子类对象,调用方法时会调用子类的实现而不是父类的实现。多态的实现的关键在于“动态绑定”。
7、Java泛型和类型擦除?
泛型即参数化类型,在创建集合时,指定集合元素的类型,此集合只能传入该类型的参数。类型擦除:java编译器生成的字节码不包含泛型信息,所以在编译时擦除:泛型用最顶级父类替换以及移除。
8、常用数据结构有哪些?
集合,线性结构(数组,队列,链表和栈),树形结构,图状结构。
多刷面试题就是为了能够增强记忆,查找不足的地方,因此建议大家在面试之前可以多看看面试题,能够帮助你快速通过面试!最后大家如果想要了解更多java面试题知识,敬请关注奇Q工具网。
推荐阅读: