自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发系列(五)Synchronized 和volatile

1. Synchronized与volatile思维导图预览2. 知识分点2.1 Synchronized2.1.1 修饰代码块2.1.2 给指定对象加锁2.1.3 修饰一个方法2.1.4 修饰一个类2.1.5 修饰一个静态的方法2.2 volatile2.3 synchronized VS volatile2.4 补充:...

2019-08-22 15:07:18 135

原创 并发系列(四)锁

1.锁思维导图概览2.知识分点2.1 悲观锁VS乐观锁2.2 自旋锁VS适应性自旋锁2.3 无锁2.4 偏向锁2.5 轻量级锁2.6 重量级锁2.7 公平锁VS非公平锁2.8 可重入锁VS不可重入锁2.9 共享锁VS排他锁2.10 锁消除2.11 锁粗化2.12 读写锁2.13 分段锁2.14 互斥锁2.15 闭锁2.16 死锁...

2019-08-06 17:25:43 141

原创 并发系列(三)安全队列

1. 安全队列Queue思维导图概览多线程编程中很多地方都是用到了安全队列,故简单做一个总结概括,方便后面查阅。2. 分知识点2.1 安全队列简介队列这种数据结构不必做过多解释,安全队列的目的在于在多线程中存在消费者生产者模式,即多个生产者(生产者线程)生产东西,多个消费者(消费者线程)进行消费,这时需要一个中间空间去暂存,这时就需要考虑使用安全队列,保证其流程的安全性。2.2 Bl...

2019-08-05 17:59:54 538

原创 并发系列(二)并发相关类与接口概述

1.并发相关类与接口思维导图预览学习和使用多线程的过程中,遇到很多的类和接口,以下将其整理做概括性描述,具体细节需要可以自行去深入理解学习。2.知识分点2.1 Thread(类)该类在jdk1.0的时候就已经存在,是创建线程的方式之一,它实现了Runnable接口。可以通过继承Thread类,重写run方法来创建一个线程,实现类调用start()方法便可以启动一个新的线程,同样它的构造...

2019-08-05 16:57:46 303

原创 并发系列(一)线程池

1.线程池思维导图预览2. 知识分点2.1 线程池的概念这里当然不是仅仅丢弃任务,线程池支持配置参数,选取不同的处理策略,下面会展示出来。2.2 ThreadPoolExecutor ThreadPoolExecutor的实现的顶层接口是Executor,继承了抽象类AbstractExecutorService,该抽象类实现了ExecutorService接口。2.2.1 构...

2019-08-05 14:07:47 106

原创 Redis学习(七)哨兵

1. 哨兵思维导图预览2.知识分点2.1 引言2.2 主从复制的问题2.3 高可用2.4 Sentinel的高可用性2.5 部署技巧2.6 客户端连接2.7 实现原理本文章系博主原创,尊重博主辛劳成果,转载请注明出处,谢谢。...

2019-06-30 21:32:33 92

原创 JVA虚拟机学习(二)垃圾收集器与内存分配策略

1. 思维导图概览2. 知识点2.1 引用算法2.2 可达性分析算法2.3 再谈引用2.4 对象回收2.5 回收方法区2.6 垃圾收集算法2.7HotSpot的算法实现2.8 垃圾收集器2.8.1 seria收集器2.8.2 ParNew收集器2.8.3 Parallel Scavenge2.8.4 Serial Old收集器2.8.5 Para...

2019-06-23 08:56:04 107

原创 JAVA虚拟机学习(一)内存区域

1.内存区域思维导图概览2.内存区域组成介绍2.1 程序计数器2.2 Java虚拟机栈2.3 本地方法栈2.4 Java堆2.5 方法区2.6 运行时常量池2.7 直接内存3. HotSpot虚拟机3.1 对象的创建3.2 对象的内存布局3.3 对象的访问定位4.OutofMemory异常本文章系博主原创,尊重博主辛劳成果,转载请注明出处,谢谢。...

2019-06-18 07:27:16 117

原创 Redis学习(六)阻塞

1. 阻塞思维导图概览2. 知识分点2.1 引言Redis是典型的单线程架构,所有的读写操作都是在一条线上完成的2.2 发现阻塞2.3 阻塞的原因2.3.1 内在原因2.3.2 外在原因本文章系博主原创,尊重博主辛劳成果,转载请注明出处,谢谢。...

2019-05-29 07:23:39 243

原创 Redis学习(五)复制

1. Redis复制思维导图概览2. 知识分点2.1 配置2.2 拓扑关系3. 复制原理3.1 复制过程3.2 数据同步3.3 全量复制3.4 部分复制3.5 心跳3.6 异步复制4. 开发与运维中的问题本文章系博主原创,尊重博主辛劳成果,转载请注明出处,谢谢。...

2019-05-29 07:12:26 137

原创 Redis学习(四)Redis持久化

1. Redis持久化思维导图概览2. 知识点介绍2.1 RDB持久化模式2.2 AOF持久化模式2.3 持久化问题分析与解决本文章系博主原创,尊重博主辛劳成果,转载请注明出处,谢谢。...

2019-05-27 06:17:15 122

原创 Redis学习(三)理解内存

1. 理解Redis内存思维导图概览2. 内存消耗3. 子进程消耗4. 内存管理5. 内存优化以上思维导图是博主自己个人总结,转载请注明出处。百度云:理解Redis内存提取码 :k12a思维导图软件:XMind8 update7本文章系博主原创,尊重博主辛劳成果,转载请注明出处,谢谢。...

2019-05-08 21:53:36 144

原创 Redis学习(二)缓存设计

引言缓存能够加速应用的读写速度,同时也可以降低后端负载,对日常应用开发至关重要。1.缓存的收益和成本1.1 收益 1.加速读写 2.降低后端负载1.2成本 1.数据不一致性 2.代码维护成本 3.开销大的复杂计算 4.加速请求响应2 缓存更新策略2.1 .LRU/LFU/FIFO算法剔除 场景:常用于缓存使用超过预设的最大值,对现有数据进行剔除。 一致性:算法...

2019-04-28 22:41:47 145

原创 Redis学习(一)之API的理解使用

1.全局命令 1. keys * 查看所有键 会遍历所有的键,线上禁止使用 2. dbsize 查看键总数 不会遍历所有键,直接获取内置键总数 3. exists key 检查键是否存在,1为存在,0位不存在 4. del key 删除键 返回删除个数,不存在的键返回0,支持删除多键 5. expire key seconds 支持添加键过期时间,超过时间...

2019-04-21 21:24:48 160

原创 Spring事务管理

1. 数据库知识点1.1 概念数据库管理系统一般采用重执行日志保证原子性,一致性和持久性和java程序采用对象锁进行线程同步类似,数据库管理系统采用数据库锁机制保证事务的隔离性,多个事务修改数据,只有持有锁的事务才可以。1.2 数据并发问题1.2.1 读数据脏读:A事务读取B未提交的更改数据,而B事务又选择进行撤回。不可重复度:一个事务范围内,两次相同的查询,返回...

2019-04-21 20:58:27 169

原创 Java实现文件打zip包,边打包边下载

简介传统文件打包方式为,服务器文件进行压缩,然后进行下载,会占用一定的服务器资源。以下代码实现了服务器文件打zip包,实现了边压缩打包边下载,针对的时zip包,本人因工作项目所写,亲测可用。@RequestMapping(value = "zip/export/{}")public void zipExport(HttpServletRequest request, HttpServlet...

2019-04-17 11:54:34 1079 1

原创 JavaWeb实现tar包边压缩边下载

简介:常见的文件打包是在服务器进行文件压缩打成tar包,然后再进行下载,最后还要删除掉临时的tar包,对于服务器来说会占用一定的资源。以下代码是本人工作时项目所用到的,实现服务器文件边压缩打包边下载。@RequestMapping(value = "tar/export/{}")public void tarExport(HttpServletRequest request, HttpS...

2019-04-17 07:11:20 368 1

原创 MQ学习总结(一) ActiveMQ

MQ学习总结 ActiveMQ1. 概念和引入1-1 消息2 . 消息协议2-1 XMPP协议2-2 Stomp协议2-3 AMQP协议3. ActiveMQ4. 结语1. 概念和引入1-1 消息即时消息通讯:RPC延迟消息通讯:消息队列发送者构造,接受者解析,遵循一定的格式,这就是消息协议消息是信息的载体建立在网络IO模型的基础上某一种消息通讯软...

2019-03-31 15:54:05 577

原创 排序算法之直接插入排序

直接插入排序:直接提取出一个元素,与前面的元素挨个进行比较,直到找到合适的位置,进行插入最好的时间复杂度为O(n),最差的为O(n^2)同样的时间复杂度,性能要比冒泡排序和选择排序的插入性要好public void insertionSort(int[] array){     int i, j;     for(i = 1;i           if

2017-07-15 16:53:38 284

原创 排序算法之简单选择排序

排序算法之简单选择排序

2017-07-14 22:21:41 275

原创 排序算法之优化版冒泡排序

优化版的冒泡排序加入了一个boolean标志位,若排序已经完成,即没有发生数据交换,则标志位为false,不必去遍历后面的数据,最小时间复杂度O(n),最大时间复杂度为O(n^2).     思路:这里的排序替换是从数组的最后一位开始,依次于前一位进行比较,比如数组长度为10.则是array[9]与array[8]比较,如果9的值大于8.交换,标志位置为true,然后是8与7比较,依次类推,当

2017-06-08 13:59:31 409

原创 TCP/UDP的简单相关基础知识点涉及聊天室的实现

关于TCP/UDP的一些基础区分和相关代码的实现

2017-02-10 12:23:22 835

原创 新手入门的I/O简单基础知识

关于新手初步了解I/O流方面的基础知识,用于复制电脑文件的一些代码

2017-02-09 21:42:14 494

原创 java面试基础知识#多线程

关于java面试中一些常见的多线程方面的基础知识点

2017-02-08 12:12:44 379

空空如也

空空如也

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

TA关注的人

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