美文网首页互联网科技Java 杂谈Spring-Boot
十年Java开发大牛带你深度解析并发编程、JVM调优、Tomca

十年Java开发大牛带你深度解析并发编程、JVM调优、Tomca

作者: Java技术剑 | 来源:发表于2020-04-29 16:04 被阅读0次

    前言

    每一个程序员都有自己清晰的职业规划和终极目标,无论之后是继续钻研技术,还是转管理岗、产品岗,都是需要自己具备有一定的实力,换句话说技术要牛逼。架构师,是很多程序员的终极目标,而成为一名Java架构师,那就需要对自己自身有一定要求,不仅技术能力要过硬,还需要有组织能力和提出解决方案的能力。那么作为架构师,需要掌握哪些技术呢?

    今天,就由一线互联网大厂架构师来总结并分享一些资料,带你剖析并发编程与JVM调优,深入Tomcat和MySQL,离架构师更近一步!

    1 深入剖析并发编程难题及分享学习资料

    1.1 并发编程难题

    Synchronized 相关问题

    Synchronized 用 过 吗 , 其 原 理 是 什 么 ?

    你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?

    什么是可重入性,为什么说Synchronized是可重入锁?

    JVM 对 Java 的原生锁做了哪些优化?

    为什么说 Synchronized 是非公平锁?

    什么是锁消除和锁粗化?

    为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是CAS,它有什么特性?

    乐观锁一定就是好的吗?

    可重入锁ReentrantLock及其他显式锁 相关问题

    跟Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?

    那么请谈谈AQS框架是怎么回事?

    请尽可能详尽地对比下 Synchronized 和 ReentrantLock的异同

    ReentrantLock 是如何实现可重入性的?

    除了 ReetrantLock, 你还接触过 JUC 中的哪些并发工具?

    请谈谈 ReadWriteLock 和 StampedLock

    如何让 Java 的线程彼此同步?你了解过哪些同步器? 请分别介绍下

    CyclicBarrier 和 CountDownLatch 看起来很相似,请对比下呢?

    Java线程池 相关问题

    Java 中的线程池是如何实现的?

    创建线程池的几个核心构造参数?

    线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?

    既然提到可以通过配置不同参数创建出不同的线程池,那么Java 中默认实现好的线程池又有哪些呢?请比较它们的异同。

    如何在Java线程池中提交线程?

    Java 内存模型相关问题

    什么是Java的内存模型,Java中各个线程是怎么彼此看到对方的变量的?

    请谈谈volatile有什么特点,为什么它能保证变量对所有线程的可见性

    既然volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile变量的运算就是并发安全的?

    请对比下volatile 对比 Synchronized 的异同。

    请谈谈 ThreadLocal 是怎么解决并发安全的?

    很多人都说要慎用ThreadLocal,谈谈你的理解,使用ThreadLocal 需要注意些什么?

    1.2 Java并发编程实战PDF

    基础知识

    线程安全性

    对象的共享

    对象的组合

    基础构建模块

    结构化并发应用程序

    任务执行

    取消与关闭

    线程池的使用

    图形用户界面应用程序

    活跃性、性能与测试

    避免活跃性危险

    性能与可伸缩性

    并发程序的测试

    高级主题

    显示锁

    构建自定义的同步工具

    原子变量与非阻塞同步机制

    Java内存模型

    1.3 Java多线程并发编程知识导图(xmind)

    需要领取文档资料及知识导图的老铁请转发文章,关注我,然后私信回复“555”即可获得免费领取方式

    2 深度剖析JVM性能调优及分享学习资料

    2.1 JVM性能深度解剖 难题

    内存模型以及分区,需要详细到每个区放什么

    堆里面的分区:Eden,survival (from+ to),老年代,各自的特点。

    对象创建方法,对象的内存分配,对象的访问定位。

    GC 的两种判定方法

    SafePoint 是什么

    GC 第三种收集方法:标记清除、标记整理、复制算法的原理与特点,分别用在什么地方,如果让你优化收集方法,有什么思路?

    GC 收集器有哪些?CMS 收集器与 G1 收集器的特点

    Minor GC 与 Full GC 分别在什么时候发生?

    几种常用的内存调试工具:jmap、jstack、jconsole、jhat

    类加载的几个过程

    JVM 内存分哪几个区,每个区的作用是什么?

    如何判断一个对象是否存活?(或者 GC 对象的判定方法)

    简述 java 垃圾回收机制?

    java 中垃圾收集的方法有哪些?

    java 内存模型

    java 类加载过程?

    简述 java 类加载机制?

    类加载器双亲委派模型机制?

    什么是类加载器,类加载器有哪些?

    简述 java 内存分配与回收策略以及 Minor GC 和 Major GC

    2.2 JVM调优总结

    一些概念

    基本垃圾回收算法

    垃圾回收面临的问题

    分代垃圾回收详述

    典型配置举例

    新一代的垃圾回收算法

    调优方法

    反思

    参考资料

    2.3 深入理解Java虚拟机:JVM高级特性与最佳实践PDF

    走近Java

    自动内存管理

    虚拟机执行子系统

    程序编译与代码优化

    高效并发

    2.4 JVM和性能优化(xmind)

    Java内存区域

    垃圾回收器和内存分配策略

    JVM的执行子系统

    编写高效优雅Java程序

    深入了解性能优化

    需要领取文档资料及知识导图的老铁请转发文章,关注我,然后私信回复“555”即可获得免费领取方式

    3 深入Tomcat底层难题及资料分享

    3.1 深入Tomcat难题

    Tomcat 的缺省端口是多少,怎么修改?

    Tomcat 有哪几种 Connector 运行模式(优化)?

    Tomcat 有几种部署方式?

    Tomcat 容器是如何创建 servlet 类实例?用到了什么原理?

    Tomcat 如何优化?

    内存调优

    垃圾回收策略调优

    共享 session 处理

    添加 JMS 远程监控

    监视 Tomcat 的内存使用情况

    打印机的加载情况及对象的回收情况

    Tomcat 一个请求的完整过程

    Tomcat 工作模式?

    你怎样给 tomcat 去调优?

    如何加大 tomcat 连接数?

    Tomcat 中如何禁止列目录下的文件?

    怎样加大 Tomcat 的内存?

    Tomcat 有几种部署方式?

    3.2 深入剖析Tomcat

    一个简单的Web服务器

    一个简单的servlet容器

    连接器

    Tomcat的默认连接器

    servlet容器

    生命周期

    日志记录器

    载入器

    Session管理

    安全性

    StandardWrapper

    StandardContext类

    Host 和 Engine

    服务器组件和服务组件

    关闭钩子

    启动Tomcat

    部署器

    Manager应用程序的servlet类

    基于JMX的管理

    需要领取文档资料及知识导图的老铁请转发文章,关注我,然后私信回复“555”即可获得免费领取方式

    4 Mysql深度进阶及资料分享

    4.1 Mysql深度进阶难题

    一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?

    Mysql 的技术特点是什么?

    Heap 表是什么?

    Mysql 服务器默认端口是什么?

    与 Oracle 相比,Mysql 有什么优势?

    如何区分 FLOAT 和 DOUBLE?

    区分 CHAR_LENGTH 和 LENGTH?

    请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

    在 Mysql 中 ENUM 的用法是什么?

    如何定义 REGEXP?

    CHAR 和 VARCHAR 的区别?

    列的字符串类型可以是什么?

    如何获取当前的 Mysql 版本?

    Mysql 中使用什么存储引擎?

    MYSQL 数据库服务器性能分析的方法命令有哪些?

    我们如何在 mysql 中运行批处理模式?

    4.2 MySQL 性能优化的21个最佳实践

    为查询缓存优化你的查询

    EXPLAIN 你的 SELECT 查询

    当只要一行数据时使用 LIMIT 1

    为搜索字段建索引

    在 Join 表的时候使用相当类型的例,并将其索引

    千万不要 ORDER BY RAND()

    避免 SELECT *

    永远为每张表设置一个 ID

    使用 ENUM 而不是 VARCHAR

    从 PROCEDURE ANALYSE() 取得建议

    尽可能的使用 NOT NULL

    Prepared Statements

    无缓冲的查询

    把 IP 地址存成 UNSIGNED INT

    固定长度的表会更快

    垂直分割

    拆分大的 DELETE 或 INSERT 语句

    越小的列会越快

    选择正确的存储引擎

    使用一个对象关系映射器(Object Relational Mapper)

    小心“永久链接”

    4.3 MySQL 王者晋级之路

    Part1:倔强青铜篇

    MySQL简介与主流分支版本.

    MySQI数据库的安装、启动和关闭

    MySQL体系结构与存储引擎

    数据库文件

    索引

    事务

    Part2:白银篇

    备份恢复

    Part3:黄金篇

    主从复制概述

    复制原理及实战演练

    Part4:尊贵铂金篇

    MHA

    Keepalived+双主架构

    PXC

    ProxySQL

    Part5:永恒钻石篇

    MySQL特性

    MySQL全面优化

    Part6:至尊星耀篇

    Lepus之MySQL 监控

    MySQL版本升级

    Part7:最强王者篇

    MySQL面试宝典

    4.4 MySQL优化问题(xmind)

    相关文章

      网友评论

        本文标题:十年Java开发大牛带你深度解析并发编程、JVM调优、Tomca

        本文链接:https://www.haomeiwen.com/subject/ofcnwhtx.html