![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
学的好秃的早
追风赶月莫停留,平芜尽处是春风
展开
-
nacos注释配置未生效?
NacosValueAnnotationBeanPostPorcessor中有,获取key,是获取的所有注解上的值,而values是enviroment中的属性值。当我们注释掉nacos中的属性时,key依然能取到,但是因为注释的原因value无法取到,nacos直接执行continue逻辑跳过此属性的重新赋值。也就导致了最终属性在spring中没有发生变更。原创 2024-07-18 17:11:36 · 97 阅读 · 0 评论 -
Nacos 配置中心保姆级源码解析(01) 自动刷新
nacos 作为配置中心,其实实现分为两部分,一是位于我们自己服务的客户端, 二是服务端。原创 2024-07-16 16:50:04 · 764 阅读 · 0 评论 -
Thread 指定未受检查处理器 Thread.UncaughtExceptionHandler
Thread 方式指定未受检查的异常啥叫为受检查异常呢?定义: 程序运行的时候抛出且没有被程序捕获的异常或者错误。定义自定的线程未受检查的异常处理器public class UEHlogger implements Thread.UncaughtExceptionHandler{ @Override public void uncaughtException(Thread t, Throwable e) { Logger logger = Logger.getAn原创 2021-12-07 16:21:59 · 432 阅读 · 0 评论 -
JAVA 线程中断之isInterrupted(),interrupt() ,interrupted()
isInterrupted()Thread 方法 :返回会boolean 值,为Thread的中断状态底层是通过调用本地方法实现 。isInterrupted()仅会返回中断状态,不会清除中断标interrupt()无返回值, 会调用nio的方法,以及本地方法...原创 2021-12-01 09:46:28 · 564 阅读 · 0 评论 -
Timer与ScheduledThreadPoolExecutor
/** * * 定义Timer的任务器 * @author gino * 2021-11-30 */public class TestTask extends TimerTask { private Boolean error; public TestTask(boolean error){ this.error=error; } @Override public void run() { System.out.pri原创 2021-11-30 13:37:31 · 236 阅读 · 0 评论 -
高并发实战2---手写计算器缓存
对于初级版本(高并发实战1)的提升一级优化不直接缓存计算结果,而是缓存计算任务(future可以阻塞线程),当没有从缓存中读到正在执行计算的任务的时候,直接阻塞等待正在执行的任务计算的结果,然后读取缓存,减少重复的计算顶层类依然不变package com.ljq.mydemo.thread.compute;/** * * 定义计算的接口 *包含一个 用户计算的函数式接口 * @author gino * 2021-11-17 */public interface Computab原创 2021-11-18 17:50:55 · 215 阅读 · 0 评论 -
高并发实战1---手写计算器缓存
实现思路定义一个用于计算功能的顶级接口 ,在接口类定义,计算的接口具体的计算器 ,都去实现这个接口定义个带有“记忆”功能(缓存)的计算的容器,通过构造方法传递具体的计算器通过ConcurrentHashMap 去缓存计算的入参结果每次计算的时候判断是否有结果已经缓存,有则跳过计算,直接获取上一次的计算结果顶层类:computale 接口, 定义为函数式接口package com.ljq.mydemo.thread.compute;/** * * 定义计算的接口 *包含一个 用户计原创 2021-11-18 17:37:34 · 108 阅读 · 0 评论 -
用信号量实现一个线程安全的Set
package com.ljq.mydemo.thread.semaphore;import java.util.Collections;import java.util.HashSet;import java.util.Set;import java.util.concurrent.Semaphore;/** * 使用Semaphore 为容器设置 边界值 * * * @author gino * 2021-11-16 */public class BoundHashSet&l原创 2021-11-16 17:47:36 · 3709 阅读 · 1 评论 -
ArrayList源码你真的理解了吗
问题相信不少小伙伴,在面试的时候被问过jdk中相关源码的部分, 最近就被问道了关于ArrayList的源码, 上来就是问有没有看过ArrayList的源码,怎么在遍历中移除ArrayList中的元素? ,普通的循环会抛出何种异常,为啥迭代器的方式不会报异常,答案:普通的for循环编译其实会调用Itr的next去获取元素, 会抛出ConCurrentModificationException.方式有两种:方式一: 通过迭代器的方式,ArrayList 内部有一个实现了Itereator原创 2021-09-07 09:46:57 · 64 阅读 · 0 评论 -
Java将List结构转成树结构
当我们需要从数据库中查出的数据放回至前端展示,而前端需要为树结构时,我们应该避免N+1查询,应该直接查出所有数据,再通过java代码基于内存的方式去将树创建好。具体代码 :案例中的集合分了层, 祖父节点, 父亲节点, 当前节点,而且每个层次的节点都有兄弟节点.public static void main(String[] args) { Person grandfather=new Person("0","1","grandfather"); Person fa.原创 2021-06-17 15:33:31 · 570 阅读 · 0 评论 -
Java 动态代理之jdk 动态代理
本身就继承了Proxy 类实现了被代理类实现的接口,因为java是单继承的 ,如果被代理是继承父类而不是实现接口 那便违反了java的单继承规则`public final class $Proxy0 extends Proxy implements Interface { public $Proxy0(InvocationHandler paramInvocationHandler) {\ super(paramInvocationHandler); }Java 动态代理原创 2021-05-06 18:10:07 · 208 阅读 · 0 评论 -
设计模式之工厂模式
工厂模式完整的代码可以到我的博客里下载简单工厂模式(静态工厂模式)业务实现一个加工生产冰淇淋的业务UML类图核心demopackage FactoryPattern.singelFactory;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class PizzFactory { public static Pizza g原创 2020-07-10 21:34:32 · 105 阅读 · 0 评论 -
设计模式之原型模式
原型模式案例绵羊的克隆现在有一只原型的羊 tom 年龄 1 颜色白色 要求克隆出和它一样的羊源代码深拷贝与浅拷贝浅拷贝浅拷贝实现package ProtoType;/** * 绵羊对象 * 调用Object.clone()实现对象的复制 * 实现Cloneable 接口 * 用此方式的实现原型模式为浅拷贝 * 即当前的对象的属性拷贝的时候 * 基本数据类型和String是进行的值的传递 * 而类对象和数组等是进行引用的传递(A克隆出B后,A里面的对象属性和B里面的对象属性是原创 2020-07-10 21:00:01 · 83 阅读 · 0 评论 -
设计模式之单例模式
ell原创 2020-07-08 20:47:15 · 111 阅读 · 0 评论 -
spring事务
事务属性的种类: 传播行为、隔离级别、只读和事务超时a) 传播行为定义了被调用方法的事务边界。传播行为意义PROPERGATION_MANDATORY表示方法必须运行在一个事务中,如果当前事务不存在,就抛出异常PROPAGATION_NESTED表示如果当前事务存在,则方法应该运行在一个嵌套事务中。否则,它看起来和 PROPAGATION_REQUIRED 看起来没什么俩样...原创 2020-04-02 09:27:52 · 73 阅读 · 0 评论 -
关于jvm
什么是JVM?JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码...原创 2020-04-02 09:14:07 · 83 阅读 · 0 评论 -
java 分布式微服务 springcould工程部署
java 分布式微服务 springcould简单入门使用 本次以一个商场web项目为例介绍springCould 的环境搭建本次以一个商场web项目为例介绍springCould 的环境搭建** 拓扑图如下**总共分为三个子系统:,门户,用户管理,订单管理且都分别分布到三个不同的服务器上+一个注册服务器创建父工程1.1这里笔者定义了两个父工程parent1 和parent2,定义...原创 2020-04-01 11:47:53 · 264 阅读 · 0 评论 -
关于GC
浅谈对gc的认识了解(注:编辑器会根据文章标题自动生成目录)(1) GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。(2) 对于GC来说,当程序员创建对象时,...转载 2020-03-17 16:39:43 · 124 阅读 · 0 评论