摘要:Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 欢迎大家加我微信itsoku一起交流java、算法、数据库相关技术。 1. 第1篇:mysql基础知识 2. 第2篇:详解mysql数据类型(重点) 3. 第3篇:管理员必备技能(必须掌握) 4. 第4篇:DDL常见 阅读全文
posted @ 2019-10-13 21:22 路人甲Java 阅读 (191) 评论 (0) 编辑
摘要:1. 第1天:必须知道的几个概念 2. 第2天:并发级别 3. 第3天:有关并行的两个重要定律 4. 第4天:JMM相关的一些概念 5. 第5天:深入理解进程和线程 6. 第6天:线程的基本操作 7. 第7天:volatile与Java内存模型 8. 第8天:线程组 9. 第9天:用户线程和守护线程 阅读全文
posted @ 2019-07-26 09:32 路人甲Java 阅读 (609) 评论 (2) 编辑
摘要:包含了深入理解Java虚拟机笔记、java命令行工具系列、java可视化工具系列,共31篇文章。 阅读全文
posted @ 2019-06-04 14:24 路人甲Java 阅读 (509) 评论 (1) 编辑
摘要:java开发,月薪3万,实现也不算是太难,需要花一些时间掌握一些技术,了解其原理,高薪就是顺其自然的事情了。 学java技术,最好能按照系列一个个学,能有一套非常好的学习资料,反复看,最终效果都是非常好的。尽量避免看很多套教程、每套只看其中一点,很难做到对技术的深入了解。 自己整理了一套java学习的教程,课程前后是有依赖的,所以请按顺序学习掌握,废话不多说了,直接上干货。 阅读全文
posted @ 2019-05-10 13:43 路人甲Java 阅读 (737) 评论 (5) 编辑
摘要:平时我们在开发系统的时候,会有开发环境、测试环境、线上环境,每个环境中配置文件可能都是不一样的,比如:数据库的配置,静态资源的配置等等,所以我们希望构建工具能够适应不同环境的构建工作,能够灵活处理,并且操作足够简单。Maven作为一款优秀的构建工具,这方面做的足够好了,能够很好的适应不同环境的构建工作,本文主要讲解maven如何灵活的处理各种不同环境的构建工作 阅读全文
posted @ 2019-11-22 11:17 路人甲Java 阅读 (195) 评论 (0) 编辑
摘要:本篇涉及到的内容属于神技能,多数使用maven的人都经常想要的一种功能,但是大多数人都不知道如何使用,废话不多说,上干货。 阅读全文
posted @ 2019-11-21 10:21 路人甲Java 阅读 (36) 评论 (0) 编辑
摘要:如果你玩过maven,使用过很多mvn的命令,只是大家有没有想过这些命令为什么这么写,为什么-Dmaven.test.skip=true可以跳过测试,大家需要知道mvn命令背后的一些原理,这就是本文的主要内容,废话不多说,上干货。 阅读全文
posted @ 2019-11-19 10:10 路人甲Java 阅读 (304) 评论 (0) 编辑
摘要:1、详解MySql确保数据不丢失的原理及设计的亮点,参考这些亮点实现了2个常见的案例 2、案例1:电商账户高并发更新设计方案及具体实现,单账户并发更新TPS达到上千,设计思路非常值得借鉴 3、案例2:常见的跨库转账设计方案及具体实现,让大家熟练掌握一种分布式事务解决方案,过程非常详细 4、本文介绍的原理及方案实操性特别强,直接可以用于实战 阅读全文
posted @ 2019-10-29 11:04 路人甲Java 阅读 (420) 评论 (0) 编辑
摘要:本篇详解如何使用mysql来实现一个分布式锁,包含详细的设计方案及代码实现,以及分析一下分布式锁中需要注意的问题。 阅读全文
posted @ 2019-10-28 10:18 路人甲Java 阅读 (319) 评论 (0) 编辑
摘要:数据存储在数据库中,为了加快业务访问的速度,我们将数据库中的一些数据放在缓存中,那么问题来了,如何确保db和缓存中数据的一致性呢?我们列出了5种方法,大家都了解一下,然后根据业务自己选择。 方案1 获取缓存逻辑 使用过定时器,定时刷新redis中的缓存。 db更新数据逻辑 更新数据不用考虑缓存中的数 阅读全文
posted @ 2019-10-22 10:06 路人甲Java 阅读 (477) 评论 (2) 编辑
摘要:这是Mysql系列第24篇。学习索引,主要是写出更快的sql,当我们写sql的时候,需要明确的知道sql为什么会走索引?为什么有些sql不走索引?sql会走那些索引,为什么会这么走?我们需要了解其原理,了解内部具体过程,这样使用起来才能更顺手,才可以写出更高效的sql。本篇我们就是搞懂这些问题。 阅读全文
posted @ 2019-10-16 14:35 路人甲Java 阅读 (719) 评论 (0) 编辑
摘要:Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 欢迎大家加我微信itsoku一起交流java、算法、数据库相关技术。 1. 第1篇:mysql基础知识 2. 第2篇:详解mysql数据类型(重点) 3. 第3篇:管理员必备技能(必须掌握) 4. 第4篇:DDL常见 阅读全文
posted @ 2019-10-13 21:22 路人甲Java 阅读 (191) 评论 (0) 编辑
摘要:Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 欢迎大家加我微信itsoku一起交流java、算法、数据库相关技术。 这是Mysql系列第22篇。 背景 使用mysql最多的就是查询,我们迫切的希望mysql能查询的更快一些,我们经常用到的查询有: 1. 按照id 阅读全文
posted @ 2019-10-12 10:35 路人甲Java 阅读 (332) 评论 (0) 编辑
摘要:Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 这是Mysql系列第20篇。 环境:mysql5.7.25,cmd命令中进行演示。 代码中被[]包含的表示可选,|符号分开的表示可选其一。 需求背景 我们在写存储过程的时候,可能会出现下列一些情况: 1. 插入的数据 阅读全文
posted @ 2019-10-10 09:46 路人甲Java 阅读 (452) 评论 (0) 编辑
摘要:Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 这是Mysql系列第19篇。 环境:mysql5.7.25,cmd命令中进行演示。 代码中被[]包含的表示可选,|符号分开的表示可选其一。 需求背景 当我们需要对一个select的查询结果进行遍历处理的时候,如何实现 阅读全文
posted @ 2019-10-09 16:21 路人甲Java 阅读 (322) 评论 (0) 编辑
摘要:Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 这是Mysql系列第18篇。 环境:mysql5.7.25,cmd命令中进行演示。 代码中被[]包含的表示可选,|符号分开的表示可选其一。 上一篇 "存储过程&自定义函数" ,对存储过程和自定义函数做了一个简单的介绍 阅读全文
posted @ 2019-10-09 10:17 路人甲Java 阅读 (395) 评论 (2) 编辑
摘要:Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能。 这是Mysql系列第21篇。 本文开始连续3篇详解mysql索引: 1. 第1篇来说说什么是索引? 2. 第2篇详解Mysql中索引的原理 3. 第3篇结合索引详解关键字explain 本文为索引第一篇:我们来了解一 阅读全文
posted @ 2019-10-08 16:17 路人甲Java 阅读 (463) 评论 (4) 编辑
摘要:这是Mysql系列第14篇。 环境:mysql5.7.25,cmd命令中进行演示。 开发过程中,会经常用到数据库事务,所以本章非常重要。 本篇内容 1. 什么是事务,它有什么用? 2. 事务的几个特性 3. 事务常见操作指令详解 4. 事务的隔离级别详解 5. 脏读、不可重复读、可重复读、幻读详解 阅读全文
posted @ 2019-09-27 10:00 路人甲Java 阅读 (347) 评论 (0) 编辑
摘要:这是Mysql系列第13篇。 环境:mysql5.7.25,cmd命令中进行演示。 当数据的值为NULL的时候,可能出现各种意想不到的效果,让人防不胜防,我们来看看NULL导致的各种神坑,如何避免? 比较运算符中使用NULL 认真看下面的效果 结论:任何值和NULL使用运算符( 、=、)或者(in、 阅读全文
posted @ 2019-09-25 09:57 路人甲Java 阅读 (372) 评论 (0) 编辑
摘要:这是Mysql系列第12篇。 环境:mysql5.7.25,cmd命令中进行演示。 本章节非常重要。 子查询 出现在select语句中的select语句,称为子查询或内查询。 外部的select查询语句,称为主查询或外查询。 子查询分类 按结果集的行列数不同分为4种 标量子查询(结果集只有一行一列) 阅读全文
posted @ 2019-09-24 13:23 路人甲Java 阅读 (400) 评论 (0) 编辑
摘要:这是Mysql系列第10篇。 环境:mysql5.7.25,cmd命令中进行演示。 MySQL 数值型函数 | 函数名称 | 作 用 | | | | | abs | 求绝对值 | | sqrt | 求二次方根 | | mod | 求余数 | | ceil 和 ceiling | 两个函数功能相同,都 阅读全文
posted @ 2019-09-20 14:56 路人甲Java 阅读 (398) 评论 (0) 编辑
摘要:这是Mysql系列第11篇。 环境:mysql5.7.25,cmd命令中进行演示。 当我们查询的数据来源于多张表的时候,我们需要用到连接查询,连接查询使用率非常高,希望大家都务必掌握。 本文内容 1. 笛卡尔积 2. 内连接 3. 外连接 4. 左连接 5. 右连接 6. 表连接的原理 7. 使用j 阅读全文
posted @ 2019-09-19 16:28 路人甲Java 阅读 (321) 评论 (1) 编辑
摘要:这是Mysql系列第9篇。 环境:mysql5.7.25,cmd命令中进行演示。 本篇内容 1. 分组查询语法 2. 聚合函数 3. 单字段分组 4. 多字段分组 5. 分组前筛选数据 6. 分组后筛选数据 7. where和having的区别 8. 分组后排序 9. where & group b 阅读全文
posted @ 2019-09-16 16:37 路人甲Java 阅读 (532) 评论 (4) 编辑
摘要:这是Mysql系列第8篇。 环境:mysql5.7.25,cmd命令中进行演示。 代码中被[]包含的表示可选,|符号分开的表示可选其一。 本章内容 1. 详解排序查询 2. 详解limit 3. limit存在的坑 4. 分页查询中的坑 排序查询(order by) 电商中:我们想查看今天所有成交的 阅读全文
posted @ 2019-09-12 16:18 路人甲Java 阅读 (308) 评论 (0) 编辑
摘要:sql查询算是基础的技能,里面也有一些坑,需要去避开。 阅读全文
posted @ 2019-09-10 16:37 路人甲Java 阅读 (419) 评论 (0) 编辑
摘要:这是Mysql系列第5篇。 环境:mysql5.7.25,cmd命令中进行演示。 DML(Data Manipulation Language)数据操作语言,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除, 是必须要掌握的指令 ,DML和SQL中的select熟称 阅读全文
posted @ 2019-09-06 16:15 路人甲Java 阅读 (249) 评论 (0) 编辑
摘要:这是Mysql系列第4篇。 环境:mysql5.7.25,cmd命令中进行演示。 DDL:Data Define Language数据定义语言,主要用来对数据库、表进行一些管理操作。 如:建库、删库、建表、修改表、删除表、对列的增删改等等。 文中涉及到的语法用[]包含的内容属于可选项,下面做详细说明 阅读全文
posted @ 2019-09-04 17:24 路人甲Java 阅读 (409) 评论 (0) 编辑
摘要:这是mysql系列第3篇文章。 环境:mysql5.7.25,cmd命令中进行演示。 在玩mysql的过程中,经常遇到有很多朋友在云上面玩mysql的时候,说我创建了一个用户为什么不能登录?为什么没有权限?等等各种问题,本文看完之后,这些都不是问题了。 本文主要内容 1. 介绍Mysql权限工作原理 阅读全文
posted @ 2019-09-02 15:59 路人甲Java 阅读 (467) 评论 (0) 编辑
摘要:这是java高并发系列第32篇文章。 java环境:jdk1.8。 本文主要内容 1. 4种方式实现计数器功能,对比其性能 2. 介绍LongAdder 3. 介绍LongAccumulator 需求:一个jvm中实现一个计数器功能,需保证多线程情况下数据正确性。 我们来模拟50个线程,每个线程对计 阅读全文
posted @ 2019-08-28 15:43 路人甲Java 阅读 (466) 评论 (0) 编辑
摘要:在一个线程中需要获取其他线程的执行结果,能想到几种方式?结合这个需求,我们使用6种方式,来对之前学过的知识点做一个回顾,加深记忆。 阅读全文
posted @ 2019-08-26 15:25 路人甲Java 阅读 (358) 评论 (0) 编辑
摘要:这是java高并发系列第29篇。 环境:jdk1.8。 本文内容 1. 介绍常见的限流算法 2. 通过控制最大并发数来进行限流 3. 通过漏桶算法来进行限流 4. 通过令牌桶算法来进行限流 5. 限流工具类RateLimiter 常见的限流的场景 1. 秒杀活动,数量有限,访问量巨大,为了防止系统宕 阅读全文
posted @ 2019-08-20 16:23 路人甲Java 阅读 (576) 评论 (2) 编辑
摘要:这是java高并发系列第28篇文章。 环境:jdk1.8。 本文内容 1. 日志有什么用? 2. 日志存在的痛点? 3. 构建日志系统 日志有什么用? 1. 系统出现故障的时候,可以通过日志信息快速定位问题,修复bug,恢复业务 2. 提取有用数据,做数据分析使用 本文主要讨论通过日志来快速定位并解 阅读全文
posted @ 2019-08-19 16:07 路人甲Java 阅读 (343) 评论 (0) 编辑
摘要:这是java高并发系列第26篇文章。 环境:jdk1.8。 本文内容 1. 了解JUC常见集合,学会使用 3. ConcurrentHashMap 4. ConcurrentSkipListMap 5. ConcurrentSkipListSet 6. CopyOnWriteArraySet 7. 阅读全文
posted @ 2019-08-16 15:10 路人甲Java 阅读 (144) 评论 (0) 编辑
摘要:这是java高并发系列第27篇文章。 开发环境:jdk1.8。 案例讲解 电商app都有用过吧,商品详情页,需要给他们提供一个接口获取商品相关信息: 1. 商品基本信息(名称、价格、库存、会员价格等) 2. 商品图片列表 3. 商品描述信息(描述信息一般是由富文本编辑的大文本信息) 数据库中我们用了 阅读全文
posted @ 2019-08-16 15:09 路人甲Java 阅读 (509) 评论 (2) 编辑
摘要:这是java高并发系列第25篇文章。 环境:jdk1.8。 本文内容 1. 掌握Queue、BlockingQueue接口中常用的方法 2. 介绍6中阻塞队列,及相关场景示例 3. 重点掌握4种常用的阻塞队列 Queue接口 队列是一种先进先出(FIFO)的数据结构,java中用 接口来表示队列。 阅读全文
posted @ 2019-08-15 16:26 路人甲Java 阅读 (261) 评论 (0) 编辑
摘要:java高并发系列第24篇文章。 环境:jdk1.8。 本文内容 1. 需要解决的问题 2. 介绍ThreadLocal 3. 介绍InheritableThreadLocal 需要解决的问题 我们还是以解决问题的方式来引出 、`InheritableThreadLocal`,这样印象会深刻一些。 阅读全文
posted @ 2019-08-13 14:49 路人甲Java 阅读 (498) 评论 (1) 编辑
摘要:这是java高并发系列第23篇文章,环境:jdk1.8。 本文主要内容 1. JUC中的原子类介绍 2. 介绍基本类型原子类 3. 介绍数组类型原子类 4. 介绍引用类型原子类 5. 介绍对象属性修改相关原子类 预备知识 JUC中的原子类都是都是依靠 volatile 、 CAS 、 Unsafe 阅读全文
posted @ 2019-08-07 15:13 路人甲Java 阅读 (416) 评论 (0) 编辑
摘要:这是java高并发系列第22篇文章,文章基于jdk1.8环境。 本文主要内容 1. 基本介绍 2. 通过反射获取Unsafe实例 3. Unsafe中的CAS操作 4. Unsafe中原子操作相关方法介绍 5. Unsafe中线程调度相关方法 6. park和unpark示例 7. Unsafe锁示 阅读全文
posted @ 2019-08-06 14:51 路人甲Java 阅读 (448) 评论 (0) 编辑
摘要:这是java高并发系列第21篇文章。 本文主要内容 1. 从网站计数器实现中一步步引出CAS操作 2. 介绍java中的CAS及CAS可能存在的问题 3. 悲观锁和乐观锁的一些介绍及数据库乐观锁的一个常见示例 4. 使用java中的原子操作实现网站计数器功能 我们需要解决的问题 需求:我们开发了一个 阅读全文
posted @ 2019-08-05 15:00 路人甲Java 阅读 (318) 评论 (0) 编辑
摘要:这是java高并发系列第20篇文章。 本文内容 1. ExecutorCompletionService出现的背景 2. 介绍CompletionService接口及常用的方法 3. 介绍ExecutorCompletionService类及其原理 4. 示例:执行一批任务,然后消费执行结果 5. 阅读全文
posted @ 2019-08-02 09:08 路人甲Java 阅读 (158) 评论 (0) 编辑
摘要:这是java高并发系列第19篇文章。 本文主要内容 1. 介绍Executor框架相关内容 2. 介绍Executor 3. 介绍ExecutorService 4. 介绍线程池ThreadPoolExecutor及案例 5. 介绍定时器ScheduledExecutorService及案例 6. 阅读全文
posted @ 2019-08-01 09:17 路人甲Java 阅读 (351) 评论 (1) 编辑
摘要:本文主要内容 1. 什么是线程池 2. 线程池实现原理 3. 线程池中常见的各种队列 4. 自定义线程创建的工厂 5. 常见的饱和策略 6. 自定义饱和策略 7. 线程池中两种关闭方法有何不同 8. 扩展线程池 9. 合理地配置线程池 10. 线程池中线程数量的配置 阅读全文
posted @ 2019-07-29 08:59 路人甲Java 阅读 (1917) 评论 (5) 编辑
摘要:1. 第1天:必须知道的几个概念 2. 第2天:并发级别 3. 第3天:有关并行的两个重要定律 4. 第4天:JMM相关的一些概念 5. 第5天:深入理解进程和线程 6. 第6天:线程的基本操作 7. 第7天:volatile与Java内存模型 8. 第8天:线程组 9. 第9天:用户线程和守护线程 阅读全文
posted @ 2019-07-26 09:32 路人甲Java 阅读 (609) 评论 (2) 编辑
摘要:这是java高并发系列第17篇。 本文主要内容: 1. 介绍CyclicBarrier 2. 6个示例介绍CyclicBarrier的使用 3. 对比CyclicBarrier和CountDownLatch CyclicBarrier简介 CyclicBarrier通常称为循环屏障。它和CountD 阅读全文
posted @ 2019-07-25 09:20 路人甲Java 阅读 (365) 评论 (0) 编辑