JAVA后端架构

一个妹子网易Java岗社招面试经历分享

2020-12-16  本文已影响0人  AI乔治

网易面试题

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

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

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

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

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

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

  7. int 和 Integer 有什么区别

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

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

  10. Java类的实例化顺序

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

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

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

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

  2. String和StringBuilder、StringBuffer的区别?

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

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

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

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

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

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

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

•复用性和可操作性。

  1. HashMap 与HashTable有什么区别

  2. ArrayList 和 LinkedList 有什么区别?

  3. 简单介绍Java异常框架

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

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

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

  7. 描述Java内存模型

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

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

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

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

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

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

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

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

  2. 常见的垃圾收集算法

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

(2)复制算法

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

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

由于平台不能直接发送面试资料等原因,有需要这份网易面经学习笔记的朋友们只需要评论+转发+关注,并且简信私信作者回复【666】即可免费获取以上面试题答案以及学习资料

上一篇下一篇

猜你喜欢

热点阅读