Javafinal 关键字的作用HashMap的安全性问题ConcurrentHashMap 的机制如何保证线程安全和高并发?finally 的作用是什么什么情况下不执行 finally 中的代码块如果 try 中有 return先执行 return 还是 finally?重载和重写为什么重写 equals() 需要重写 hashCode()如何避免 sql 慢查询【Q1】final 关键字的作用修饰类该类不可被继承。修饰变量局部变量作为常量使用一旦赋值不可修改。成员变量必须在构造器或代码块中显示赋值之后不可修改。引用类型变量其引用地址不可变但对象内部成员的值可变。【Q2】HashMap 的安全性问题由于 HashMap 不是线程安全的因此在多线程的场景下对 HashMap 进行并发写操作时会出现两种问题数据丢失并发 put 操作可能导致一个线程的写入被另外一个线程覆盖。JDK1.7 和 JDK1.8 均有此问题死循环在 JDK7 及之前的版本中并发扩容时由于头插法可能导致链表形成环从而在 get 操作时引发死循环导致 CPU 飙升到 100%。仅 JDK1.7【Q3】ConcurrentHashMap 的机制如何保证线程安全和高并发?JDK 1.7ConcurrentHashMap 由Segment和HashEntry组成。Segment 是一个数组数组中的元素也是个HashEntry数组。Segment 继承了ReentrantLock所以Segment也是一种可重入锁以此来保证线程安全。HashEntry 用于存储键值对。JDK 1.8ConcurrentHashMap 数据结构采用 Node 数组 链表 红黑树然后采用CAS synchronized来保证线程安全。并且synchronized锁的是细粒度的实现了更加精妙的控制因此并发性能会更好。【Q4】finally 的作用是什么finally 通常配合 try-catch 使用无论异常是否被捕获finally 语句块都会被执行。finally 通常作为任务的后续处理工作如释放资源。【Q5】什么情况下不执行 finally 中的代码块调用 System.exit() 方法JVM 崩溃如 OutOfMemoryError 。守护线程突然终止当所有非守护线程结束时JVM 会直接退出守护线程中的 finally 代码块可能会来不及执行。死循环和死锁try 代码块陷入死循环或死锁。操作系统强制终止进程kill -9【Q6】如果 try 中有 return先执行 return 还是 finally?首先执行 try 语句块中的 return 语句跳转到 finally 中如果此时 finally 也存在 return 语句那么 finally 中的 return 会覆盖 try 中的 return。public static int test1() { // return 1 int x 1; try { return x; } finally { x 2; System.out.printf(tset1 x: %d\n, x); } } public static int test2() { // return 2 int x 1; try { return x; } finally { x 2; return x; // 覆盖 try 的 return 1 } }【Q7】重载和重写重载在一个类中允许存在同名的方法但是方法的参数类型、个数、顺序不能一样。方法的返回值不作为区分重载方法的标准。重写子类允许重写父类的方法并且方法的签名即方法名、参数列表、返回值必须相同。但是方法的访问修饰符可以不同。【Q8】为什么重写 equals() 需要重写 hashCode()因为在 Map 中需要依赖 hashCode 来决定元素存储的位置而如果发生了哈希冲突则需要依靠 equals() 方法来进一步判断元素是否相同。因此equals 和 hashCode 通常都是一起重写的。【Q9】如何避免 sql 慢查询首先慢 SQL 对数据库的影响是一个量变到质变的过程所以对“量”的把握就很重要。影响 MySQL 处理能力的因素有很多服务器的配置数据库中数据量的大小MySQL 的一些参数配置数据库的繁忙程度这些对“量”的把握也很重要。另外一个定量指标到底多慢的 SQL 才算是慢 SQL。这个“慢”的度量单位是多少可以使用每秒查询多少行数来衡量 SQL 的好坏。如果遍历行数在百万以内可以认为比较安全。如果遍历行数在百万到千万以内需要评估是否合理以及是否需要优化。如果遍历行数在千万以上比较危险为了减少慢 SQL 的可能性每个数据表的行数应该最好控制在千万以内。解决方案使用索引避免全表扫描使用索引可以有效地减少执行查询时遍历数据的行数提高查询性能。合理的运用 EXPLAIN 来分析 SQL 的查询计划。篇幅有限完整资料点击下方小卡片免费领取后端资料https://mp.weixin.qq.com/s/iBmSycbmeTCSRNKJQ10EuA