这周随笔写了SQL优化、数据库、JVM、反射、注解几方面技术复习回顾后的内容。也是工作中会直接或间接用到,面试也很有可能问道的知识点,重新回顾对一些细节有了新的认识。
SQL优化目前工作中用到的不多,但那些做大数据相关工作整天写SQL的同事肯定会用到。这方面的重点之一就是用好索引提高查询效率,避免索引失效。对索引列用否定条件查询或者使用函数或表达式都会导致索引失效er而全表扫描影响效率。
关系数据库还是工作中常用到的,接触到的Pgsql使用越来越多,但MySQL依旧是大多数互联网公司在用、最流行的开源关系数据库。
JVM是Java最基础、面试中最可能问道的问题之一,这方面网上的内容也很多,并且不少还是转载的错的东西。因此要有自己清晰明确的概念认识很重要,先对JVM组成由大概的认识,然后再重点关注类加载器和运行时数据区中堆内存的分配与回收方法,进而联系实际工作中常会用到的Class类加载异常、OOM异常,JVM参数的设置选择等。一定要与自己工作实际相结合,用自己用到的JDK测试验证,尤其是JVM调优相关的内容。
Java注解从1.5开始,主要作用生成doc文档、编译器检查警告、替代配置文档动态依赖注入等,被第三方框架如Spring、Mybatis等大量使用。实际自己工作场景也可通过自定义注解的方法来简化代码编写。
Java反射也是Java最重要、最常用到的功能之一。Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类;在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法;在运行时调用任意一个对象的方法;生成动态代理。在Spring IOC框架中就有大量的应用。Java自身的反射用法相对复杂,实际项目中使用时可用第三方基于它封装的开源库,如jOOR。jOOQ/jOOR