自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 浅聊线程安全可见性问题

L1,L2,L3为cpu的高速缓存,程序代码的中的变量(例如i=0)存储在主内存中,不同cpu的线程进行先从主内存中进行读取,经过高速缓存通过cpu的指令调度完成对变量i的操作后,将操作后的值回写到主内存中,再回写到主内存之后其他的cpu的线程拿到的值为旧值时(可以理解为脏数据),通过cpu各个厂商统一设定的MESI协议,通过嗅探机智强制将另一个cpu线程读的旧值待操作,设置为无效数据从而从主内存中重现获取最新的值。如果在构造函数中设置字段后发生读取,则会看到该final字段分配的值,否则它将看到默认值;

2023-12-12 22:08:19 51

原创 浅聊java线程通信死锁的产生

进行对其进行状态的变更,wait和notfiyAll和前俩者相比,在死锁方面做出了优化可以避免锁不释放的情况下所产生的死锁。伪唤醒在线程中进行条件判断时,禁止使用if()进行判断,官方表示此种写法,会产生伪唤醒,线程的唤醒不是由notfiyAll,unpark通信进行唤醒的,而是由硬件更底层的导致唤醒的在线程中条件判断推荐使用while(),进行条件判断,if只进行了一次条件判断从而不能避免伪唤醒,而while()会多次进行对条件进行判断,从而可以避免由于更底层或者硬件层面导致的伪唤醒问题.

2023-12-04 08:31:12 47

原创 浅聊spring和spring boot框架的设计思想

springboot相当于spring而言,针对繁杂的XML文件的配置和Bean的配置进行了优化,采用了注解的形式进行替换,@Configuration,@Bean,@ConditionalOnClas,@ConditionalOnBean几个核心注解完成XML文件的替换以及Bean的配置。同时MVC的C(控制层同时也有一些,请求访问return的对象),@Configuration,@Bean注解就是进行为了区分,那类是spring容器管理的对象。问题1:对象的存放是不是需要一个容器进行存放?

2023-10-04 18:29:13 64

原创 java中注解和反射的运用

0){ //实体字段被赋值,需要作为查询条件。log.info("反射获取类中的方法:::"+method.getName());log.info("获取类名:::::"+acls1.getSimpleName());log.info("获取类中方法上得注解的内容 :::::"+name1);log.info("获取类中属性上得注解的内容 :::::"+name1);

2023-10-03 18:07:38 75

原创 Dubbo核心思路梳理

ServiceProvider(服务提供者)--------->通过Netty网络通信框架暴露服务(处理通信,数据传递,编解码得问题)------->并将暴露后Netty的服务端口以及Host,保存在注册中心的实现中(例如:redis,eurka,consul,nacos等)-------->ServiceConsumer(服务消费者)调用,根据注册中心保存暴露的Netty服务进行,数据的传递,编解码,拆包,分包,固定协议格式的解析等一些列逻辑处理。手写RPC框架核心流程。

2023-07-12 19:25:26 96

原创 Docker环境下Jenkins结合Gitee搭建流程总结

jenkins实现了项目CI/CD,更好的体现了持续交付,解决了在手动打包部署项目的繁杂

2022-12-07 17:30:58 1928 3

原创 JVM垃圾回收的原理设计

JVM的设计原理思路

2022-02-18 17:39:36 75

原创 对象创建过程heap(堆)内存的变化以及划分

java对象在创建时,heap的内存分配

2022-02-18 17:34:07 194

空空如也

空空如也

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

TA关注的人

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