自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 收藏
  • 关注

原创 学习总结 -- 博文大纲

文章目录1. Java 基础2. Java 集合3. Java 并发4. Java 虚拟机1. JVM 基础2. JVM 调优5. Java 网络编程6. Spring 系列7. SpringBoot 系列8. 数据库1. SQL2. MySQL 系列9. 前端1. HTML2. CSS3. JavaScript4. Node.js5. Vue.js10.Python11.Go12. C13. L...

2020-04-19 18:14:55 313

转载 request.getParameterMap()

查看了一个项目的源码,里面用到了**request.getParameterMap()**,很是新奇,以往我们用的都是request.getParameter(a...

2020-09-17 10:28:51 4179

原创 MySQL 进阶 (1) -- MySQL 概念

文章目录1. MySQL 的架构2. MyISAM 与 InnoDB 的比较1. MySQL 的架构大致上来说,MySQL 可以分为 Server层和 存储引擎层。Server 层包括连接器、查询缓存、分析器、优化器、执行器,包括大多数 MySQL 中的核心功能,所有跨存储引擎的功能也在这一层实现,包括 存储过程、触发器、视图等。存储引擎层包括 MySQL 常见的存储引擎,包括 MyISAM、InnoDB 和 Memory 等,最常用的是 InnoDB,也是现在 MySQL 的默认存储引擎。存储

2020-05-28 21:05:25 481

原创 MySQL 基础 (2) -- MySQL 优化

文章目录1. 基础1. MySQL 的架构2. MyISAM 与 InnoDB 的比较3. SQL 语句执行顺序2. JOIN 查询1. inner join2. left join3. right join4. A 独有5. B 独有6. AB 全有7. AB 独有3. 索引1. 概念2. 优缺点3. 是否建立索引4. EXPLAIN5. 索引优化6. ORDER BY 优化1. 基础1. MySQL 的架构2. MyISAM 与 InnoDB 的比较InnoDB 支持事务,是事务型数据库的

2020-05-12 20:59:03 560

原创 MySQL 基础 (1) -- 入门

文章目录1. 连接2. 数据库1. 创建数据库2. 删除数据库3. 使用数据库3. 数据类型4. 数据库表1. 创建表5. 练习1. 连接-- 启动 MySQLnet start mysql-- 关闭 MySQLnet stop mysql-- 登录mysql -uroot -p123456-- 退出exit 或者 quit-- 添加用户:先到 mysql 数据库,对 user 表进行操作即可USE mysql;INSERT INTO user(host,user,authe

2020-05-12 20:39:43 1819

原创 SQL 基础 (1) -- SQL

文章目录1. 入门1. window 服务2.连接与断开服务器3.数据库操作4.表的操作5.数据的操作6.字符集编码7.数据类型8.列约束9.建表规范10.DQL11.UNION12.子查询13.连接查询(JOIN)14.导出15.DML16.备份与还原17.视图(view)18.事务(transaction)19.锁表20.触发器21.SQL 编程22.内置函数23.用户和权限管理24.表维护25.杂项2. 进阶1. 入门1. window 服务-- 启动MySQL net start mysql

2020-05-12 20:33:14 514

原创 网络编程基础 (2) -- NIO

文章目录1. 入门1. 场景2. nio 的阻塞实现2. nio 的非阻塞实现1. 入门1. 场景接着上一篇中的站点访问问题,如果我们需要并发访问10个不同的网站,我们该如何处理?在上一篇中,我们使用了 java.net.socket 类来实现了这样的需求,以一个线程处理一个连接的方式,并配以线程池的控制,貌似得到了当前的最优解。可是这里也存在一个问题,连接处理是同步的,也就是并发数量增大后,大量请求会在队列中等待,或直接异常抛出。为解决这问题,我们发现元凶处在“一线程一请求”上,如果一个线程能同

2020-05-11 17:26:16 348

原创 网络编程基础 (1) -- Socket 通信机制

文章目录1. 入门1. 场景2. 请求模型优化3. 补充1. TCP客户端与服务端的场景2. UDP客户端和服务端的场景1. 入门1. 场景这里采用最简单的一请求一响应模型为例,假设我们现在需要向 baidu 站点进行通信。我们用 JAVA 原生的 socket 该如何实现。建立 socket 连接首先,我们需要建立 socket 连接(核心代码)import java.net.InetSocketAddress;import java.net.Socket;import java.ne

2020-05-11 14:50:39 431

原创 Java 并发 (15) -- 线程池

文章目录1. 简介1. 线程池的好处2. excute() 的执行流程3. execute() 方法和 submit() 方法的区别4. 线程池的 7 个属性5. 创建线程池6. 线程池中的线程创建时机7. Executors.newFixedThreadPool(…) 和 Executors.newCachedThreadPool() 构造出来的线程池的区别8. 任务执行过程中发生异常怎么处理...

2020-05-07 15:54:15 653 1

原创 Java 并发 (14) -- 原子类

文章目录1. 简介1. atomic 的原理2. 精讲1. Striped64 类的实现1. 简介Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。所以,所谓原子类说简单点就是具有原子操作特征的类JUC 包的原子类都存放在 JUC 的 atomic 子包下。根据操作的数据类型,可以将 JUC 包中的原子类分为 4 类:基本类...

2020-05-07 15:53:57 163

原创 Java 并发 (13) -- Fork/Join 框架

文章目录1. 简介2. 精讲1. 什么是 Fork/Join 框架2. 工作窃取算法3. Fork/Join 框架的设计4. 使用 Fork/Join 框架5. Fork/Join 框架的异常处理6. Frok/Join 框架的实现原理1. ForkJoinTask 的 fork() 方法实现原理2. ForkJoinTask 的 join() 方法实现原理1. 简介Fork/Join 并...

2020-05-06 20:18:18 198

原创 Java 并发 (12) -- Exchanger 类

文章目录1. 简介2. 精讲1. 概念2. 应用场景3. 示例4. 实现1. exchange(V x)1. 简介Exchanger 允许在并发任务之间交换数据。具体来说,Exchanger 类允许在两个线程之间定义同步点。当两个线程都到达同步点时,他们交换数据结构,因此第一个线程的数据结构进入到第二个线程中,第二个线程的数据结构进入到第一个线程中;或者这么说,它提供一个同步点,在这个同步...

2020-05-06 20:06:06 307

原创 Java 并发 (11) -- CyclicBarrier 类

文章目录1. 简介2. 精讲1. 概念2. 实现1. 构造器2. await()3. 应用场景4. 示例1. 简介CyclicBarrier 是一个同步辅助类,他会让一组线程到达一个屏障时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,然后所有被屏障拦截的线程才会继续往下执行CyclicBarrier 的内部是使用重入锁 ReentrantLock 和 ConditionCy...

2020-05-06 20:02:00 208

原创 Java 并发 (10) -- CountDownLatch 类

文章目录1. 简介2. 精讲1. 概念2. 实现1. 构造器2. await()3. countDown()4. 总结3. 应用场景4. 示例1. 简介CountDownLatch 是通过一个计数器来实现的,当我们在 new 一个 CountDownLatch 对象的时候需要传入该计数器值,该值就表示了线程的数量。每当一个线程完成自己的任务后,计数器的值就会减 1。当计数器的值变为 0 时...

2020-05-06 19:59:02 382

原创 Java 并发 (9) -- Semaphore 类

文章目录1. 简介2. 精讲1. 概念2. 实现1. 构造器2. acquire()3. release()3. 示例1. 简介synchronized 和 ReentrantLock 都是一次只允许一个线程访问某个资源,而 Semaphore 可以指定多个线程同时访问某个资源,和 CountDownLatch 一样,其本质上是一个 “共享锁”,它通常用于限制可以访问某些资源的线程数目Se...

2020-05-06 19:55:47 130

原创 Java 并发 (8) -- ReentrantReadWriteLock 类

文章目录1. 简介2. 精讲1. 读写锁的概念1. ReentrantReadWriteLock 的特性2. 读写锁的具体实现1. 读锁状态的设计2. 锁的获取1. 写锁的获取2. 读锁的获取3. 总结3. 锁的释放1. 写锁的释放2. 读锁的释放3. 总结3. ReentrantReadWriteLock 中的其他方法1. getOwner()2. getReadLockCount()3. ge...

2020-05-06 18:49:43 264

原创 Java 并发 (6) -- 队列同步器 AQS

文章目录1. 简介2. 精讲1. AQS 概念2. 队列同步器的接口3. 队列同步器的源码分析1. 同步队列1. AQS 中的成员变量4. 独占模式1. 独占式同步状态获取:不响应中断2. **独占式同步状态的释放**3. 以上两点的总结4. 独占式获取同步状态:可响应中断5. 独占式超时获取同步状态5. 共享模式1. 共享式获取同步状态(不响应中断)2. 共享式获取同步状态(响应中断)3. 共...

2020-05-06 18:36:21 322

原创 Java 并发 (7) -- ReentrantLock 类

文章目录1. 简介2. 精讲1. 重入锁概念2. ReentrantLock 与 synchronized 的对比1. synchronized 回顾2. ReentrantLock 和 synchronized 的比较3. 重入锁的一个简单案例3. 源码分析1. 继承体系2. 获取锁3. 释放锁4. 公平锁与非公平锁1. 简介在 Java 5.0 之前,协调对共享对象的访问可以使用的机制只有...

2020-05-06 18:07:46 223

原创 Java 并发 (5) -- happen - before 规则

文章目录1. 简介2. 精讲1. 案例2. JMM 与 happen - before 规则3. happens-before 的定义4. happens-before 规则的几个案例1. 简介倘若在程序开发中,仅靠 sychronized 和 volatile 关键字来保证原子性、可见性以及有序性,那么编写并发程序可能会显得十分麻烦。幸运的是,在 Java 内存模型中,还提供了 happen...

2020-05-06 17:51:21 419

原创 Java 并发 (4) -- volatile 关键字

文章目录1. 简介2. 精讲1. volatile 的作用1. volatile 保证可见性2. volatile 禁止指令重排序2. volatile 写-读 建立的 happens - before 关系3. volatile 读-写 的内存语义4. volatile 的内存语义1. JSR-133 为什么要增强 volatile 的内存语义1. 简介volatile 是 Java 虚...

2020-05-06 17:38:54 173

原创 Java 并发 (3) -- Synchronized 关键字

文章目录1. 简介2. 精讲1. 概念2. synchronized 的三种应用1. 修饰实例方法2. 修饰静态方法3. 修饰代码块3. synchronized 底层原理1. Java 对象头与 Monitor2. synchronized 代码块底层原理3. synchronized 方法底层原理4. JDK 1.6 synchronized 的优化1. 偏向锁2. 轻量级锁3. 自旋锁4. ...

2020-05-06 17:28:50 211

原创 Java 并发 (2) -- ThreadLocal 类

文章目录1. 简介2. 精讲1. ThreadLocal 是什么2. ThreadLocal 源码分析1. ThreadLocalMap1. getEntry()2. set()2. ThreadLocal1. get()2. set(T value)3. initialValue()4. remove()3. ThreadLocal 为什么会有内存泄漏1. 手动释放 ThreadLocal 遗留...

2020-05-06 17:13:07 224

原创 Java 并发 (1) -- 多线程基础

文章目录1. 简介1. 并发与并行的区别2. 进程和线程3. 守护线程是什么4. 死锁 、活锁和饥饿5. Java 中用到的线程调度算法有哪些6. 线程组是什么7. 多线程的上线文切换8. 创建线程的几种方式9. Runnable 与 Callable 的区别10. 线程的状态(生命周期)11. sleep() 和 wait() 的区别12. 为什么 notify() 、wait() 等方法定义在...

2020-05-06 16:45:53 372

原创 Java 基础 (21) -- 16个常用的开源工具类

文章目录1. org.apache.commons.io.IOUtils2. org.apache.commons.io.FileUtils3. org.apache.commons.lang.StringUtils4. org.apache.http.util.EntityUtils5. org.apache.commons.lang3.StringUtils6. org.apache.comm...

2020-05-06 15:42:44 346

原创 Java 集合 (20) -- 阻塞队列之 SynchronousQueue 类

文章目录1. 简介2. 继承体系3. 字段4. 内部类5. 构造器6. 常用方法1. 简介public class SynchronousQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable {}SynchronousQueue 是 ...

2020-05-06 11:50:29 351

原创 Java 集合 (19) -- 阻塞队列之 LinkedBlockingQueue 类

文章目录1. 简介2. 继承体系3. 字段4. 内部类5. 构造器6. 常用方法1. 简介public class LinkedBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable {}LinkedBlocki...

2020-05-06 11:06:32 168

原创 Java 集合 (18) -- 阻塞队列之 ArrayBlockingQueue 类

文章目录1. 简介2. 继承体系3. 字段4. 构造器5. 常用方法1. 简介public class ArrayBlockingQueue<E> extends AbstractQueue<E> implements BlockingQueue<E>, java.io.Serializable {}ArrayBlockingQueue ...

2020-05-06 10:38:13 138

原创 Java 集合 (17) -- BlockingQueue 接口

文章目录1. 简介2. 继承体系3. 常用方法1. 简介public interface BlockingQueue<E> extends Queue<E> {}BlockingQueue 是一个支持两个附加操作的队列。这两个附加的操作分别是:在队列为空时,获取元素的线程会等待队列变为非空当队列满时,存储元素的线程会等待队列可用阻塞队列常用于生产者和消费者...

2020-05-06 09:54:24 240

原创 Java 集合 (16) -- PriorityQueue 类 & ConcurrentLinkedQueue 类 & ArrayDeque 类

文章目录1. PriorityQueue 类1. 简介2. 继承体系3. 字段4. 构造器5. 常用方法2. ConcurrentLinkedQueue 类1. 简介2. 继承体系3. 字段4. 内部类5. 构造器6. 常用方法7. ConcurrentLinkedQueue 与 LinkedBlockingQueue3. ArrayDeque 类1. 简介2. 继承体系3. 字段4. 构造器5....

2020-05-05 20:44:15 714

原创 Java 集合 (15) -- CopyOnWriteArraySet 类 & ConcurrentSkipListSet 类

文章目录1. CopyOnWriteArraySet 类1. 简介2. 继承体系3. 源码2. ConcurrentSkipListSet 类1. 简介2. 继承体系3. 源码1. CopyOnWriteArraySet 类1. 简介public class CopyOnWriteArraySet<E> extends AbstractSet<E> i...

2020-05-05 18:47:19 548

原创 Java 集合 (14) -- TreeSet 类

文章目录1. 简介2. 继承体系3. 字段4. 构造器5. 方法6. 扩展1. 简介public class TreeSet<E> extends AbstractSet<E> implements NavigableSet<E>, Cloneable, java.io.Serializable {}TreeSet 继承了 AbstractSet...

2020-05-05 18:20:17 334

原创 Java 集合 (13) -- LinkedHashSet 类

文章目录1. 简介2. 继承体系1. 简介public class LinkedHashSet<E> extends HashSet<E> implements Set<E>, Cloneable, java.io.Serializable {}LinkedHashSet 是 HashSet 的一个 扩展版本,HashSet 并不管什么顺...

2020-05-05 18:19:59 271

原创 Java 集合 (12) -- HashSet 类

文章目录1. 简介2. 继承体系3. 字段4. 构造器5. 常用方法1. 简介public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable {}HashSet 继承了 AbstractSet 类,实现 Se...

2020-05-05 17:38:21 161

原创 Java 集合 (11) -- ConcurrentSkipListMap 类

文章目录1. 简介2. 继承体系3. 存储结构4. 内部类5. 构造器6. 常用方法1. 简介public class ConcurrentSkipListMap<K,V> extends AbstractMap<K,V> implements ConcurrentNavigableMap<K,V>, Cloneable, Serializable ...

2020-05-05 16:57:58 366

原创 Java 集合 (10) -- ConcurrentHashMap 类

文章目录1. 简介2. 继承体系3. 字段4. 构造器5. 常用方法1. 简介public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable {}ConcurrentHashMap 是线程安全的 Has...

2020-05-05 14:14:04 222

原创 Java 集合 (9) -- TreeMap 类

文章目录1. 简介2. 继承体系3. NavigableMap 接口 & SortedMap 接口4. 内部类5. 字段6. 构造器7. 常用方法1. 简介public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable...

2020-05-05 12:41:09 207

原创 Java 集合 (8) -- LinkedHashMap 类

文章目录1. 简介2. 继承体系3. 字段4. 内部类5. 构造器6. 常用方法7. 扩展1. 简介public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> {}HashMap 是无序的,也就是说,迭代 HashMap 所得到的元素顺序并不是它们最初放...

2020-05-05 12:05:44 379

原创 Java 集合 (7) -- HashTable 类

文章目录1. 简介2. 继承体系3. HashTable 与 HashMap 的区别1. 简介public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable {}HashTable 继承了 Di...

2020-05-05 10:19:31 211

原创 Java 集合 (6) -- HashMap 类

文章目录简介简介public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable {}HashMap 采用 key-value 的存储结构,每个 key 唯一对应一个 value,是一种支持快速存取的数据结构,它的查询和修...

2020-05-04 17:41:47 632

原创 Java 集合 (5) -- CopyOnWriteArrayList 类

文章目录1. 简介2. 继承体系3. 字段4. 构造器5. 常用方法6. 总结1. 简介public class CopyOnWriteArrayList<E> implements List<E>, RandomAccess, Cloneable, java.io.Serializable {}CopyOnWriteArrayList 是 ArrayLis...

2020-05-04 17:21:47 298

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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