- 博客(15)
- 收藏
- 关注

原创 synchronized关键字原理解析(二)
synchronized关键字之markWord前言在上一篇文章中我们通过查看synchronized编译后的字节码文件,可以看到编译完成后为monitorenter和monitorexit两个指令,进而通过查看openjdk的hotspot实现,找到指令所对应的c++代码,通过查看c++代码,我们得知在加锁的过程其实是改变对象的markword中的标记来体现不同的锁状态。在介绍markword之前,得先解释个概念,对象头(object header)初识 object header在github
2020-11-04 18:02:04
161

原创 synchronized关键字原理解析(一)
synchronized关键字底层c++代码调用编译完如下java代码后public class JolDemo { public static void main(String[] args) throws InterruptedException { A a = new A(); synchronized (a) { System.out.println(a); } }}查看下其编译后的bytecode
2020-11-04 16:27:28
1071
2

原创 探秘Spring(2)——PostConstruct注解工作原理解析
提示:本文的代码环境为SpringBoot2.3.4文章目录前言一、PostConstruct是什么?二、可以做什么三、工作原理总结前言Spring已成为java开发web应用必会技术栈,本系列文章着重为大家揭秘spring中的技术点,本文重点介绍Bean实例化之后,依靠注解PostConstruct可以做的一些初始化的工作。一、PostConstruct是什么?从注解的全限定名(javax.annotation.PostConstruct)可以看出这个注解是JDK本身自带的注解,JDK中对
2020-10-09 11:26:24
1077
原创 使用google的mp4parser进行MP4视频的合并
前言最近是饱受折磨,媳妇的单位一直然让她做一些工作视频的合并,在网上找了很多的资源,最后发现都是坑-----------要VIP,果然天底下就没有免费的午餐。不说了。都是眼泪。所以决心自己做一个免费的MP4视频合并工具吧。在网上找了很多资料,最后选定了google的mp4parser工具包来进行视频的处理,NO B B ,SHOW U CODE。@Slf4jpublic class Mp4ParserUtils { private static final String MP3_HAN
2020-10-29 17:01:17
937
1
原创 探秘Spring(4)——BeanfactoryPostProcessor工作原理解析
BeanfactoryPostProcessor工作原理解析前言一、BeanfactoryPostProcessor是什么?二、使用示例三、工作原理总结前言本文重点介绍Spring的扩展点BeanfactoryPostProcessor接口,将会从该接口的实际用法,设计意义和工作原理三方面入手。提示:以下是本篇文章正文内容,下面案例可供参考一、BeanfactoryPostProcessor是什么?下来我们先看看Spring中该类的注释。package org.springframewo
2020-10-25 16:51:27
212
原创 探秘Spring(3)——BeanDefinition详细解析
本文无手写代码,所有代码均来自Spring本身文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):i
2020-10-10 21:23:06
1088
原创 探秘Spring(1)——Bean的生命周期
探秘Spring(1)——Bean的生命周期文章目录探秘Spring(1)——Bean的生命周期前言一、Spring的Bean是什么?二、Bean的生命周期1.实例化2.回调Aware接口3.执行初始化4.销毁总结前言对于做java开发的程序员来说,spring技术栈已作为必须要掌握,熟知的内容,无论是在工作还是面试中,特别是去大厂进行面试时,更是必问的问题,本系列文章主要从源码级别来探秘spring的工作原理以及所使用的设计模式。本篇文章主要探讨Spring的重要组件Bean,包含Bean的
2020-10-07 15:23:38
305
原创 SpringBoot整合apache—dubbo(一)
微服务作为当下流行的服务架构,已经渐渐地成为Web应用开发者必备的技能之一。目前我们项目正在做微服务的升级改造,使用的是SpringBoot作为底层容器,服务间通讯的RPC框架,我们选用的是 apache-dubbo ,服务的注册中心选用的是zookeeper。 本文主要是介绍我们使用springboot, apache-dubbo,zookeeper搭建的项目架构。先介绍下...
2020-03-29 15:24:07
878
原创 Spring解决循环依赖的方式
Spring IOC容器解决Bean循环依赖Spring的IOC容器特性,是我们使用spring框架最常用的功能了,IOC容器为我们提供了程序运行时所需要的各种对象。本文主要讨论的是Spring容器中对象循环依赖,Spring是如何保证各个对象被创建出来的。关于循环依赖通俗点来讲,循环依赖的意思是:两个对象相互持有彼此。就是我中有你,你中有我。–除singleton作用域外的其他作用域。因...
2020-03-27 20:10:12
192
原创 Spring事务管理(二)
Spring的事务管理(二) protected void completeTransactionAfterThrowing(@Nullable TransactionInfo txInfo, Throwable ex) { if (txInfo != null && txInfo.getTransactionStatus() != null) { if (logger...
2020-03-26 21:12:22
305
1
原创 跟着小YI 学HashMap 源码(一)
HashMap 源码解析之 resize()方法贴下源码翻译下上面这段注释:贴下源码/*** Initializes or doubles table size. If null, allocates in* accord with initial capacity target held in field threshold.* Otherwise, because we are u...
2020-01-09 22:19:27
178
原创 分布式锁-Redis方式实现
使用Redis实现分布式锁 最近公司在做微服务的升级改造项目,因此之前在单机系统下的应用锁ReentrantLock 以及 java的关键字synchronized,就不再适合作为锁来实现共享变量的同步。因为他们只适用于一台jvm内部。后经过对比redis和zookeeper实现分布式锁,公司决定采用redis来实现分布式。实现分布式锁要考虑的问题1、要能够实现锁的功能,保证在同一时间...
2019-11-24 17:18:35
436
1
原创 如何管理单点登录中的token(二)
上次我们已经配置好了redis并且也成功的看到如果Redis的key失效,会发送一个订阅消息。接下来我们就看看,通过代码来实现的,监听key的失效,如果同时删除数据库中存储的token的值。...
2019-10-06 18:02:45
414
原创 如何管理单点登录中的token(一)
什么是单点登录呢?我们拿淘宝和天猫来举个例子吧,他们是两个不同的应用,但是我们在浏 览器中登录过其中的一个网站,在访问另一个网站时,就不再需要我们登陆了。通俗来说就是一系列相关的应用,我们只需要登录其中的一个就可以随心所欲的访问其他的了,不用再忍受每访问一个网站,登陆一次的痛苦了。还想要了解更详细的介绍,可参考百度百科单点登录百度百科单点登录的实现方式相信大家看过单点登录的概念后,已...
2019-10-02 19:07:24
2891
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人