![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文太橙子
这个作者很懒,什么都没留下…
展开
-
Java线程池ThreadPoolExecutor(上)--- 理论
ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, RejectedExecutionHandler handler) corePoolSize: 线程池维护线程的最少数量maximumPoolSize:线程池维护线程的最大数量keepAliveTime: 线程池维护线程所允许的空闲时间unit: 线程池维护线转载 2021-04-06 23:54:24 · 101 阅读 · 0 评论 -
事务注解 @Transactional 失效的3种场景及解决办法
事务注解 @Transactional 失效的3种场景及解决办法1.第一种 Transactional注解标注方法修饰符为非public时,@Transactional注解将会不起作用。2.在类内部调用调用类内部@Transactional标注的方法。这种情况下也会导致事务不开启。3.事务方法内部捕捉了异常,没有抛出新的异常,导致事务操作不会进行回滚。...原创 2021-04-06 23:41:23 · 128 阅读 · 0 评论 -
SpringBoot事务的七种传播行为
看完就明白_spring事务的7种传播行为原创 2021-04-06 23:07:58 · 224 阅读 · 0 评论 -
SpringBoot中@EventListener注解的使用
SpringBoot中@EventListener注解的使用原创 2021-04-01 20:37:02 · 383 阅读 · 0 评论 -
lambda filter Function.apply
private static <T> Predicate<T> distinctByKey(Function<? super T, Object> keyExtractor) { Map<Object, Boolean> seen = Maps.newConcurrentMap();// return new Predicate<T>() {// @Override// ...原创 2021-03-31 20:56:27 · 161 阅读 · 0 评论 -
Guava:RateLimiter类学习
Guava官方文档中文版-RateLimiter类Class RateLimiter官方文档RateLimiter–CSDN原创 2021-03-31 14:58:59 · 63 阅读 · 0 评论 -
springboot的事务Transactional
Spring @Transactional原理及使用springboot事务处理之Transactional(第2集)1.SpringBoot开启事务后,默认只对runTimeException执行回滚(如1除以0:1/0),或者Error;对checkException不执行回滚(要显示声明的异常)要对所有的异常都回滚,需要声明Transactional(rollbackFor = Throwable.class)或者Transactional(rollbackFor = Exceptio原创 2021-03-29 22:29:41 · 533 阅读 · 1 评论 -
jvm调优CPU打满,full gc频繁
Java应用CPU打满故障处理原创 2021-03-03 23:05:11 · 394 阅读 · 1 评论 -
生产者消费者模式-阻塞队列【转】
原创 2021-02-18 13:04:57 · 76 阅读 · 0 评论 -
RabbitMQ总结
Springboot 整合RabbitMq ,用心看完这一篇就够了RabbitMQ消息队列之 RabbitMQB站讲的最好的RabbitMq经典课程生产者:消费者:生产者可以关连接但是消费者不要关,因为消费者要保持连接监听队列:以下为生产者关闭连接:工作模式:发布订阅模式可以实现工作队列模式的功能,多个消费者监听一个队列即可整合springboot:生产方代码使用rabbitTemplate就可以完成:消费方代码:...原创 2021-02-16 23:00:30 · 118 阅读 · 0 评论 -
单例模式
参考文章:如何正确地写出单例模式懒汉式双重校验锁public class Singleton { private volatile static Singleton instance; //声明成 volatile private Singleton (){} public static Singleton getSingleton() { if (instance == null) {原创 2021-02-06 22:43:04 · 55 阅读 · 0 评论 -
关于bitmap,布隆过滤器【转】
关于bitmap,布隆过滤器原创 2021-01-29 23:49:51 · 87 阅读 · 0 评论 -
JVM相关---看过的比较好的文章整理
图解Java 垃圾回收机制JVM 内存模型概述JVM原理最全、清晰、通俗讲解,五天40小时吐血整理jdk7、8、9默认垃圾回收器Jvm垃圾回收器(终结篇)Java类加载机制面试还不懂JVM,看马士兵老师这个JVM合集就够了——马士兵2020520最新JVM合集史上最全JVM面试进阶合集建议收藏丨马士兵亲授:JVM调优实战丨Jvm垃圾回收原理丨垃圾回收算法丨PB级大数据项目实战...原创 2021-01-29 22:37:17 · 94 阅读 · 0 评论 -
看过的比较好的文章整理(二杂)
Java 动态代理详解equals 和 == 的区别红黑树和AVL的性能对比:查找性能AVL强于红黑树,因为AVL更平衡;插入,删除红黑树优于AVL树,由于红黑树牺牲了部分平衡性,以换取删除/插入操作时少量的旋转次数;如果你的业务中查找远远多于插入、删除,那选AVL树; 如果查找、插入、删除频率差不多,那么选择红黑树。DelayQueue详解...原创 2021-01-29 22:26:16 · 72 阅读 · 0 评论 -
多线程相关比较好的文章整理(synchronized原理,锁升级,对象头,lock原理,hashmap,concurrenthashmap)
java 偏向锁、轻量级锁及重量级锁synchronized原理Java的对象头和对象组成详解如何优雅的关闭线程池Java 动态代理详解equals 和 == 的区别红黑树和AVL的性能对比:查找性能AVL强于红黑树,因为AVL更平衡;插入,删除红黑树优于AVL树,由于红黑树牺牲了部分平衡性,以换取删除/插入操作时少量的旋转次数;如果你的业务中查找远远多于插入、删除,那选AVL树; 如果查找、插入、删除频率差不多,那么选择红黑树。...原创 2021-01-29 17:10:13 · 79 阅读 · 0 评论 -
深拷贝浅拷贝
浅拷贝和深拷贝答:Java中的对象拷贝(Object Copy)指的是将一个对象的所有属性(成员变量)拷贝到另一个有着相同类类型的对象中去。(1)浅拷贝①对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。因为是两份不同的数据,所以对其中一个对象的该成员变量值进行修改,不会影响另一个对象拷贝得到的数据。②对于数据类型是引用数据类型的成员变量,比如说成员变量是某个数组、某个类的对象等,那么浅拷贝会进行引用传递,也就是只是将该成员变量的引用值(内存地址)复制原创 2021-01-20 20:32:45 · 165 阅读 · 0 评论 -
zuul
16.Spring-Cloud-Zuul之请求过滤分布式04-Spring Cloud Zuul 二 Zuul拦截器原创 2021-01-18 21:18:51 · 59 阅读 · 0 评论 -
SpringCloud系列——SSO 单点登录【转】
SpringCloud系列——SSO 单点登录原创 2021-01-18 21:01:53 · 374 阅读 · 0 评论 -
RocketMQ
消息队列与RocketMq核心机制详解RocketMQ事务消息学习及刨坑过程面试官再问我如何保证 RocketMQ 不丢失消息,这回我笑了!跟我学RocketMQ之消息幂等原创 2021-01-15 13:36:45 · 73 阅读 · 0 评论 -
分布式事务CAP相关文章
看完下面这些文字,保证你对CAP能理解的特别通透!!!原创 2021-01-14 22:27:03 · 70 阅读 · 0 评论 -
Zookeeper文章
ZooKeeper 常用操作API详解实例详解ZooKeeper ZAB协议、分布式锁与领导选举原创 2021-01-12 23:11:14 · 86 阅读 · 0 评论 -
Guava Cache有用的文章
Guava Cache用法介绍Guava cache使用总结原创 2021-01-11 17:10:52 · 82 阅读 · 0 评论 -
Redis整理以及总结
Redis哨兵模式(sentinel)学习总结及部署记录(主从复制、读写分离、主从切换)Redis哨兵(Sentinel)模式Redis面试汇总Redis之Redis事务Redis的三个客户端框架比较:Jedis,Redisson,Lettuceredis-发布与订阅java实现 redis的发布订阅(简单易懂)以Redis来谈消息队列BitMap的原理和实现Redis HyperLogLogHyperLogLog使用与应用场景zt坑人无数的Redis面试题走近源码:神奇的Hyper原创 2021-01-10 19:38:03 · 110 阅读 · 0 评论 -
分布式锁
分布式锁原理拜托,面试请不要再问我Redis分布式锁的实现原理【石杉的架构笔记】redisson分布式锁总结:加锁机制:lua脚本(原子性)传1、客户端的hash值,2、锁名,3、超时时间a、锁互斥机制:判断锁名相同,判断客户端不是同一个,返回锁剩余时间,请求锁的客户端会循环尝试b、watch dog自动延期机制:如果超时后还想占有锁,就要用看门狗定时监测延期c、可重入加锁:判断锁名相同,判断客户端是同一个,hset的val就加1d、释放锁:对加锁次数(hset的val)减去1,计数器为0时原创 2021-01-08 00:26:02 · 92 阅读 · 0 评论 -
Netty(一)
通俗地讲,Netty 能做什么?原创 2021-01-07 14:31:50 · 100 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor(下)--- 线程超时关闭自己的实现
《Java线程池工作原理以及常用WorkQueue》这篇文章可以参考一下,写的具体线程超时关闭机制是BlockingQueue的poll()方法实现的当一个线程的任务完成的时候,就会向workQueue的缓存里面取缓存中的任务------poll(),如果超过设定的时间还没取到任务,队列就换回null,线程就关闭自己。...原创 2020-12-14 20:50:57 · 2121 阅读 · 0 评论 -
Java线程池ThreadPoolExecutor(中)--- 用例及测试
线程池方法展示:ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, RejectedExecutionHandler handler) 代码范例:package tech.summary.demotest.testthreadpool;import java.io.Serializable;import j原创 2020-12-14 01:38:26 · 687 阅读 · 0 评论 -
ThreadLocal (下) --- 大厂问的六个问题总结
Java中引用类型有哪几种?答:强软弱虚每种引用类型特点是什么?答:强引用------就是一般的引用 Object o = new Object(),只要有引用指着就不会回收软引用------空间不够了就会被GC弱引用------看见就回收(只要没有其他引用指着)虚引用------专门用来管理对外内存,回收的时候就给个信号,get方法get不到每种引用类型的应用场景是什么?强引用------普通用法软引用------缓存弱引用------防止一些关于map的内存泄漏,threadLoc原创 2020-12-11 16:16:16 · 74 阅读 · 0 评论 -
ThreadLocal (中) --- ThreadLocal底层原理、内存泄漏分析
ThreadLocal你了解吗?ThreadLocal应用场景在什么地方?ThreadLocal会产生内存泄漏你了解吗?同一线程中每一层方法必须是同一个connection才能支持事务一个线程往ThreadLocal里面set对象以后,另一个线程get不到这个对象—线程隔离ThreadLocal的set方法,ThreadLocalMap中的key是threadLocal的对象本身,value是传进来的参数value:tl.set(new Person()):拿到当前线程,tl作为ke原创 2020-12-09 01:40:38 · 120 阅读 · 0 评论 -
ThreadLocal (上) --- Java中引用类型分析 && GC调优经验
B站up主视频GC调优经验:小米发生的:线上系统频繁GC,间歇性OOM,查了好久,发现是一些C++程序员转成java之后重写了finalize方法;把很多耗时的方法写在finalize里面了,如把打开的文件关闭掉,关闭网络连接,导致垃圾回收的时候很慢,延长了整个对象的生命周期,如果对象产生的速度很快,回收的速度很慢,就会造成对象越积越多,造成内存溢出OOMJava中引用类型有哪几种?强引用(一般的引用都是强引用):Object o = new Object();----把一个变量指向一块内存空间(指原创 2020-12-08 19:05:46 · 158 阅读 · 0 评论