面试整理温习记录1

1. 死锁

  • 简述
    是一组相互竞争资源的线程,因为互相等待,造成永久阻塞的现象。
  • 发生条件:
    1.互斥条件
    2.占有并等待
    3.不可抢占
    4.循环等待
  • 解决方式:
    1一次性获取所有的资源
    2 主动释放持有的资源
    3 顺序的去获取的资源

2. 反射的优缺点

  • 简述
    反射是java语言里一个比较重要的特性,能够在程序运行的过程中,去构造任意一个类对象;并且可以任意一个类的成员变量、成员方法和属性。通过反射,可以通过java语言动态获取程序的信息,以动态调用的能力,Java中有java.lang.reflect来实现放射相关的类
  • 优点
    1 增加程序的灵活性,在运行过程中对类进行修改和操作
    2 提高代码的复用率
    3 在运行的时候,获取类的方法和属性,通过反射来动态调用
  • 缺点
    1 因为动态的获取类资源,所以jvm无法对类进行优化,导致性能比非反射略低
    2 代码的可读性下降
    3 反射可以绕过一些限制访问的属性和方法,可能破坏代码的抽象性和产生安全性问题

3. 为什么重启equals(),必须重写hashcode()

  • 简述
    equals()会进行两个操作,一是使用==去比较两个对象的内存地址,不相同则去比较这两个对象的值;Java中的任意一个对象都会有native的hashcode方法,并且这个方法会在散列集合中被用到,

你可能感兴趣的:(知识简述,面试,java,职场和发展)