扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式

01 MySQL优化

1.1 MySQ优化问题有哪些?怎么学?

关于这个,给大家看一份学习大纲(xmind)文件,每一个分支里面会有详细的介绍。

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第1张图片

 

这里都是以图片形式展示介绍,如要下载原文件以及更多的性能调优笔记(MySQL+Tomcat+JVM)可以直接私信我 “架构” 免费下载!!

1.2 关于MySQL,面试官会问哪些问题?

  • 第一个:MySQ性能优化最佳实践21个(有具体的解释)你知道哪些?
  1. 为查询缓存优化你的查询
  2. EXPLAIN你的SELECT查询
  3. 当只要一行数据时使用LIMIT 1
  4. 为搜索字段建索引
  5. 在Join表的时候使用相当类型的例,并将其索引
  6. 千万不要 ORDER BY RAND()
  7. 避免 SELECT *
  8. 永远为每张表设置一个 ID
  9. 使用 ENUM 而不是 VARCHAR
  10. 从 PROCEDURE ANALYSE() 取得建议
  11. 尽可能的使用 NOT NULL
  12. Prepared Statements
  13. 无缓冲的查询
  14. 把 IP 地址存成 UNSIGNED INT
  15. 固定长度的表会更快
  16. 垂直分割
  17. 拆分大的 DELETE 或 INSERT 语句
  18. 越小的列会越快
  19. 选择正确的存储引擎
  20. 使用一个对象关系映射器(Object Relational Mapper)
  21. 小心“永久链接”

篇幅有点长,整理成了一个PDF文档:

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第2张图片

MySQ性能优化最佳实践21个(具体的解释)

  • 第二个:来看下MySQL的高频20问(附带详细解答,整理成册)
  1. 事务四大特性(ACID)原子性、一致性、隔离性、持久性?
  2. 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?
  3. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?
  4. MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?
  5. 查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?
  6. 什么是临时表,临时表什么时候删除?
  7. MySQL B+Tree索引和Hash索引的区别?
  8. sql查询语句确定创建哪种类型的索引?如何优化查询?
  9. 聚集索引和非聚集索引区别?
  10. 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?
  11. 非关系型数据库和关系型数据库区别,优势比较?
  12. 数据库三范式,根据某个场景设计数据表?
  13. 数据库的读写分离、主从复制,主从复制分析的 7 个问题?
  14. 使用explain优化sql和索引?
  15. MySQL慢查询怎么解决?
  16. 什么是 内连接、外连接、交叉连接、笛卡尔积等?
  17. mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?
  18. varchar和char的使用场景?
  19. mysql 高并发环境解决方案?
  20. 数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第3张图片

MySQL的高频20问(详细解答)

1.3 MySQL性能调优笔记分享

  • 《MySQL性能调优与架构设计--全册(PDF)》

本书分为3个部分,第一部分是基础篇,第二部分是重点之重性能调优篇,第三部分是架构设计篇

(1)目录简介

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第4张图片

 

(2)详情内容

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第5张图片

 

  • 《重学MySQL:从入门到精通(PDF)》

本书包括MySQL的安装与配置、数据库的创建、数据表的创建、数据类型和运算符、MySQL函数、查询数据、数据表的操作(插入、更新与删除数据)、索引、存储过程和函数、视图、触发器、用户管理、数据备份与恢复、日志以及性能优化等等。本书注重实战操作,帮助读者循序渐进的掌握MySQL的各项技术。需要重学一下MySQL,建议可以看看这个

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第6张图片

 

02JVM性能调优

2.1 JVM和性能调优问题学习大纲(xmind)

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第7张图片

 

2.2 JVM性能调优面试相关问题(附解析)

  1. Java 类加载过程?
  2. 描述一下 JVM 加载 Class 文件的原理机制?
  3. Java 内存分配。
  4. GC 是什么? 为什么要有 GC?
  5. 简述 Java 垃圾回收机制。
  6. 如何判断一个对象是否存活?(或者 GC 对象的判定方法)
  7. 垃圾回收的优点和原理。并考虑 2 种回收机制
  8. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
  9. Java 中会存在内存泄漏吗,请简单描述。
  10. 深拷贝和浅拷贝。
  11. System.gc() 和 Runtime.gc() 会做什么事情?
  12. finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?
  13. 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
  14. 什么是分布式垃圾回收(DGC)?它是如何工作的?
  15. 串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
  16. 在 Java 中,对象什么时候可以被垃圾回收?
  17. 简述 Java 内存分配与回收策率以及 Minor GC 和 MajorGC
  18. JVM 的永久代中会发生垃圾回收么?
  19. Java 中垃圾收集的方法有哪些?
  20. 什么是类加载器,类加载器有哪些?
  21. 类加载器双亲委派模型机制?

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第8张图片

JVM性能调优面试相关问题解析

2.3 JVM性能调优笔记分享

  • 《JVM调优总结(PDF)》

(1)目录

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第9张图片

目录

(2)内容详解

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第10张图片

JVM调优内容详解

 

03深入解析23种设计模式

3.1深入解析23种设计模式学习大纲(xmind)

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第11张图片

 

3.2清华毕业级大佬【马士兵】书写坦克大战详解23种设计模式

一、需求分析

坦克大战中有我方坦克和敌方坦克,我方坦克有一个,敌方坦克有多个。坦克可以移动,也可以发射子弹。我方坦克可以通过上下左右键来控制方向,敌方坦克自动改变方向。在游戏窗体中有障碍物,包括砖墙、钢墙、水墙和草地。坦克可以穿过草地,在遇到其他障碍物时,我方坦克停止移动,并通过操纵改变方向再移动,敌方坦克遇到其他障碍物时可以自动的改变方向。我方坦克有三次生命值,当与敌方坦克或敌方子弹相撞时,生命值减- -, 当生命值是零时,敌方胜利,游戏结束。敌方坦克的生命值为-一,当敌方坦克与我方坦克或者我方子弹相遇就消失,同时我方子弹也消失,并产生爆炸。当我方坦克把敌方坦克消灭完后,我方胜利,游戏结束。敌方子弹或我方子弹击中老巢,游戏结束。

二、程序设计

采用面向对象的设计方法,项目中有以下类:

主窗体: GameForm, 游戏的主窗体。

坦克:父类坦克(Tank)、 我方坦克(MyTank)、 敌方坦克( EnemyTank)。

墙:父类墙(Wall)、砖墙(BrickWall)、刚墙( SteelWall)、水墙( WaterWall)、

草地(MeadoeWall)。

子弹:父类子弹(Bullet)、 我方子弹(MyBullet)、敌方坦克(EnemyBullet)。

老巢: Home

火花: Spark, 子弹与墙碰撞产生火花。

爆炸: Blast, 子弹与坦克和老巢碰撞产生爆炸。

下面的是23种设计模式的文档和视频,需要的小伙伴就可以转发关注一下小编,私信小编“资料”来进行获取。

 

 

 

 

 

在Java开发中,坦克大战项目和23种设计模式无疑是经典中的经典,就算是开发5年甚至是10年以上的开发者,都不敢说自己真真实实掌握了23种设计模式,希望大家能够好好学习,并且能够掌握这些细节性的东西。

关于以上文档资料:MySQL+JVM+深入解析23种设计模式,我要给大家分享学习的就这么多,不知道这些面试常备问题你都能答得上来不?不会也没关系,可以找小编分享完整的原件(题目+答案解析)

还有这些关于“资料”的学习笔记,这些学习路线以及书籍笔记之类的,若是你还没有,也可以找小编来免费分享下载,注意免费获取方式: 转发+转发+私信关键词 “资料”!!!

扎牢基础,深入底层,面试我可造火箭:MySQL+JVM+23种设计模式_第12张图片

 

你可能感兴趣的:(程序员)