
理论
文章平均质量分 92
我还年轻我很平凡
想成为一个平凡的人结果发现自己就是一个平凡的人。
展开
-
死锁的产生和解决
死锁死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力的作用,他们都将无法推进下去。此时称系统处于死锁状态或者说系统产生了死锁,这些永远相互等待的进程称为死锁进程;集合中的每一个进程都在等待只能由本集合的其他进程才能引发的事件,那么该组进程是死锁的;例如:线程A锁住了锁1并等待锁2的释放,而线程B锁住了锁2并等待锁1的释放,这样两个线程就产...原创 2019-10-11 00:10:41 · 249 阅读 · 0 评论 -
一文读懂Spring IOC & DI & AOP & MVC & BOOT
简介作为一个Java的大家族,Spring是Java开发中应用最广泛最成熟的框架。在Spring的官方文档中,Spring的组件包括:1.Spring IOC(控制反转)Ioc (Inversion of Control),即“控制反转”它不是什么技术,而是一个思想。IOC意味着你将设计好的对象交给容器来控制,而不是像以前那样在对象的内部进行控制,举个简单的例子:当有一个类A,一个类B,...原创 2019-10-09 18:37:21 · 383 阅读 · 0 评论 -
详解ConcurrentHashMap(带源码)
1.继承关系public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable源码所示,ConcurrentHashMap继承字AbstarctMap,并且实现了ConcurrentMap和Serializable接...原创 2019-10-05 21:55:29 · 142 阅读 · 0 评论 -
五种IO模型
在网络编程中,用户启动的应用程序都是以进程的形式存在,而无论对于网络数据还是磁盘上的数据,都以二进制的流方式传递,必须由内核把数据复制到进程所在的内存空间才能访问。如上图所示,一个客户端的HTTP请求发出后,先通过内核找到硬盘或者网络上的资源,加载到内核空间的缓冲区中,在通过内核复制回显到网页上,显示出用户所需要的HTML网页。在此期间进程实际上是阻塞的,在客户端没有得到所需要的数据之前进程会...原创 2019-10-04 16:40:19 · 129 阅读 · 0 评论 -
Java中七大垃圾回收器
在Java中,垃圾回收是JVM最常见的工作,也是保证系统能稳定运行的保障之一,常见的垃圾回收算法有两种:分代回收和分区回收,他们各有优缺。当然回收垃圾不可能空手套白狼,所以下面就介绍一下七种垃圾回收器:下图向我们展示了JDK1.8之后,垃圾回收器的使用场景:新生代年老代SerialCMSParNewParallelOldParallelSacvengeSe...原创 2019-09-29 23:56:14 · 3225 阅读 · 0 评论 -
进程间的通信
进程通信进程通信指的是进程间的数据传输。进程通信根据交换信息量的多少和效率的高低,分为低级通信(只能传递状态或整数值)和高级通信(提高信号通过的效率,传递大量数据,减轻程序编制的复杂度),其中高级进程的通信分为三种:共享内存模式消息传递模式共享文件模式所以进程共享的方式可分为以下五种:1.管道管道一般是指两个不同的进程之间的通信。当一个进程创建管道,并且调用fork创建自己的子进...原创 2019-09-27 12:00:38 · 418 阅读 · 0 评论 -
Spring的声明式事务
1.什么是事务?事务就是把一系列的操作当成一个整体单元来处理,这些动作要么全部成功,要么全部失败。将这一系列的操作当成原子性动作去执行。2.事务的属性(ACID)原子性(Automicity)事务是一个原子性的操作,有一系列的动作组成,要么成功要么失败,保证数据的完整性;若其中有一个事务出现失败情况,所有事务都将会回退到事务操作之前的状态;一致性(Consistency)事务不...原创 2019-09-22 23:59:57 · 160 阅读 · 0 评论 -
Http 1.0 Http 1.1 Http 2.0 Https
虽然本人是个程序猿,但是在好几场面试的时候面试官都问到了HTTP协议,由于对网络这方面不太熟悉,所以每次都是灰头土脸的出来,现在就总结一下HTTP协议,也为自己加深理解:1.HTTP协议1.1 什么是HTTP协议?HTTP(超文本传输协议),它是一个应用层协议,基于TCP/IP通信协议;常见的协议分层:应用层协议:HTTP FTP DNS SMTP POP3 telent传输层协议...原创 2019-09-22 23:13:23 · 241 阅读 · 0 评论 -
volatile关键字的作用
Java提供了一种稍弱的同步机制,即volatile变量,用来确保变量的更新操作能通知到其他线程。volatile保证了数据的可见性,禁止重排序,volatile变量不会被缓存到寄存器或者对其他处理器不可见的地方,因此在读取volatile变量的时候总会返回写入的新值。可见性当一个线程修改了变量的值,新的值对于其他线程可见。volatile变量不允许线程直接修改内存,所以对每个线程都是可见的...原创 2019-09-19 21:53:08 · 173 阅读 · 0 评论 -
线程上下文的切换
线程上下文的切换巧妙的利用了时间片轮转的方式,CPU给每个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一任务的状态后,继续服务下一个任务;线程状态的保存及其再加载,就是线程的上下文切换。时间片轮询保证CPU的利用率:对于线程切换的几个关键词的解释:进程进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程...原创 2019-09-19 11:45:38 · 431 阅读 · 0 评论 -
mysql和redis的数据一致性问题
在现在的高并发环境下,单单使用mysql用来存储数据已经不太现实了,需要用redis做为缓存,用户在访问数据的时候先查找缓存中是否存在,若存在则直接读缓存,不存在则读数据库然后将值写入缓存。读取缓存步骤一般没有什么问题,但是当更新数据的时候就会初夏如下问题:假设一个数据库中现在有100台ipad,需要进行秒杀业务,刚开始数据库中为100,redis中也是100:问题一如果先删缓存Red...原创 2019-09-19 01:05:19 · 677 阅读 · 0 评论 -
Java中常见的锁及其优化
常见锁作为并发编程的一部分,锁机制是必不可少的,常见的锁有以下几种:乐观锁、悲观锁、自旋锁、同步锁、递归锁、重量级锁、轻量级锁、偏向锁、分段锁,下面就来一一介绍一下这些锁:1.乐观锁乐观锁是一种乐观思想,它主要用在读多写少的场景。它认为别的线程在拿数据的时候只负责拿,并不会对数据进行改变,所以不会上锁。但是它在更新的时候会判断一下在此期间别人有没有对数据进行更新,采取先时先读当前的版本号,...原创 2019-09-18 23:07:03 · 381 阅读 · 0 评论 -
线程的生命周期和终止条件
在Java并发设计中,多线程是一个不可或缺的点。那么下面我们就来看一下线程的生命周期线程的生命周期线程的被创建启动之后并不会直接就进入执行状态,而是要经过以下5中状态:新建(New)——>就绪(Runnable)——>运行(Running)——>阻塞(Blocking)——>死亡(Dead)需要注意的是当线程启动之后CPU并不是在一个线程上一直执行下去,而是通过分片...原创 2019-09-17 15:00:57 · 583 阅读 · 0 评论 -
线程池工作流程及线程复用原理
Java常用的线程池1.线程池的作用线程池的作用就是限制运行线程的数量;创建一个符合需求的线程池,可以有效的提高系统运行的效率;利用同步队列控制线程的执行与销毁;为什么使用线程池会提高效率?1.减少了创建和销毁线程的次数,每个工作线程都有可能被重复利用;2.根据系统的承载能力,调整线程池中的线程数目,避免开启太多线程;需要注意的是:Java里的线程池的顶级接口是Executor...原创 2019-08-28 18:58:39 · 2777 阅读 · 0 评论 -
Java的集合框架(Collection)
简介Collection是层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。JDK 不提供此接口的任何直接 实现:它提供更具体的子接口(如 Set 和 List)实现。此接口通常用来传递 collection,并在需要最大普...原创 2019-08-16 16:59:13 · 220 阅读 · 0 评论 -
Java中的类加载和双亲委派原则
Java的类加载机制1.类加载的过程一般类的加载过程如上图所示:①加载(Loading)加载是指将类的class文件读到内存中,并为其创建一个java.lang.Class对象(每个类都有其独一无二的.Class对象),类加载由JVM中的类加载器完成,且其加载一般符合"双亲委派原则",(下文会简单的介绍类加载器和双亲委派原则,不要担心),除此之外,还可以自定义类加载器对类进行初始化;通...原创 2019-08-12 18:46:36 · 1687 阅读 · 0 评论