自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 问答 (2)
  • 收藏
  • 关注

原创 【Java并发】Volatile超详细全解!看完让你像了解自己一样了解它

转载请注明出处: https://blog.csdn.net/Fury97/article/details/81462888其实写这篇文章之前犹豫了很久要不要写,感觉Volatile这个东西吧很熟悉,概念也基本都了解,但是有时候还是有点稀里糊涂。面试时问的如果比较刁钻,我还是没办法很好的回答出来,说明还是没有深入理解它。我决定在这里,好好的将Volatile这个小朋友总结一下。目录...

2018-08-06 23:34:20 686

原创 【Java并发】等待/通知机制详解

转载请注明出处https://blog.csdn.net/fury97/article/details/81336047目录等待/通知机制同步队列示例举例说明应用场景等待/通知的经典范式Thread.join() 等待/通知机制当一个线程修改了一个对象的值,而另一个线程感知到了变化,然后进行相应的操作,整个过程开始于一个线程,最终执行的又是另一个线程。 ...

2018-08-01 18:40:02 463

原创 【Java并发】偏向锁、轻量级锁、重量级锁的区别

Synchronized一直是多线程并发编程中的重要角色,但是在Java1.6中,为了减少获得锁带来的性能消耗,引入了偏向锁和轻量级锁。目录锁的状态:偏向锁轻量级锁重量级锁偏向锁、轻量级锁、重量级锁应用场景锁的状态:无锁状态 偏向锁状态 轻量级锁状态 重量级锁状态四种状态会随着竞争的情况逐渐升级,而且是不可逆的过程,即不可降级。要注意的是,这四种状态都...

2018-07-30 17:37:57 657 2

原创 【Java集合】ArrayList自动扩容机制

目录扩充容量的方法ensureCapacity。Arrays.copyof()方法总结:  扩充容量的方法ensureCapacity。ArrayList在每次增加元素(可能是1个,也可能是一组)时,都要调用该方法来确保足够的容量。当容量不足以容纳当前的元素个数时,就设置新的容量为旧的容量的1.5倍加1,如果设置后的新容量还不够,则直接新容量设置为传入的参数(也就是所需的容...

2018-07-17 15:04:39 1125

原创 JIRA software部署流程总结

JIRA software部署流程总结目录JIRA software部署流程总结1、选择JIRA版本和依赖的软件版本。2、服务器端硬件要求3、安装并配置postgreSQL4、将JIRA连接到postgreSQL4、JIRA安装5、JIRA配置1、选择JIRA版本和依赖的软件版本。JIRA这次部署选择的最新版本8.0,数据库选择的Postgre9.6,JDK...

2019-03-07 11:24:16 1446

转载 MySQL 报 [ERROR] Can't start server: can't check PID filepath: No such file or directory

或者[ERROR] Can’t start server: can’t create PID filepath: No such file or directory错误原因一般是由于服务器强制关机导致pid文件丢失。解决办法在/etc/my.cnf 中查看pid-file的位置pid-file=/var/run/mysql/mysqld.pid1创建对应的目录并修改权限m...

2019-02-28 12:28:25 3994 3

原创 HashMap中的全部Value转入List中的方法

今天工作中需要使用HashMap来排重,然后将最终Value集插入ListList.addAll()方法不支持HashMap,所以只好自己coding 解决办法Set<Map.Entry<String,Department>> entry =departmentHashMap.entrySet(); for(Map.Entry<Str...

2019-01-18 14:17:03 5429

转载 Linux IO模式(BIO、NIO、IO多路复用、异步IO)及 select、poll、epoll详解

转载自:https://segmentfault.com/a/1190000003063859 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。本文讨论的背景是Linux环境下的network IO。一 概念说明在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进...

2018-10-13 20:21:02 950

转载 TCP控制拥塞的四种算法:慢开始,拥塞避免,快重传,快恢复

我们在开始假定:1:数据是单方向传递,另一个窗口只发送确认. 2:接收方的缓存足够大,因此发送方的大小的大小由网络的拥塞程度来决定.一:慢开始算法和拥塞避免算法发送方会维持一个拥塞窗口,刚开始的拥塞窗口和发送窗口相等,一般开始均设置1,然后我们每收到一个确认,就让拥塞窗口大小变为原来的两倍,接着发送分组也是原来的两倍,以此类推,当窗口值等于16(慢开始门限),然后我们开始采用”...

2018-08-30 10:28:18 9454

转载 TCP三次握手与四次挥手

背景描述通过上一篇中网络模型中的IP层的介绍,我们知道网络层,可以实现两个主机之间的通信。但是这并不具体,因为,真正进行通信的实体是在主机中的进程,是一个主机中的一个进程与另外一个主机中的一个进程在交换数据。IP协议虽然能把数据报文送到目的主机,但是并没有交付给主机的具体应用进程。而端到端的通信才应该是应用进程之间的通信。UDP,在传送数据前不需要先建立连接,远地的主机在收到UDP报文后...

2018-08-24 11:51:43 264 1

转载 数据库中的索引详解

说白了,索引问题就是一个查找问题。。。 数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。为表设置索引要付出代价的:一是增加了数据库的存储空间,...

2018-08-22 21:41:45 296

原创 MySQL几种常见存储引擎详解

存储引擎其实就是如何实现存储数据,如何为存储的数据建立索引以及如何更新,查询数据等技术实现的方法。本文我们来详细探讨下MySQL中的几个存储引擎(MyISAM、InnoDB、archive、MERGE)的相关知识目录 存储引擎的介绍Mysql中的存储引擎MyISAMInnoDBmemory(heap)MERGE 存储引擎的介绍关系型数据库表是用来存储和组织信...

2018-08-22 12:15:40 271

原创 数据库主从复制与读写分离原理介绍

在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的。无论是在安全性、高可用性还是高并发等各个方面都是完全不能满足实际需求的。因此,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。目录主从同步原理图 mysq支持的复制类型 复制的工作过程 mysql读写分离原理主从同步原理图 mysq支持的复制类型1) 基于...

2018-08-22 11:09:13 2537

转载 MySQL 中的行级锁、表级锁和页级锁

在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足。在数据库的锁机制中,咱们介绍过在 DBMS 中,可以按照锁的粒度把数据库锁分为行级锁(InnoDB 引擎)、表级锁(MyISAM 引擎)和页级锁(BDB 引擎)。行级锁行级锁是 MySQL 中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突...

2018-08-18 16:20:31 413

转载 数据库并发机制和事务的隔离级别详解

(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/64444896冷血之心的博客)本文将从以下4个方面来展开:(1)事务的4大特性: 原子性 一致性 隔离性 持久性 (2)数据库并发操作产生的问题: 丢失更新 脏读 不可重复读 幻读 (3)数据库的锁机制: 共享锁 排他锁 更新锁悲...

2018-08-18 16:08:55 240

原创 JAVA类加载机制详细介绍

目录 类的生命周期 类加载的过程阶段1:加载阶段2:验证阶段3:准备阶段4:解析阶段5:初始化方法的几个注意事项()>类的生命周期  类加载的过程阶段1:加载加载是类加载的第一个阶段,需要完成三件事情:通过一个类的全限定名来获取定义该类的二进制字节流。 将这个字节流的表现的“静态存储结构”转化为方法区的运行时数据结构。 在内...

2018-08-12 16:20:47 275

原创 Java垃圾收集算法与垃圾回收器全解

目录垃圾回收判定算法判定算法一:引用计数算法判定算法二:可达性分析算法可作为GC Roots的对象Java中的引用类型方法区的回收垃圾回收算法回收算法一:标记——清除算法回收算法二:复制算法传统复制算法变种复制算法回收算法三:标记——整理算法垃圾回收器回收器一:Serial收集器回收器二:ParNew收集器回收器三:Parallel ...

2018-08-10 14:40:42 526

原创 【Java并发】Thread类中的start()和run()方法的区别

目录 概念解释示例 概念start()方法被用来启动新创建的线程,而且start()内部调用了run()方法,这和直接调用run()方法的效果不一样。当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动,start()方法才会启动新线程。解释假设我们定义了一个public class test implements Runnable{ ...

2018-08-05 17:43:52 445

原创 【Java并发】理解ConcurrentHashMap实现原理

ConcurrentHashMap是线程安全且高效率的HashMap,本文我们将研究一下该容器的具体实现。目录为什么要使用ConcurrentHashMapConcurrentHashMap实现JDK1.5中ConcurrentHashMap的数据结构如图get方法put方法JDK1.8中 ConcurrentHashMap的数据结构如图put方法get...

2018-08-03 14:59:54 320

原创 【Java并发】重入锁ReentrankLock解析

转载请注明出处https://blog.csdn.net/Fury97/article/details/81367900 目录重入锁为什么需要重入锁重入锁有哪些ReentrankLock如何实现重入公平锁与不公平锁ReentrankLock中公平锁的实现方法公平锁和非公平锁的优缺点重入锁顾名思义,就是可以支持重进入的锁,它表示该锁能够支持一个线程对资源的...

2018-08-02 22:18:35 1713

转载 【Java并发】happens-before介绍

面试官:讲讲happens-beforehappens-before是判断数据是否存在竞争、线程是否安全的重要依据JMM的自我介绍Hello 大家好,我原名叫Java Memory Model(Java 内存模型),大家都叫我JMM,简洁又好听,我挺喜欢。并发编程这块,没有我可是不行的,我要解决的问题就是一个线程对共享变量的写入何时对另一个线程可见比如一个线程给 变量 a 赋值...

2018-07-31 16:36:23 273

转载 Java对象初始化详解

Java对象初始化详解在Java中,一个对象在可以被使用之前必须要被正确地初始化,这一点是Java规范规定的。本文试图对Java如何执行对象的初始化做一个详细深入地介绍(与对象初始化相同,类在被加载之后也是需要初始化的,本文在最后也会对类的初始化进行介绍,相对于对象初始化来说,类的初始化要相对简单一些)。 1.Java对象何时被初始化 Java对象在其被创建时初始化,在Java代码中,有两种...

2018-07-26 18:01:42 656

转载 Java中的静态初始化和非静态初始化

1. Java中的初始化Java与C++的一个不同之处在于,Java不仅有构造函数,还有一个“初始化块”(Initialization Block)的概念。Java中的初始化块在创建Java对象时隐式执行,并且是在构造函数之前执行。2. 静态初始化// 定义static { ...}静态初始化块执行的优先级高于非静态初始化块,在对象装载到JVM中时执行一次,仅能初始化...

2018-07-24 17:41:43 666

原创 【剑指offer解题笔记】斐波那契数列与跳台阶问题与矩形覆盖问题

目录斐波那契数列思路分析: 跳台阶问题思路分析: 变态跳台阶思路分析:矩形覆盖问题思路分析: 斐波那契数列现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。思路分析:斐波那契数列,1,1,2,3,5,8.....,从第三项开始,每一项的值是前两项之和。可以得出:f(n) = f(n-1) + f(n-2),...

2018-07-24 14:44:15 267

转载 浅谈Spring IOC的实现原理

目录 IoC与DIIOC容器的技术剖析反射反射机制的作用反射机制的优缺点反射与工厂模式实现IOCIoC与DI  首先想说说IoC(Inversion of Control,控制倒转)。这是spring的核心,贯穿始终。所谓IoC,对于spring框架来说,就是由spring来负责控制对象的生命周期和对象间的关系。这是什么意思呢,举个简单的例子,我们是如何找女朋友...

2018-07-23 14:40:22 450

转载 【Java并发】浅谈Java内存区域与内存模型

目录理解Java内存区域与Java内存模型Java内存区域栈、堆、方法区举例说明:Java内存模型概述JMM存在的必要性原子性理解指令重排可见性JMM提供的解决方案JMM中的happens-before 原则有序性 理解Java内存区域与Java内存模型Java内存区域栈、堆、方法区 JAVA的JVM的内存可分为3个区:堆...

2018-07-18 15:20:30 511

转载 深入理解LinkedList

LinkedList简介    LinkedList是基于双向循环链表(从源码中可以很容易看出)实现的,除了可以当做链表来操作外,它还可以当做栈、队列和双端队列来使用。    LinkedList同样是非线程安全的,只在单线程下适合使用。    LinkedList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了Cloneable接口,能被克隆。(源...

2018-07-18 09:46:52 220

转载 HashTable与HashMap的区别

目录 HashTable与HashMap继承结构的区别HashMap支持NULL值,HashTable不支持HashTable与HashMap在存储结构和解决冲突的方法上都是相同的HashTable是线程安全的,HashMap不是  HashTable已经被淘汰了,不要在代码中再使用它。HashTable与HashMap继承结构的区别从图中可以看出,两个类的继承...

2018-07-17 16:45:42 209

转载 【源码分析】深入理解HashMap 学习手记

本文基于JDK1.6 HashMap简介    HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长。    HashMap是非线程安全的,只是用于单线程环境下,多线程环境下可以采用concurrent并发包下的concurrentHashMap。    HashMap 实现了Serial...

2018-07-17 11:18:59 311

空空如也

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

TA关注的人

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