目录
请详细说一说 Java 中的四种引用:强引用、软引用、弱引用、虚引用。
请介绍集合相关内容,如 ArrayList 和 LinkedList 的区别、底层实现和扩容机制。
请简单介绍一下 zookeeper 选举(提及 Paxos 算法)。
String 对象存储在哪里?是在字符串池还是在内存中新开辟空间?
请详细介绍 GBDT,包括算法流程、调参数方法、选树方法、是否可以并行训练以及如何提高训练速度;是否了解 XGBoost?
String、StringBuffer 和 StringBuilder 的区别是什么?
JVM 内存模型是怎样的,包括内存区域划分和每个区域存放的内容?
linkedList 和 arrayList 的区别是什么?
一个网址有大量的 UV 数据需要进行统计,统计出 ip 来源最高的十个市,仅用数据结构怎么实现(口述)?
tcp 和 udp 的区别是什么?tcp 是怎么建立连接的?
Kafka 不丢失消费是怎么实现的,在 broker 端和 consumer 端做了什么保障?
Hadoop put 文件过程是怎样的,速度限制因素有哪些?
给个联合索引的例子,问会不会走索引?联合索引的底层是怎样的?
抽象类与接口的区别是什么?
抽象类是一种不能被实例化的类,它可以包含抽象方法和非抽象方法。抽象方法是没有具体实现的方法,必须在子类中被实现。抽象类主要用于为一组相关的类提供一个通用的模板,子类可以继承抽象类并实现其中的抽象方法,也可以使用抽象类中的非抽象方法。
接口则是一种更加纯粹的抽象类型。它只包含方法签名,没有方法体,所有的方法都是抽象的。接口用于定义一组规范,一个类可以实现多个接口来表明它遵循这些规范。
从语法上看,抽象类可以有构造方法,接口不能有构造方法。抽象类中的成员变量可以是各种访问修饰符,而接口中的成员变量默认是 public static final 的。抽象类中的方法可以有不同的访问修饰符,包括 private(在内部使用),而接口中的方法默认是 public。
<