自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SSM---------@RequestMapping的原理

@RequestMapping的原理1、@RequestMapping注解所配置的内容会被保存到 HandlerMapping(处理器映射器)中,然后等待客户端的访问2.当拦截到请求时,DispatcherServlet会将拦截的请求的信息 与 HandlerMapping中保存的信息进行匹配,找到对应的处理器(处理器中包含控制器逻辑,处理器是对控制器的封装),然后HandlerMapp...

2019-09-18 20:24:13 1450

原创 设计模式-----七大设计指导原则

面向对象设计模式的七大设计原则:1、开放封闭原则2、单一职责原则3、接口隔离原则4、迪米特原则5、里式替换原则6、合成复用原则7、依赖倒置原则一、开放封闭原则1、核心概念:对拓展功能开放,对修改封闭2、开闭原则的核心思想是:面向抽象编程,可以提高系统软件的复用性3、具体的应用举例:当软件的需求发生变化的时候,尽量通过拓展的方式来实现新的功能的增加,而不是通过修改...

2019-09-17 20:12:45 277

原创 SSM---------SpringMVC处理流程

流程图:流程解析:1、客户端发起请求,DispatcherServlet拦截到请求2、DispatcherServlet会 找HandlerMapping来查找 URL对应的的处理器(所有的处理器在启动的时候都会注册)3、HandlerMapping 返回一个HandlerExecutionChaind对象(里面包含一个handler 和 多个拦截器)public class Handl...

2019-09-17 20:00:01 352 1

原创 并发编程---------ConcurrentHaspMap的实现原理(JDK1.7和JDK1.8区别)

ConcurrentHashMap 和 HaspMap比较:1 、HashMap是线程不安全的,多线程环境中的put方法容易引起死循环,CPU利用率暴增到100%2 、Hashtable是一个非常古老的类(都没有遵循驼峰命名)但它是一个线程安全的类,所有的操作都使用了synchronized,在整个哈希表上上了一把锁(相当于数据库中的表锁的概念),多线程的时候只有一个线程能够实现操作,其它线...

2019-09-17 19:28:22 239

原创 BlockingQueue原理解析

方法功能表功能抛出异常返回特殊值超时阻塞新增add(e)offer()offer(timeout)put(e)删除remove()poll()poll(timeout)take()查询element()peek()无无这些方法都使用了 ReentrantLock,所以BlockingQueue是线程安全的( add()方法不是 ...

2019-09-17 17:47:51 247

原创 PriorityQueue优先级队列 ----- 堆排序

特点优先级队列是无界的(默认容量为11:DEFAULT_INITIAL_CAPACITY = 11),最大可以达到 Integer.MAX_VALUE ,容量不够会使用grow(size)方法实现扩容线程不安全,对应的线程安全类:PriorityBlockingQueue 类不允许为 nullPriorityQueue默认的是维持一个小顶堆自定义的对象要实现 Comparator接口...

2019-09-17 17:11:43 243

原创 高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景

多线程的缘由在出现了进程之后,操作系统的性能得到了大大的提升。虽然进程的出现解决了操作系统的并发问题,但是人们仍然不满足,人们逐渐对实时性有了要求。使用多线程的理由之一是和进程相比,它是一种非常花销小,切换快,更”节俭”的多任务操作方式。在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种”昂贵”的多任务工作方式。而...

2019-09-07 13:35:32 231

原创 最全Java锁详解:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁

在Java并发场景中,会涉及到各种各样的锁,比如:高并发编程系列:4种常用Java线程锁的特点,性能比较、使用场景,这些锁有对应的种类:公平锁,乐观锁,悲观锁等等,这篇文章来详细介绍各种锁的分类:1、公平锁/非公平锁2、可重入锁3、独享锁/共享锁4、乐观锁/悲观锁5、分段锁6、自旋锁乐观锁 VS 悲观锁乐观锁与悲观锁是一种广义上的概念,体现了看待线程同步的...

2019-09-07 13:03:22 153

原创 高并发编程系列之IO模型(二)--------NIO教程

NIO和NIO的区别BIONIO面向的流的操作面向缓冲区阻塞IO非阻塞IO(能立即返回)无选择器NIO的三个重要核心1、Channel(通道)Channel通道,可以使用它实现数据的读取和写入,通道是双向的,可以双向同时读写(流是单项的,BIO中要输入流、输出流),这充分的利用了操作系统的全双工的支持,从而实现更高效率的传输数据。Channel的...

2019-09-07 10:57:38 208

原创 高并发编程系列之IO模型(一)--------BIO教程

同步 与 异步 的区别同步: 发送一个请求,必须等待返回,才能再发送下一个请求 ,能够避免死锁,数据脏读的发生异步: 发送一个请求,你不用等待返回,可以接着发送另一个请求,适合并发的场景举例: 烧开水,将水壶放在燃气灶上,你不能取干别的(只能在哪里老老实实的等着水烧开,这就是同步) 要是烧水期间,你取做别的,看看报纸,浇浇花,水烧开了,有一个信号通知你,这就是异步完成阻塞和非阻...

2019-09-06 23:31:58 348

原创 代理模式----静态代理、动态代理 、CGLIB代理

代理模式: 提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 简言之,代理模式就是设置一个中间代理来控制访问原目标对象,以达到增强原对象的功能和简化访问方式。1、静态代理 * 使用静态代理的目的: 在不改变原来的类的前提下,对这个类的一些功能实现增强效果静态代码的优点: 可以在不更...

2019-09-04 16:49:39 181

原创 设计模式--单例模式--三种实现方法---和单例模式的安全隐患

package singleton;1.饥饿单例模式的实现:优点: 饥饿单例,不用使用锁,使用的效率高,缺点: 类加载的时候就要初始化,导致程序启动初始化慢,同时可能后面用不到,但却一直 占着内存,造成浪费/** * @author : GONG ZHI QIANG * @data : 2019-08-31 , 14:27 * @user : SnaChat * @project...

2019-08-31 17:24:12 266

原创 实现一个自己的数据库连接池----利用工厂设计模式

1.抽象接口的实现/** 1. @author : GONG ZHI QIANG 2. @data : 2019-08-30 , 22:50 3. @user : SnaChat 4. @project: DesignPattern 5. @description : */public abstract class Pool { public String propert...

2019-08-31 14:12:29 712 1

原创 Java Test

欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体...

2019-08-30 19:08:23 286

空空如也

空空如也

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

TA关注的人

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