![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
昆虫520
我一定会努力学习成为大神的!
展开
-
springboot中应用观察者模式
近几天在学习springboot源码时发现,在springboot项目启动过程中设置了很多监听器,发现监听器的原理和设计模式中的 观察者模式 很相似。故灵感来袭总结一下 springboot中应用观察者模式观察者模式解决的问题是:当一个东西(后文称之为 前者)的状态发生改变时,一些与其关联的东西(后文称之为 后者)也会随之做出各自改变。传统的做法是前者在变化后需要直接遍历一个个的通知(调用)到后者,当以后有新的后者需要扩展时,前者的代码也需要改动,不利于扩展。观察者模式解决的问题是,利用java的多态特原创 2020-08-05 11:18:45 · 2093 阅读 · 7 评论 -
synchronized 关键字使用的一个小细节
synchronized 我们都知道是用于代码同步的;今天学习到一个细节,特此记录下来:synchronized 可以修饰在方法上,也可以作为同步代码块使用1,使用在方法上时,所引用的锁对象即是调用方法的对象本身,而对象自身只能持有一把锁;所以当类中只有一个方法被synchronized 修饰时倒是没啥问题;但是如果很多方法都被synchronized修饰的话,若一个线程先抢到锁,进...原创 2019-10-29 20:21:02 · 108 阅读 · 0 评论 -
线程安全的单例模式实现
/** * 线程安全的单例模式实现, * 实现了不同线程之间对象不同,同一线程之中对象一致! */class Kun { private static ThreadLocal<Kun> kunThreadLocal=null; private Kun(){} public static Kun getKunInstance(){ if ...原创 2018-11-29 08:38:01 · 407 阅读 · 2 评论 -
如何在一个java程序里面调用第三方的可执行文件(如: .exe文件)
java中可以使用RunTime类, 和ProcessBuilder类来调用第三方可执行文件//创建ProcessBuilder对象 ProcessBuilder processBuilder =new ProcessBuilder(); //设置执行的第三方程序(命令),第一个参数是命令,之后的是参数// processBuilder.com...原创 2019-01-18 17:28:10 · 6396 阅读 · 2 评论