网易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)复制算法
25. 在JVM GC中如何判断一个对象是否可以回收?
#网易##社招##Java工程师##面经#