自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

unicorn_code的博客

Java路上的学习和分享

  • 博客(18)
  • 收藏
  • 关注

原创 Java自动拆箱装箱以及缓存

Java的基本数据类型Java的基本数据类型有8种整数:byte、short、int、long浮点数:float、double布尔:boolean字符:char他们对应的装箱类型如下:除了字符类型的装箱类型是Character以及int的装箱类型是Integer,其余的都是基本类型的首字母大写为什么需要装箱类型为了让基本类型也具有对象的特征,就出现了包装类型,它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作自动拆箱与装箱Intege

2020-08-02 17:24:46 174

原创 简单记录之SpringIOC初始化过程(二)——Bean的创建及循环依赖问题

本文描述的IOC基于注解的方式启动容器本文主要讲解refresh方法以及bean的创建过程,关于refresh执行前对于配置资源的读取加载可以看上一篇????简单记录之SpringIOC初始化过程(一)先贴上refresh()方法的代码: public void refresh() throws BeansException, IllegalStateException { //给容器refresh加锁,避免容器处在refresh阶段时,容器进行了初始化或者销毁的操作 synchronize

2020-07-30 22:55:09 158

原创 简单记录之SpringIOC初始化过程(一)

本文描述的IOC基于注解的方式启动容器配置资源的读取加载(register()方法)Spring容器初始化的时候关键就是refresh()方法,但在执行refresh方法之前,还要进行容器的配置资源的读取和加载,所以就会执行register()方法。通过注解的方式启动容器:AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(JavaConfig.class.

2020-07-28 23:15:51 206

原创 简单记录之Java集合源码解析(基于JDK1.8)

话不多说,先上图简单介绍Java集合可以分为两大类,一类是以Collection为根接口实现的,另一类就是以Map为根接口实现的,Collection是单列集合,就是元素是单一的值,而Map是双列集合,存储的元素是<key,value>键值对。OK,下面就来分析MapHashMap数组+链表(红黑树) 的存储结构扩容机制:数组的扩容是size大于阈值(容量x负载因子),数组扩容为原来的两倍,链表节点个数大于8转为红黑树关于添加元素的详细过程可以移步我的这篇文章????简单记录一下

2020-07-25 17:03:48 136

原创 ThreadLocal的内存泄露问题

关于

2020-07-24 12:29:10 121

转载 常用线程池解析与使用场景分析

常用线程池解析与使用场景分析

2020-07-20 23:22:36 84

原创 Java-ThreadLocal那些事儿

今天看了下ThreadLocal的源码,决定记录一下。ThreadLocalThreadLocal提供了线程内存储变量的能力,这些变量不同之处在于每一个线程读取的变量是对应的互相独立的。通过get和set方法就可以得到当前线程对应的值。 //set方法 public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = getMap(t); if (map

2020-07-20 04:02:40 95

原创 简单记录一下HashMap和ConcurrentHashMap

解析HashMap和ConcurrentHashMapHashMapjdk1.7以前的HashMapjdk1.8以后的HashMapConcurrentHashMapjdk1.7以前的ConcurrentHashMapjdk1.8以后的ConcurrentHashMapHashMapjdk1.7以前的HashMapjdk1.8以后的HashMapConcurrentHashMapjdk1.7以前的ConcurrentHashMapjdk1.8以后的ConcurrentHashMap...

2020-07-20 02:37:59 124

原创 高性能MySQL--锁相关

文章目录锁的分类从对数据操作的类型分(读/写)从对数据操作的粒度分表锁(偏读)行锁(偏写)特点事务相关select操作update与delete操作注意锁的分类从对数据操作的类型分(读/写)读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁从对数据操作的粒度分表锁读锁表锁(偏读)偏向MyISAM存储引擎,开销小,加锁快;无死锁;锁粒度大,发生锁冲突的概率最高,并发度低。MySQL的表级锁有两种模式:表

2020-07-05 22:24:38 63

转载 Java--伪共享问题

Java–伪共享问题

2020-07-05 20:13:57 94

原创 高性能MySQL--慢查询日志

慢查询日志可帮助定位可能存在的SQL语句,从而进行SQL语句层面的优化。例如,可以在MySQL启动时设置一个阈值,将运行时间超过该值的SQL语句都记录到日志文件中。开启在默认情况下,MySQL并不启动慢查询日志,需要手动将这个给参数设置为ON:查看:show variables like ''slow_query_log;开启:set global slow_query_log=1;注意:使用 set global slow_query_log=1; 开启了慢查询日志只对当前数据库生效,如果M

2020-07-03 20:46:38 84

原创 高性能MySQL--索引及其优化

文章目录

2020-07-02 23:11:50 189

原创 Java并发-Java内存模型(重排序、可见性问题)

文章目录Java内存模型Java内存模型基础并发编程模型的两个关键问题Java内存模型的抽象结构重排序happens-before简介重排序as-if-serial语义内存可见性内存屏障volatile关键字禁止重排序synchronized关键字final关键字Java内存模型Java内存模型基础并发编程模型的两个关键问题在并发编程中,需要处理两个关键的问题:线程之间如何通信及线程间之间如何同步(这里的线程是指并发执行的活动体)。通信是指线程之间以何种机制来交换信息。Java内存模型的抽象结构

2020-07-02 23:11:12 109

原创 Java并发-synchronized与wait和notify

synchronized与wait和notifywait和notify/notifyAll基本使用synchronized同步代码块同步方法(静态与非静态)synchronized、wait、notify/notifyAll的底层实现wait和notify/notifyAll基本使用在调用wai方法时,线程必须要持有要对象的锁,当调用wai方法后,线程就会释放掉该对象的锁(monitor)。在调用Thread类的sleep方法时,线程是不会释放掉对象的锁的。当调用wait时,首先需要确保调用了wa

2020-07-02 23:10:46 385

原创 Java并发--锁升级、锁粗化、锁消除

文章目录锁消除锁粗化锁升级锁消除锁粗化锁升级

2020-07-02 23:09:37 469

原创 Java并发-CAS操作(关于可见性的思考)

CASCAS即CompareAndSwap,比较并交换,是一种保证原子性的操作。有三个操作数,分别是内存地址,旧的预期值,和要替换的新值。通过比较内存中的值是否和预期值相同,相同则将内存中的值和新值交换。CAS存在的问题ABA。根据具体场景看是否会影响执行的结果。自旋长时间消耗cpu资源只能对一个共享变量操作CAS可见性这个其实是我想记录下来的。通过阅读《Java并发编程之美》,在看到原子操作这里,存在疑问,cas能够做到内存可见性吗?阅读了一些博客看到有的说能保证,但还是心存疑惑,于是

2020-06-23 00:23:07 1331 2

原创 ActiveMQ学习(二)

文章目录什么是JMS(Java Message Service)JMS组成的四大元素JMS providerJMS producerJMS consumerJMS message(由三部分组成,消息头、消息体、消息属性)JMS的可靠性一、持久化queue的持久化topic的持久化二、事务producerconsumer:三、签收非事务签收事务签收总结JMS的点对点总结JMS的发布订阅总结按照配置文...

2019-11-04 15:32:15 432

原创 ActiveMQ学习(一)

文章目录为什么要引入MQ为什么要引入MQ

2019-11-02 20:35:07 151

空空如也

空空如也

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

TA关注的人

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