自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程运行时通过JUC获取锁的小工具

/** * 可重入锁,synchronized和reentrantLock 都是可重入锁 * synchronized不需要手动解锁 异常或者执行完自动释放,reentrantLock需要手动解锁 * reentrantLock可以设置公平非公平并且可以获取锁的状态尝试获取锁并且可以打断 * 一个是JVM锁对象 一个是JUC的工具 底层采用的cas */ public class ReentralLoackDemp { private int count = 0; pri.

2020-06-05 16:52:53 157

原创 CAS机制学习

/** * 无锁优化 自旋 * CAS是CPU的原语支持。。。 * 无锁优化就是没有加锁 通过值的比较实现线程安全。 * cas(V, ExceptValue, NewValue) * 首先有一个内存空间这个内存空间用来存放实际的值。 * 整体流程就是相当于有一个篮子,篮子就相当于一块内存空间 然后篮子里面有一定数量的苹果 * 我去往里面放苹果,我期望篮子里面有多少个苹果 放的时候比较以及篮子里面实际的苹果数量是不是我期望的 * 如果是 则将我的数量给他 否则不更新数据 重新拿到一个新的.

2020-06-05 14:18:53 193

原创 volatile学习

/** * volatile 保证线程的可见性 禁止指令重排 * 线程可见性:在计算机中每个程序都是运行在自己的本地工作内容中的,同时计算机本身也有自己的主内存, * 每个程序需要将主内存中的信息拷贝一份数据到本地内存之中,使用完毕之后再写回给主内存。 * 因此在线程同步支持的过程中 线程与线程之间的数据是不可见的。 volatile保证了线程之间的可见性。 扩展--MSEI 缓存一致性原理 * * 指令重排:在正常的程序中程序一般都会去顺序从上.

2020-06-05 13:08:48 128

原创 多线程基础知识总结

1. 什么是线程: /** * 程序 进程 线程 协程 * 线程 : 简单的说就是一个程序里面不同的执行路径就是一个线程 */ public class WhatIsThread { //程序 进程 线程 协程 //线程 一个程序里面不同的执行路径 就是一个线程 private static class InnerThreadClass extends Thread{ @Override public void run() {

2020-06-05 11:39:29 571

原创 Java设计模式-建造者模式

/** * 需要建造生产的类 */ public class Parlour { //墙壁 private String wall; //电视 private String TV; //沙发 private String sofa; public String getWall() { return wall; } public void setWall(String wall) { this..

2020-06-01 18:43:37 108

原创 Java设计模式-工厂模式

工厂模式分类: 1. 简单工厂模式(静态工厂模式) 2. 工厂方法 3. 抽象工厂模式 1. /** * @author huzhongkang * @Title: ${file_name} * @date 2020/6/113:49 */ public interface Car { void run(); } public class Benz implements Car { @Override public void run() { ..

2020-06-01 14:42:21 109

原创 java设计模式--策略模式

/** * @author huzhongkang * @Title: ${file_name} * @date 2020/5/2918:24 */ public interface Calculator { /** * 统一的算账接口 * @param price 原始的price价钱 * @return */ BigDecimal account(BigDecimal price); } ...

2020-05-29 18:45:53 118

原创 java设计模式-单例模式

1. 单例模式 单例模式的写法比较多,只要掌握一种简单的线程安全即可。 设计模式本身就是一种思想没必须纠结有多少种写法显得多叼。 但是能多了解还是多了解,扩展一下 /** * @author huzhongkang * @Title: ${file_name} * @date 2020/5/2913:58 */ public class Singleton1 { //静态的单例实例 保证线程安全 通过jvm保证 因为static实例只有一个 属于类 //可以建...

2020-05-29 17:51:22 112

原创 Spring AOP 注解方式简单实现

/** * 当前类作为切面,用来记录方法执行的日志 */ @Aspect @Component public class LogUtil { /* * 通知执行的顺序 * 正常执行的顺序:Before->After->AfterReturn * 异常执行的顺序:Before=>After->AfterThrowing * */ @Before(value = "execution (* com.spring.stydy.aop.

2020-05-26 18:06:00 124

原创 JDK 动态代理简单实现

/** * @author huzhongkang * @Title: ${file_name} * @date 2020/5/269:52 */ public interface PersonDao { void save(); void delete(); } /** * @author huzhongkang * @Title: ${file_name} * @date 2020/5/269:54 */ public class PersonDaoImpl .

2020-05-26 11:11:06 156

原创 Spring IOC基本配置使用

/* Spring注入基本知识点: * 1、ApplicationContext是Spring容器提供的一个接口 获取Spring的Bean * 2、对象在IOC容器完成之后就已经生成初始化了 不需要再使用的时候再初始化 会默认调用一下对象的无参构造方法 * 3、对象生成的是默认的单例的, 可以通过作用域进行修改 * 4、默认是使用对象的setter方法给属性赋值的 使用的是方法名字后面的名称找 不是根据属性的名字去找。 * 5、根据id名字进行匹找,也可以根据类型进行匹配查找(不能有多个类型) * &l.

2020-05-25 16:56:48 155

原创 其他数据库

数据库面试题 面试题 什么时候使用索引查数据比全表扫描还更慢? 解答 B+树和B树的区别?为什么MySQL要使用B+索引?为什么不用二叉树? B树又称平衡多路二叉树; 区别?--B+树非叶子节点不保存数据,只在叶子节点保存数据;B树在叶子节点和非叶子节点都保存数据;从而导致如果使用B树,会增加磁盘IO次数,导致性能不如B+树; delete、truncate、dro...

2019-08-02 16:30:15 198

原创 ThreadLocal深度解析

数据库连接、Session管理 ThreadLocal-面试必问深度解析 【Java并发编程】深入分析ThreadLocal(八)

2019-08-02 16:23:32 133

原创 Maven基础

Maven 的坐标和依赖 坐标详解 依赖管理是 Maven 的一大功能,为了能够自动化地解析任何一个 Java 构件,Maven 就必须将它们唯一标识,这就是依赖管理的底层基础——坐标。Maven 的坐标是通过一些元素定义的,它们是 groupId、artifictId、version、packaging 和 classifier。先看一组坐标定义: <groupId>com....

2019-08-02 16:14:36 2086

转载 java源码分析Object的wait和notify

https://www.jianshu.com/p/f4454164c017

2019-08-02 16:10:24 203

原创 设计模式

设计模式写得好的文章导航 java 常用十种设计模式示例归纳 史上最全设计模式导学目录(完整版) 设计模式(创建型)之简单工厂模式(Simple Factory Pattern) 设计模式(创建型)之工厂方法模式(Factory Method Pattern) 设计模式(创建型)之抽象工厂模式(Abstract Factory Pattern) 设计模式(创建型)之单例模式(Single...

2019-08-02 16:06:42 204

原创 Redis面试

Redis面试题 ☀Redis是什么? Redis的全称是Remote Dictionary Server(远程字典服务器),是完全开源免费的,用C语言编写的,一种基于键值对(key-value)的高性能的分布式内存数据库。 与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)、Bitmaps(位...

2019-08-02 15:56:20 259

原创 多个线程顺序打印问题

多个线程顺序打印问题 三个线程分别打印A,B,C,要求这三个线程一起运行,打印n次,输出形如“ABCABCABC....”的字符串。 解法一:使用Lock public class PrintABCUsingLock { private int times; private int state; private Lock lock = new Reent...

2019-08-02 15:43:43 398

原创 程序员小灰灰专栏收集

漫画:如何将一个链表“逆序”? 漫画:如何实现抢红包算法? 漫画:什么是volatile关键字?(整合版) 漫画:什么是单例模式?(整合版) 漫画:什么是 CAS 机制? 漫画:什么是CAS机制?(进阶篇) 漫画:什么是协程? 漫画:深度优先遍历 和 广度优先遍历 漫画:什么是 “图”?(修订版) 漫画:什么是 HTTPS 协议? 漫画:什么是ConcurrentHash...

2019-08-02 14:57:21 609

原创 Java stack2

###SpringBoot的Statrer机制?

2019-08-02 14:35:15 114

原创 Java Stack 知识点收集 -- 阶段性总结 -- 暂存

1. 什么时候创建索引?索引的数据结构?复合索引的数据结构?(高频) 2.Spring事务的传播特性?以及如果内层事务出现异常回滚,外部事务如何处理? //--- 支持当前事务 int PROPAGATION_REQUIRED = 0; 如果当前存在事务,则加入当前事物;如果当前事务不存在,则新建一个事务; int PROPAGATION_SUPPORTS = 1; 如果当前存在事...

2019-08-02 11:51:55 94

空空如也

空空如也

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

TA关注的人

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