体系课程
文章平均质量分 78
Java进阶训练营-技能提升课程笔记
Wimb
后端开发
展开
-
L13:MySQL - 性能与SQL优化2
【目录】 1.MySQL 事务与锁* 2.DB 与 SQL 优化* 3.常见场景分析* 4.总结 一 事务与锁 事务特性 ACID Atomicity: 原子性, 一次事务中的操作要么全部成功, 要么全部失败 Consistency: 一致性, 跨表、跨行、跨事务, 数据库始终保持一致状态 solation: 隔离性, 可见性, 保护事务不会互相干扰, 包含4种隔离级别 Durability:, 持久性, 事务提交成功后,不会丢数据。如电源故障, 系统崩溃 InnoDB 引擎: 双写缓冲区、原创 2021-09-20 16:19:25 · 189 阅读 · 0 评论 -
L12:MySQL - 性能与SQL优化1
【目录】 1.再聊聊性能优化 2.关系数据库 MySQL 3.深入数据库原理 4.MySQL 配置优化* 5.数据库设计优化* 6.总结 一 性能优化 性能优化角度: 高可用 高性能 稳定性 吞吐量 一定要结合具体业务再探性能优化! 二 MySQL 关系型数据数据库 E-R图 数据库范式 第一范式(1NF):关系 R 属于第一范式,当且仅当R中的每一个属性A的值域只包含原子项(每一列都是原子列) 第二范式(2NF):在满足 1NF 的基础上,消除非主属性对码的部分函数依赖 第三范式(3NF):在满足原创 2021-09-18 01:14:25 · 166 阅读 · 0 评论 -
L11:Java框架3 - 常用工具
【目录】 1.Java8 Lambda* 2.Java8 Stream* 3.Lombok 4.Guava 5.设计原则* 6.设计模式* 7.单元测试* 8.第11课总结回顾与作业实践 一 Lambda 表达式 函数式接口 分类 @FunctionalInterface(可查看源码实现) Predicate 有参数、条件判断 Function<T, R> 有参数、有返回值 Consumer 无返回值 Supplier 无参数、有返回值 二 Stream 三 Lombok 四 Guav 五原创 2021-09-07 21:59:45 · 307 阅读 · 0 评论 -
L10:Java框架2 - SpringBoot
【目录】 1.从 Spring 到 Spring Boot 2.Spring Boot 核心原理* 3.Spring Boot Starter 详解* 4.JDBC 与数据库连接池* 5.ORM-Hibernate/MyBatis* 6.Spring 集成 ORM/JPA* 7.Spring Boot 集成 ORM/JPA 8.第 10 课总结回顾与作业实践原创 2021-09-07 00:13:18 · 584 阅读 · 6 评论 -
L9:Java框架1 - Spring
【目录】 1.Spring 技术发展 2.Spring 框架设计* 3.Spring AOP 详解* 4.Spring Bean 核心原理* 5.Spring XML 配置原理* 6.Spring Messaging 等技术 7.第9课总结回顾与作业实践 一 技术发展 技术的创新和发展都是为了解决一类问题 二 框架设计 Spring Framework 6大模块 三 Spring AOP详解 循环依赖问题如何处理? 打破依赖 / 超时推出机制 AOP两种方式 字节码增强技术 四 Spring Bea原创 2021-09-05 22:11:12 · 293 阅读 · 0 评论 -
L8:Java并发3
【目录】 1.常用线程安全类型* 2.并发编程相关内容 3.并发编程经验总结* 4.并发编程常见面试题* 5.第8课总结回顾与作业实践 一 线程安全类型 基础数据类型与集合类 ArrayList 注意ArrayList在删除时应该从尾至头删除,因为从头删除会有元素位置移动,产生异常 LinkedList 线程安全的方法 CopyOnWriteArrayList 写操作 删除元素 读 HashMap 注意:升级版本时Key的顺序可能会发生变化,比如原系统使用Key-Value拼接成Redi原创 2021-09-02 01:11:00 · 134 阅读 · 0 评论 -
L7:Java并发2
1. Java 并发包(*JUC) 2. 到底什么是锁 3. 并发原子类* 4. 并发工具类详解* 5. 第 7 课总结回顾与作业实践 一 Java并发包 JDK核心库的包有哪些? java.lang.* 最基础,Integer/String java.io.* IO读写,文件操作 java.util.* 工具类,集合/日期 java.math.* java.net.* java.rmi.* Java内置的远程调用 java.sql.* javax.* Java拓展API sun.* sun的JDK拓展原创 2021-09-02 00:14:17 · 95 阅读 · 0 评论 -
L6:Java并发1
【目录】 1.多线程基础 2.Java 多线程* 3.线程安全* 4.线程池原理与应用* 5.第 6 课总结回顾与作业实践 一 基础 多线程产生的原因:摩尔定律失效 -> 多核心 + 分布式 多CPU核心意味着OS可以操作更多并行计算资源 OS是以线程作为基本的调度单元 进程与线程区别 二 Java多线程 创建线程的四种方式 守护线程 注意执行结果中线程的run方法体内代码并没有执行,因为将该线程设置为Deamon状态 public static void main(String[] args)原创 2021-08-31 00:43:31 · 118 阅读 · 0 评论 -
L5:Netty原理与API网关
[目录] 1. 再谈谈什么是高性能 2. Netty 如何实现高性能 3. Netty 网络程序优化 4. 典型应用:API 网关 5. 自己动手实现 API 网关 6. 第 5 课总结回顾与作业实践 1.高性能 高并发 + 高吞吐量 | QPS(每秒请求次数) TPS(每秒交易数) | + 低延迟 响应时间:用户角度 延迟时间:业务处理时间 缺点:系统复杂度 + 建设维护成本 + 故障的破坏性 应对策略:容量 + 爆炸半径 + 工程积累与改进 2.Netty 概览 从事件处理机制到Reactor模原创 2021-08-24 00:19:20 · 439 阅读 · 0 评论 -
L4:NIO模型与Netty入门
【目录】 1.Java Socket编程*:如何基于Socket 实现 Server 2.深入讨论IO*: Server 处理时到底发生了什么 3.IO模型与相关概念*:怎么理解 NIO 4.Netty框架简介:什么是Netty 5.Netty使用示例*:如何使用Netty实现NIO 6.总结 Java Socket编程 IP:标识主机唯一性 端口:标识主机上对应的不同进程or服务 Java实现一个最简单的HTTP服务器(三种方式) // 单线程处理socket public class SocketH原创 2021-08-22 16:55:01 · 170 阅读 · 0 评论 -
L3:JVM核心技术(三):调优分析与面试经验(待补充)
【目录】 1. GC 日志解读与分析 * 2. JVM 线程堆栈数据分析 3. 内存分析与相关工具* 4. JVM 问题分析调优经验* 5. GC 疑难情况问题分析 6. JVM 常见面试问题汇总* 7. 第 3 课总结回顾与作业实践原创 2021-08-15 16:33:35 · 132 阅读 · 0 评论 -
L2:JVM核心技术(二):工具与GC策略
【目录】 1. JDK 内置命令行工具* 2. JDK 内置图形化工具* 3. GC 的背景与一般原理 4. 串行 GC/并行 GC*( Serial GC/Parallel GC) 5. CMS GC/G1 GC* 6. ZGC/Shenandoah GC 7. 总结回顾 JDK内置命令行工具 JVM命令行工具 工具 简介 java Java 应用的启动程序 javac JDK 内置的编译工具 javap 反编译 class 文件的工具 javadoc 根据 Java 代码和原创 2021-08-15 16:19:57 · 216 阅读 · 0 评论 -
L1:JVM核心技术(一):基础知识
【目录】 1.JVM基础知识 2.字节码技术(源码与编译.class转换) 3.JVM类加载器* 4.JVM内存模型* 5.JVM启动参数 基础知识 Java 是一种面向对象、静态类型、编译执行,有 VM/GC 和运行时、跨平台的高级语言 静态语言和动态语言区别 区别一:静态语言在编译时变量的数据类型即可确定,多数静态类型语言在使用变量之前必须申明数据类型 区别二:静态语言编译时进行类型匹配检查,所以不能给变量赋不同类型值;动态类型变量类型在运行期可变,意味着对象的多态性 区别三:静态语言封闭,原创 2021-08-15 12:49:25 · 260 阅读 · 0 评论