面试题
-
包装类型的缓存机制了解过么1
包装类型的缓存机制了解过么/* Byte Short Integer Long 底层维护一个[-128,127]的缓存数组来提升性能 Character 底层维护一个[0,127]的数组 Boolean包装类型直接返回true或者false */
-
答案2
自动装箱和拆箱 底层原理/* 装箱 将基本类型转换为相应的包装类型实际上是调用了包装类型的构造方法进行初始化 拆箱 将包装类型转换为基本数据类型 编译器在编译阶段自动拆箱操作底层会调用valueOf()方法 */
-
答案3
值传递和址传递的区别/* 参数传递存在于Java方法传参的时候 其实不论值传递还是引用传递本质上都是一份原先数据的拷贝 基本类型拷贝值 引用类型拷贝的是址() 也即操作值不影响实参 操作址影响原参 */
-
答案4
方法重载和方法重写/* 方法重写就是对父类的方法进行覆盖操作 需要保证(返回值 方法名 参数列表)完全一致 并保证访问符范围只能扩大或一致 方法重载是指允许本类存在多个方法名相同但参数列表不同的方法 */
-
答案5
为什么重写equals()还要重写hashcode()/* Object类中equals()默认比较的是引用地址 如果你需要对内容相等性进行判断 需要进行重写equals()操作 hashCode()方法用于返回一个对象的哈希码值(整数),该值通常用于哈希表中的键值。 如果您计划使用某个类型的对象作为哈希表的键,则必须重写hashCode()方法并提供自己的实现 如果您仅重写了equals()方法而不重写hashCode()方法,则可能会导致equals相等的对象具有不同的哈希码, 这可能会影响哈希表的性能,也可能会导致无法正确地检索哈希表中的对象 */
-
答案6
深拷贝和浅拷贝的区别/* 深拷贝不仅拷贝对象还拷贝对象中引用对象 两个引用对象完全隔离 各自操作互不影响 浅拷贝两个引用对象虽然地址不同 但内部的引用类型地址却相同 */
-
答案7
深拷贝有哪些场景 如何实现深拷贝/* 需要克隆的类都需要实现空接口Cloneble 并且重写Object类中protected修饰的clone()方法 场景:序列化与反序列化传递对象 避免数据共享问题 */
-
``
答案/* */