自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

匠心编程

不积跬步无以至千里,不积小流无以成江河!

原创 目录: Mybatis

Mybatis3 学习笔记 01. Mybatis 简介 02. Mybatis 环境搭建 03. Mybatis 环境搭建-完善单表的CRUD 04. Mybatis 动态sql 05.Mybatis sql 片段重用 06. Mybatis 缓存-一级缓存 07. Mybatis...

2019-08-28 10:58:17

阅读数 8353

评论数 0

原创 目录: Shell 学习笔记

01. Shell 脚本编程简介 02. Shell 变量-用户自定义变量 03. Shell 变量-内置变量 04. Shell 变量-脚本参数变量 05. Shell 输入与输出 06. Shell 数组 07. Shell 判断表达式 09. Shell 流程控制-循环 10...

2019-08-28 10:58:09

阅读数 5557

评论数 0

原创 目录: Perl 学习笔记

01. Perl 简介 03. Perl 数据类型-简介 04. Perl 数据类型-直接量 05. Perl 数据类型-标量变量 06. Perl 数据类型-数组基本用法 07. Perl 数据类型-数组常用API 08. Perl 数据类型-哈希基本用法 09. Perl 数据类...

2019-08-28 10:58:02

阅读数 9632

评论数 0

原创 目录: vsftpd 学习笔记

1. vsftpd安装: Linux 下的ftp服务 2. vsftd 用户管理之虚拟用户 3. vsftpd常用配置

2019-08-28 10:57:56

阅读数 9561

评论数 0

原创 目录: Jdbc 学习笔记

Jdbc 学习笔记 01. jdbc 简介 02. jdbc 数据库连接管理 03. jdbc Statement sql注入风险 04. jdbc PreparedStatement 执行增删改 05.jdbc PreparedStatement 执行查询 06. jdbc Call...

2019-08-28 10:57:51

阅读数 9655

评论数 0

原创 目录: Spring Shell 学习笔记

00.SpringShell简介 01.SpringShell环境搭建 02.SpringShell自定义命令-@ShellMethod 03.SpringShell命令参数-@ShellOption 04.SpringShell参数校验 05.SpringShell命令限制可用-@Sh...

2019-08-28 10:57:42

阅读数 8840

评论数 0

原创 目录: Spring Data Redis 学习笔记

01. SDR(spring-data-redis) 简介 02. SDR 环境搭建 03. SDR RedisTemplate 简介 04. SDR RedisTemplate API 简介 05. SDR StringRedisTemplate 简介 06. SDR 序列化方式-Se...

2019-08-28 10:57:35

阅读数 8803

评论数 0

原创 目录: Quartz学习笔记

00.Quartz 简介 01.Quartz 环境搭建-基于内存 02.Quartz 环境搭建-基于jdbc-mysql 03.Quartz 定时任务-Job 和 JobDetail 04.Quartz 触发器 05.Quartz cron 表达式详解 06.Quartz 监听器-Jo...

2019-08-28 10:57:29

阅读数 9662

评论数 0

原创 目录: java8 学习笔记

java8 学习笔记 01. Java8-Lambada 表达式 02. Java8-四大核心函数式接口 03. Java8-方法引用 04. Java8-流式API-简介 05. Java8-流式API-创建流 06. Java8-流式API-中间操作 07. Java8-流式AP...

2019-08-28 10:57:24

阅读数 8855

评论数 0

原创 目录: Zookeeper 学习笔记

Zookeeper 学习笔记 01. Zookeeper 简介 02. Zookeeper 安装-单实例环境 03. Zookeeper 安装-伪集群环境 04. Zookeeper 安装-集群环境 05. Zookeeper shell客户端-常用命令 06. Zookeeper s...

2019-08-28 10:57:16

阅读数 9611

评论数 0

原创 目录: Redis 学习笔记

Redis 学习笔记 01. Redis 简介 02. Redis 源码安装 03. Redis 常用配置 04. Redis 环境搭建-单实例 05. Redis 环境搭建-高可用集群(HA) 06. Redis 环境搭建-分片集群Cluster 07. Redis 客户端访问 ...

2019-08-28 10:57:10

阅读数 9589

评论数 0

原创 目录: 23种经典设计模式学习笔记

01. 23种经典设计模式-11-单例模式 02. 23种经典设计模式-12-原型模式 03. 23种经典设计模式-13-工厂方法模式 04. 23种经典设计模式-14-抽象工厂模式 05. 23种经典设计模式-15-建造者模式 06. 23种经典设计模式-15-建造者模式扩展 07. 23种经典...

2019-08-28 10:50:06

阅读数 5616

评论数 0

原创 目录: java 多线程 学习笔记

速度发送

2019-09-01 19:00:55

阅读数 7127

评论数 0

原创 02. 线程的五种状态

1. 线程的状态 java 中, 线程有五种状态: 新建(New), 就绪(Ready), 运行(Running), 阻塞(Blocked), 死亡(Dead). 线程启动后, 不可能一直霸占着CPU 独自运行, CPU 需要在多个线程之间切换, 因此线程状态也就会在运行, 就绪之间来回切换. ...

2019-09-01 18:52:47

阅读数 6861

评论数 0

原创 03. 异步线程创建-Thread 方式

1. 核心内容 直接继承Thread类是创建异步线程最简单的方式, 但并不常用. 匿名内部类的方式可以考虑. 1.1 继承Thread 方式特点 开发简单, 可直接通过this.获取线程的相关信息 违背了面向接口编程原则, 需直接继承Thread类, 不利于扩展. 不推荐使用 主线程...

2019-09-01 18:52:36

阅读数 1000

评论数 0

原创 04. 异步线程创建-Runnable 方式

1. 核心内容 直接继承Thread类是创建异步线程最简单的方式, 但并不常用. 匿名内部类的方式可以考虑. 1.1 继承Thread 方式特点 开发简单, 可直接通过this.获取线程的相关信息 违背了面向接口编程原则, 需直接继承Thread类, 不利于扩展. 不推荐使用 主线程...

2019-09-01 18:52:16

阅读数 1033

评论数 0

原创 05. 异步线程创建-Callable 方式

1. Callable 方式 Callable 方式最主要的特点就是可以阻塞式获取子线程执行结果, 也就是说对于长耗时的任务,可以放到子线程中执行, 而主线程去执行其它任务. 当主线程执行完其它任务之后, 需要获取子线程任务返回结果时, 如果子线程没有执行完, 主线程会阻塞, 等子线程执行完之后...

2019-09-01 18:51:09

阅读数 919

评论数 0

原创 06. 守护线程

前言: 1. 守护线程 java 语言中有两种类型的线程, 用户线程和守护线程. 1.1 守护线程与用户线程区别 守护线程和用户线程唯一的区别就是: 当jvm中只剩下守护线程时,jvm便会终止程序,所有守护线程立即结束。 当jvm中还存在至少一个用户进程时, jvm 也...

2019-09-01 18:51:01

阅读数 922

评论数 0

原创 07. 线程组

1. 线程优先级 每个线程执行时都具有一定的优先级, 优先级较高的线程将获得更多的执行机会. 每个线程默认的优先级都和它的父线程的优先级相同 默认情况下, main 程序具有普通优先级, 也就是5 1.1 优先级取值范围 优先级的范围为1~10之间的整数, Thread 也提供了...

2019-09-01 18:50:52

阅读数 915

评论数 0

原创 08. 线程异常捕获

1. 线程的异常捕获 1.1 线程异常的捕获 从java5 开始, Java 加强了对线程异常的处理. 如果线程执行过程中抛出了一个未处理的异常, JVM在结束该线程之前, 会自动查找该线程是否拥有对应的线程异常处理器对象, 若找到之后, 则调用异常处理器的方法处理异常. java5 之...

2019-09-01 18:50:44

阅读数 910

评论数 0

原创 09. 线程池-Executors 相关API

系统创建和销毁一个线程的成本是比较高的, 因为它涉及到与操作系统的交互. 因此, 使用线程池可以很好地提高性能, 尤其是在系统需要频繁创建大量且生命周期很短暂的线程时. 线程池和数据库连接池异曲同工. 1. 线程池创建工具类-Executors 在java5之前, 我们需要自己动手创建线程池...

2019-09-01 18:50:36

阅读数 909

评论数 0

原创 10. 线程池-Executors 常见用法示例

1. 创建异步任务 为了测试方法, 笔者创建一个有返回值的Callable类, 创建一个无返回值的Runnable 类. 1.1 自定义Callable public class MyCallable implements Callable<String> { @O...

2019-09-01 18:50:30

阅读数 937

评论数 0

原创 11. java线程池-ForkJoinPool

1. ForkJoinPool java7 提供了ForkJoinPool 来支持将一个任务采用递归方式分成多个小任务计算, 然后再把小任务的计算结果合并为总的结果. 1.1 ForkJoinPool 的创建方式 java7 提供了两个构造器: ForkJoinPool(int p...

2019-09-01 18:50:22

阅读数 916

评论数 0

原创 12. 线程安全类型-原子类型

1. 原子类型 从java5 之后, java.util.concurrent.atomic 包下, 新增了一组原子类, 是基本类型对应的线程安全的类型. 命名为AtomicXXX 1.1 常用原子类 java.util.concurrent.atomic AtomicInteger:...

2019-09-01 18:50:15

阅读数 927

评论数 0

原创 13. 线程安全类型-集合

Java 中常见的集合类型都是不安全的, 比如说ArrayList, LinkedList, HashSet, TreeSet, HashMap, TreeMap 等, 这些都是线程不安全的. 也就是说当多线程访问这些数据时, 便可能会产生结果紊乱. Java5 之后, 在java.util.c...

2019-09-01 18:50:08

阅读数 931

评论数 0

原创 14. 线程安全类型-ThreadLocal

在多线程开发中, 我们有时需要用到一些和线程状态相关的变量, 每个线程所拥有的变量不一致. java 提供了ThreadLocal 变量来实现. 1. ThreadLocal ThreadLocal 为每一个使用该变量的线程创建了一个副本, 使得每一个线程都可以独立地变更自己的副本, 与其它线...

2019-09-01 18:49:48

阅读数 913

评论数 0

原创 15. 线程同步-sychronized与Lock

1. 线程安全问题 在多线程环境下, 如果使用线程不安全的类型, 可能会产生并发问题. 解决线程安全问题, 笔者总结有以下三种情况: 使用线程安全的变量: Automicxxx 等 使用隐形锁, 借助synchronized 关键字 使用显示锁, java5 新增的Lock 接口 ...

2019-09-01 18:49:42

阅读数 32

评论数 0

原创 16. 线程通信-传统方式

1. 线程通信的传统方式 传统的线程通信方式指的是借助于, Object 基类中的wait(), notify(), notifyAll()方法. 这三个方法必须由同步监视器对象进行调用, 影响的也只是同一同步监视器的相关线程. 1.1 同步监视器 同步监视器, 也就是指监视的资源. 对于...

2019-09-01 18:49:27

阅读数 906

评论数 0

原创 17. 线程通信-Condition

1. 线程通信-Condition 当使用synchronized 进行线程同步时, 可以使用Object的wait(), notify(), notifyAll() 方法进行线程通信. 但是当使用Lock 对象保证线程同步时, 便不能使用Object 的方法来进行线程通信了, 而是通过C...

2019-09-01 18:49:20

阅读数 913

评论数 0

原创 18. 线程通信-阻塞队列

1. 线程通信-阻塞队列 1.1 阻塞API BlockingQueue 接口提供了两个阻塞方法: void put(E e) throws InterruptedException: 像队列中添加元素, 如果队列已满, 则阻塞该线程. E take() throws Interrup...

2019-09-01 18:49:14

阅读数 897

评论数 0

原创 19. 线程通信-监听异步线程结束

在企业开发中, 采用异步线程可以提升系统性能. 但是在异步线程开发中, 有时主线程需要监听异步线程何时执行结束, 然后再做一些其它操作. java 中有两种方式监听异步线程的结束: CountDownLatch 和 join. 1. CountDownLatch 方式 1.1 自定义线程类 ...

2019-09-01 18:49:08

阅读数 913

评论数 0

原创 20. 线程通信-虚假唤醒

1. 线程通信的虚假唤醒 线程虚假唤醒指的是, 本以为满足了唤醒条件, 然后将阻塞的线程唤醒, 但是在开始执行逻辑时, 却不满足唤醒条件. 1.1 Product 类 新建两个方法sale()和 purchase(), 需要使用synchronized 关键字修饰 使用this.wai...

2019-09-01 18:49:03

阅读数 931

评论数 0

原创 21. java9 的发布订阅

1. java9 的发布订阅 java9 新增了一个发布-订阅框架, 该框架是基于异步响应流的. 之前开发发布订阅通常都会借助于中间件, 如mq, redis 等, java9之后, 对于简单的发布订阅系统, jdk便直接可以满足. 1.1 相关API Flow.Pulisher: 消息...

2019-09-01 18:48:56

阅读数 967

评论数 0

原创 01. java 多线程

预留一篇做总结

2019-09-01 18:48:49

阅读数 31

评论数 0

原创 17. 23种经典设计模式-311-迭代器模式

1. 迭代器模式(Iterator Pattern) Provide a way to access the elements of an aggregate object sequentially without exposing its underlying representation...

2019-08-27 17:10:45

阅读数 44

评论数 0

原创 18. 23种经典设计模式-32-模板方法模式

1. 模板方法模式(Tmeplate Method Pattern) Define the skeleton of an algorithm in an operation, deferring some steps to subclasses. Template Method lets s...

2019-08-27 17:10:41

阅读数 50

评论数 0

原创 19. 23种经典设计模式-33-策略模式

1. 策略模式(Strategy Pattern) Define a family of algorithms, encapsulate eache one, and make them interchangeable. (定义一组算法, 将每个算法都封装起来,并使它们之间可以相互替换) ...

2019-08-27 17:10:37

阅读数 41

评论数 0

原创 20. 23种经典设计模式-34-观察者模式

1. 观察者模式(Observer Pattern) Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified ...

2019-08-27 17:10:34

阅读数 36

评论数 0

原创 21. 23种经典设计模式-34-观察者模式扩展

1. 观察者模式扩展 笔者上篇博客中提到, 对于四人帮定义的标准观察者模式而言, 有两个问题: 观察者中需要持有具体观察者的引用,这样导致观察者与被观察者直接有强耦合关系 观察者更新方法需要调用被观察者的方法获取实时状态, 虽然这种是为了保证消息通知时最小量化消息的设计,但是在多线程时,...

2019-08-27 17:10:30

阅读数 27

评论数 0

原创 22. 23种经典设计模式-35-命令模式

1. 命令模式(Command Pattern) Encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log reques...

2019-08-27 17:10:26

阅读数 33

评论数 0

提示
确定要删除当前文章?
取消 删除