三年Java开发经验闯网易的面试经历分享

网易面试题

1. 面向对象的特点有哪些?

2. 列举几个java常用的package及其作用

3. 接口和抽象类有什么联系和区别

4. 重载和重写有什么区别

5. java有哪些基本数据类型?

6. Java支持的数据类型有哪些?什么是自动拆装箱?

7. int 和 Integer 有什么区别

8. 数组有没有length()方法?String有没有length()方法?

9. Java中符号>>和>>>有什么区别?

10. Java类的实例化顺序

11. 什么是值传递和引用传递

(1)值传递是对基本型变量而言的,传递的是该变量的一个副本,改变副本不影响原变量.

(2)引用传递一般是对于对象型变量而言的,传递的是该对象地址的一个副本, 并不是原对象本身 。


12. String能被继承吗?为什么?

13. String和StringBuilder、StringBuffer的区别?

14. Java集合框架的基础接口有哪些?

15. Java集合框架是什么?说出一些集合框架的优点?

(1)每种编程语言中都有集合,最初的Java版本包含几种集合类:Vector、Stack、HashTable和Array。随着集合的广泛使用,Java1.2提出了囊括所有集合接口、实现和算法的集合框架。在保证线程安全的情况下使用泛型和并发集合类,Java已经经历了很久。它还包括在Java并发包中,阻塞接口以及它们的实现。

(2)集合框架的部分优点如下:

•使用核心集合类降低开发成本,而非实现我们自己的集合类。

•随着使用经过严格测试的集合框架类,代码质量会得到提高。

•通过使用JDK附带的集合类,可以降低代码维护成本。

•复用性和可操作性。


16. HashMap 与HashTable有什么区别

17. ArrayList 和 LinkedList 有什么区别?

18. 简单介绍Java异常框架

19. java中的throw 和 throws关键字有什么区别?

20. 列举几个常见的运行时异常?

21. final, finally, finalize有什么区别

22. 描述Java内存模型


Java虚拟机规范中将Java运行时数据分为六种:

(1)程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址。Java虚拟机的多线程就是通过线程轮流切换并分配处理器时间来实现的,为了线程切换后能恢复到正确的位置,每条线程都需要一个独立的程序计数器,互不影响,该区域为“线程私有”。

(2)Java虚拟机栈:线程私有的,与线程生命周期相同,用于存储局部变量表,操作栈,方法返回值。局部变量表放着基本数据类型,还有对象的引用。

(3)本地方法栈:跟虚拟机栈很像,不过它是为虚拟机使用到的Native方法服务。

(4)Java堆:所有线程共享的一块内存区域,对象实例几乎都在这分配内存。

(5)方法区:各个线程共享的区域,储存虚拟机加载的类信息,常量,静态变量,编译后的代码。

(6)运行时常量池:代表运行时每个class文件中的常量表。包括几种常量:编译时的数字常量、方法或者域的引用。

23. java中垃圾收集的方法有哪些?

24. 常见的垃圾收集算法

(1)标记-清除(Mark-Sweep)算法

(2)复制算法

( 3)标记 -整理 (Mark-Compact) 算法

25. 在JVM GC中如何判断一个对象是否可以回收?

由于平台不能直接发送面试资料等原因,有需要这份网易面经学习笔记的朋友们只需要评论+点赞,并且扫描下方小编二维码即可免费获取!!!

 

©️2020 CSDN 皮肤主题: 游动-白 设计师:上身试试 返回首页