JAVA工程师面试题
索引考虑的问题
外键关联必须用主键。不能用业务键,因为业务键比较大,占用更大的索引空间。如果该字段是不更新字段,可以冗余业务键方便展示,展示信息时避免需要再用主键查出业务键。
联表查询的连接条件需要用索引,最好用主键。
主键必须要尽量短;因为主键会作为引用值存储在二级索引的叶子节点中。短可以节省空间。建议用数字id,自增或者雪花id
联表查询注意
在 left join 语句中,左表过滤必须放 where 条件中,右表过滤必须放 on 条件中,这样结果才能不多不少,刚刚好。
数据更新尽量根据主键进行
避免死锁
表的字段太多有什么坏处。
开启异步任务需要注意什么。1.主线程的事务还未提交,导致异步线程中的数据不一致。
线程池。
事务隔离级别、事务传播机制
Java开发工程师笔试题(20210628)-UEDITOR-20210712095449297.docx
初级:掌握编程语言语法,能实现某个具体功能的方法;
中级:能实现一个单体项目的功能的完整流程,包括交互方案、数据库设计。
高级:能独立搭建一个单体项目,进行功能模块划分,独立负责单个系统。
架构师:能进行集群、分布式架构,解决高并发、海量数据问题。负责复杂系统。
理论深度
经验
经典解决方案、直觉
数据库调优:使用索引,使用子表存储大字段;减少连表;分表;
数据库配置优化:开启慢查询,开启binlog,
innodb_buffer_pool_size
innodb_log_file_size
语言基础
反射
注解
threadlocal
枚举
泛型
匿名内部类
lamda
原子类
同步控制
jvm
数据库基础
索引
联表查询
联表更新
分组查询
列合并查询
行合并查询
表设计:扩展表、树形关系(1对多)、网络关系(多对多)
锁表
在线ddl
其他
字节序
TCP
http
防火墙
磁盘挂载
linux查看文件
图灵机
加法器
架构设计
长连接(websocket、socket)集群的集群架构方案
分布式事务解决方案
分库分表解决方案
幂等接口
MQ
缓存
读写分离
系统拆分
NOSQL