面试问题
问: Concurrent Hashmap 和 hashmap的区别
答:
1、ConcurrentHashMap对整个桶数组进复行了分段制,而HashMap则没有
2、ConcurrentHashMap在每一个分段上都用锁进行保护,从而让锁的粒度更精细一些,并发性能更好,而HashMap没有zhidao锁机制,不是线程安全的
问: Linux 查找日志的命令
答:Linux下查看日志用到的常用命令 - myseries - 博客园 (cnblogs.com)
RedisTemplate常用方法总结_feeling good-CSDN博客_redistemplate
问:在Linux系统下运行jar包的命令
答:
1、java -jar xxxxx.jar // 当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
2、java -jar xxxxx.jar & //当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
3、nohup Java -jar xxxxxx.jar & //意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
4、nohup Java -jar xxxxxx.jar >aa.log //指定输出日志文件,意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
问: 存储过程的使用场景
答:
问: redisTemplate常用的方法
答:RedisTemplate常用方法,基础方法使用_码渝的博客-CSDN博客_redistemplate常用方法
问: 怎么读取配置文件中的值
答:Java 读取 .properties 配置文件的几种方式 - 暴脾气大大 - 博客园 (cnblogs.com)
问:线程锁的类型
答: java多线程的15种锁_人生智慧的博客-CSDN博客_java多线程
问:List,Set,Map的区别
答:List、Set、Map详解及区别 - 莫等、闲 - 博客园 (cnblogs.com)
问:ArryList和LinkedList的区别
答:
- 数据库实现:ArrayList是动态数组的数据结构实现,而LinkedList是双向链表的数据结构实现。
- 随机访问效率:ArrayList比LinkedList在随机访问的时候效率要高,因为LinkedList是线性的数据存储方式,所以需要移动指针从前往后一次查找。
- 增加和删除效率:在非首位的增加和删除操作,LinkedList要比ArrayList效率要高,因为ArrayList增删操作要影响数组内的其他数据的下标。
- 内存空间占用:LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。
- 线程安全:ArrayList和LinkedList都是不同步的,也就是不保证线程安全;
问:List的实现类有哪些
答:实现List接口的集合主要有:ArrayList、LinkedList、Vector、Stack
参考:List、Set、Map详解及区别 - 莫等、闲 - 博客园 (cnblogs.com)
问:Hashmap的实现方式
答:
问:多线程的实现方式
问:线程池的创建方法及参数
答:线程池创建的4种方式与参数详解 - 简书 (jianshu.com)
问:什么情况下无法命中索引
答:
问:Mysql复杂语句优化
答:1. 查询语句优化(首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息)
2. 优化子查询(在MySQL中,尽量使用JOIN来代替子查询。因为子查询需要嵌套查询,嵌套查询时会建立一张临时表,临时表的建立和删除都会有较大的系统开销,而连接查询不会创建临时表,因此效率比嵌套子查询高。)
3. 使用索引
4. 分解表(对于字段较多的表,如果某些字段使用频率较低,此时应当将其分离出来从而形成新的表。)
5. 中间表(对于将大量连接查询的表可以创建中间表,从而减少在查询时造成的连接耗时。)
6. 增加冗余字段(类似于创建中间表,增加冗余也是为了减少连接查询。)
7. 分析表,检查表,优化表
问:微服务架构和传统架构的优缺点
问:消息队列中消息丢失的情况