![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
申老皮
这个作者很懒,什么都没留下…
展开
-
RentrantLock源码剖析
RentrantLock源码剖析ReentrantLock是一个独占式的锁,支持重入.里面实现了公平锁与非公平锁;其中ReentrantLock支持可公平锁与非公平锁,最顶层的父类是AQS.获取锁阻塞释放全部都是通过AQS来实现.接下来详细说明这些是怎么实现的.Sync继承自AQSabstract void lock();抽象方法,让子类也就是两个公平和非公平类来实现.boolea...原创 2019-05-18 22:21:38 · 389 阅读 · 0 评论 -
AQS源码解析
AbstractQueueSynchronizer定义了一套多线程访问共享资源的同步框架首先维护了一个volatile state状态量 和 一个阻塞队列,是FIFO队列,队列使用链表实现.state的访问方式有三种getstate()setState()compareAndSetState()AQS 定义了两种资源共享状态,一种是独占(Exclusive 如ReentrantLoc...原创 2019-05-17 22:22:52 · 174 阅读 · 0 评论 -
JAVA注解使用
JAVA注解前言概述前言这两天在自己学习着写一个小型的web框架,有点像spring,但是有是轻量级的.里面用到的注解功能.但是对于自定义注解这块又不熟悉,所以专门学习了一波,做点笔记记下来.概述注解是自带的.jdk中本身就有很多内置注解,比如override等等.注解的功能其实就是为一些加了注解的类,方法等赋予一些特别的含义.java中有4中元注解@Target中的参数表示注解应该用在...原创 2019-05-22 17:20:53 · 210 阅读 · 0 评论 -
dubbo使用配置
dubbo配置dubbodubbo背景dubbo架构API方式Spring集成 xml方式基于注解的配置:provider使用Service注解暴露服务consumerdubbodubbo背景在如今设备配置已经到达极限的时候,则需要进行分布式进行处理,将一些应用功能分开管理,但是又必须得互相有沟通,可以通过简单的接口暴露和RPC引用远程服务,通过配置URL地址进行调用,通过F5等硬件进行负载...原创 2019-05-22 16:12:44 · 376 阅读 · 1 评论 -
HashMap源码解析
HashMapjava.util包下面的工具类,键值对存储数据.通过对键值计算hash值,来存储到对应的位置.jdk1.8中底层使用数组加链表实现.键值对通过一个内部类的Node节点来表示.采用链地址法解决hash冲突,如果一条链上的节点超过给定阈值会变为红黑树.默认为8.在hashmap中是可以存储空key和value的.如果为空,则位置为0.声明hashmap继承了AbstractM...原创 2019-05-21 20:36:45 · 126 阅读 · 0 评论 -
java正则表达式
正则表达式正则表达式是处理字符串的强大工具,它并不是java的特性.但是java有一套工具类提供了正则表达式的匹配功能.用途字符串匹配字符串查找字符串替换Java类java中正则表达式主要包括两个类:Pattern: 此对象是一个正则表达式的编译表示.此类没有共有的构造方法,只能通过静态编译方法来获得一个Pattern对象.比如Pattern.compile("\d"); ...原创 2019-05-15 21:01:55 · 134 阅读 · 0 评论 -
java 编译优化
java 编译优化java编译泛型擦除Integer. Double 自动装箱与拆箱foreach循环遍历变长参数int short 优化java编译java编译器为我们做了很多优化,比如在java中泛型并不是真正的泛型,在编译的时候会进行泛型擦除,使用的时候再进行类型转换.或者Integer自动装箱和拆箱.foreach循环遍历等等.泛型擦除在java中泛型并不是真正的泛型,因为有一个j...原创 2019-05-10 21:30:06 · 1058 阅读 · 6 评论 -
ThreadLocal实现原理
ThreadLocal简介ThreadLocal是java中将非线程安全变为线程安全的一个神器.通过为每一个线程保存一个线程本地变量来保证数据的安全性,通过set()和get()方法来使用. 因为每个线程都拥有变量的副本.不和其他线程变量交互,所以不会出现线程安全问题.所以这里有一个点就是ThreadLocal应用的场景应该是变量的访问是没有依赖关系的,每个线程只和自己的数据副本打交道.属性...原创 2019-05-20 22:17:33 · 697 阅读 · 0 评论 -
TimSort源码分析
TimSorttimsort是jdk自带的一种特别高效的排序算法,大致思想使用的是归并排序,但是内部细节做了许多的优化.在timsort中,主要是为待排序数组分为很多个run块,通过讲这些run块进行归并排序.最后实现总体排序.每个run块的大小为16-32大小.优化地方:当待排序数组长度小于32就使用二分排序算法分为多个run块,在通过把run块的起始位置和长度压入栈中,在进行合并....原创 2019-05-19 20:17:45 · 390 阅读 · 0 评论 -
JavaNio之Buffer
JavaNio之Buffer简介BufferBuffer属性以及相关操作.初始化:读写ByteBufferreset()方法总结简介Java NIO类在jdk中有了源生支持,实现了一套自己的NIO框架,当然了底层依然是系统调用.但是在NIO中必不可少的就是缓冲区,随后的Channel和Selector随后在介绍.Buffer这就是Buffer的大致继承体系,很多都没有罗列出来,因为主要讲...原创 2019-05-28 19:14:47 · 2597 阅读 · 0 评论