JavaSE面试题【长期更新】

面试题

  • 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()方法
    场景:序列化与反序列化传递对象 避免数据共享问题
    */
    

  • ``

    答案
    /*
    
    */
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值