自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (1)
  • 收藏
  • 关注

原创 通过ReentrantLock源码看AQS源码实现

ReentrantLock是基于AQS实现的,通过ReentrantLock的公平锁研究一下AQS线程竞争做出的操作其中AQS比较重要的几个属性先介绍一下:**private transient volatile Node head; 队列头private transient volatile Node tail; 队列尾private volatile int state; 锁状态**Node node 这个节点包含了三个属性volatile Node prev; 上一个节点volatil

2020-11-24 19:05:13 98

原创 从spring源码理解IOC的流程以及如何实例化,初始化和解决循环依赖

spring容器启动调用了构造方法的refresh()方法在倒数第二个方法 里面做了准备工作和实例化懒加载的单例bean最后一个方法是实例化懒加载的单例bean首先,spring加载bean大致分为4步,getBean,doGetBean,createBean,doCreateBean。这里做完判断以后就会去getBean进去以后就会看见方法doGetBean点进去会在单例池中get这个bean 也就是一级缓存方法实现:第一次get为空,并且没有被暴露返回null开始.

2020-11-05 21:06:13 441

原创 JVM垃圾回收机制

JVM垃圾回收

2022-04-27 17:32:11 255

原创 深入理解JVM

JVM总览JVM分为三大类,类加载子系统,运行时数据区和执行引擎其中类加载子系统是用来加载编译过的class文件,然后把class元数据信息放入运行时数据区,再有执行引擎执行本文基于HotSpot虚拟机,JDK1.8运行时数据区堆堆是线程共享的大部分的对象都会分配在堆中,堆是虚拟机中最大的一块区域堆中又划分为新生代和老年代新生代又分为Eden区和两个Survivor区,分别是from区和to区虚拟机栈虚拟机栈是线程私有的,跟着线程一起创建和销毁栈是先进后出的虚拟机栈中会

2022-04-24 15:05:55 1169

原创 Bean生命周期和九次调用BeanPostProcessor都做了什么事情

Bean全生命周期和九次调用BeanPostProcessor都做了声明事情

2022-01-18 17:23:15 1268 1

原创 深入理解SpringBoot启动流程(包含自动装配和自定义starter是如何被实现)

SpringBoot启动流程

2021-12-26 16:18:44 687 1

原创 SpringBoot提供的扩展点

SpringBoot提供的一些扩展点

2021-12-25 16:07:15 782

原创 SpringBoot交给IOC管理对象的几种方式

交给SpringBoot管理对象的几种方式

2021-12-16 17:05:48 1410

原创 SpringBoot获取环境配置的几种方式

springboot配置的几种方式

2021-12-15 16:23:22 1159

原创 Java1.8新特性:函数式接口与lambda表达式和方法引用配合使用

lambda表达式lambda是一个匿名函数,使用lambda表达式可以有效地使代码变得更加简洁格式:参数 -> {代码}基本实例 //创建线程的步骤 new Thread(new Runnable() { @Override public void run() { System.out.println("1"); } }); //lambda写法

2021-12-05 10:33:51 198

原创 Java泛型理解

泛型泛型就是可以在编写时不指定类型,到使用时才指定,用来规范代码的一种编码范式规范的一般有T 类型,K key,V value,E element,当然A-Z都是可以的,一些规范而已为什么使用泛型如果不使用泛型,那么就有可能让程序抛出一些运行时原本可以在编译时避免出现的一些异常不规定泛型就可以在list中存放任意元素,那么当处理时就很有可能出现运行时异常比如下边这种List list = new ArrayList(); list.add("hello");

2021-12-03 16:59:36 459

原创 注解和反射

注解注解就是可以放在类上,方法上或者属性上的一个类似于属性的东西,可以自己设定可以加在哪里,可以让程序看得懂。注解使用通过@注解名 来使用常见的比如说重写@Override这种自定注解需要添加的注解:@Target:表示使用的范围,类上方法上属性上@Retention:表示在什么级别保存该注释信息SOURCE:源代码级别CLASS:元数据级别RUNTIME:运行时级别@Document:将该注解包含在javadoc中@Inherited:子类可以继承父类的该注解//自定

2021-11-29 17:01:11 134

原创 Java实现腾讯云短信定时推送天气信息(通俗易懂)

准备:首先在腾讯云申请自己的短信腾讯云短信链接然后再申请签名和正文模板签名提供材料等待审批通过就可以模板的模板内容是可以传参数的我是{1},来自{2},可以添加多个,后续可以通过参数填充,然后等待审批代码:先导入需要的jar包 //腾讯云jar包 <dependency> <groupId>com.tencentcloudapi</groupId> <artifactId>tencentcloud-sdk-java

2021-11-27 17:45:58 877

原创 java并发编程

进程与线程的区别进程:要运行程序时就要把指令加载到CPU,数据加载到内存,当程序被运行,就是开启了一个进程,一个进程包含多个线程,是CPU分配的最小单元,进程通信需要通过网络线程:线程是进程的最小调度单元,将指令交给CPU来执行并行与并发并行:多个线程同时执行并发:多个线程交替执行同步和异步同步:需要等待结果返回,才能继续运行异步:不需要等待结果返回,就能继续运行创建线程的三种方式 Thread thread = new Thread(); Runnable ru

2021-10-11 09:15:03 105

原创 Java整合RocketMQ多种消息实现,简单易懂

第一步先下载:rocketmq下载页面bin是编译过的可以运行,source是源代码,两种都可以启动,bin是启动比较简单(以下简称bin和代码)bin项目启动:进去把jvm的内存修改一下,改为1g就行,太大了启动不起来JAVA_OPT="${JAVA_OPT} -server -Xms1g -Xmx1g -Xmn256m"然后命令行启动就可以,要先启动namesrv,在启动brokernohup ./mqnamesrv &tail -f ~/logs/rocketmqlogs

2021-03-03 17:40:48 1406 1

原创 docker部署项目莫名自动关闭以及内存占用过高解决

昨天晚上在服务器部署springcloud项目,今天早上发现有几个服务莫名的关闭了看日志也没发现错误,后来排查问题发现服务占用内存特别高,应该是内存不够用服务被强制关闭了,于是对docker镜像进行了一些优化docker stats查看刚开始内存占用一个服务占用一个多g于是修改了dockerfile文件在启动jar包时,添加了堆的大小,因为如果不添加,堆大小默认是操作系统内存的四分之一,启动十几个服务,所以内存吃不消,把堆设置小了以后就到时候就可以触发gc,维持在512m中ENTRYPOINT [

2021-01-14 16:19:17 2155

原创 打包docker镜像上传服务器(简单易懂)

服务器下载docker这里就不过多描述首先打包本地项目:添加docker插件 并打包成jar<build> <plugins> <!-- docker插件 --> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-

2021-01-08 15:23:51 2117

原创 k8s通过docker desktop启动并且基于docker部署springboot项目

通过docker desktop启动k8s点击设置按钮进去点击下边的k8s 查看自己的版本下载对应k8s-for-docker-desktop的版本配置一下阿里云镜像加速在下载好的文件中运行./load_images.sh然后在设置并apply等待一下就可以了配置 k8s:kubectl config use-context docker-desktop//如果不对就使用 docker-for-desktop验证状态:kubectl cluster-infokubectl

2020-12-29 16:30:06 2523

原创 explain执行计划

explain执行计划使用explain关键字可以模拟优化器执行sql语句,从而知道mysql是如何处理的sql,来分析性能瓶颈进行调优作用:1.查看表的读取顺序2.查看数据读取操作的操作类型3.哪些索引可以被使用4…哪些索引被实际引用5.表之间的引用6.每张表有多少行被优化器查询包含的信息id select_type table type possible_keys key key_len ref rows extraid:select查询的序列号,包含一组数字,表示查询中执行sel

2020-12-17 22:07:03 140

原创 通过unsafe手写一个乐观锁

思路是通过unsafe类cas指令操作实现乐观锁public class Test { //需要反射一个unsafe类,jdk不允许直接获取这个对象实例 static Unsafe unsafe = null; //锁状态 static volatile int state = 0; //state偏移量 static long offset; static { try { Field field = Uns

2020-11-30 17:29:39 118

原创 springcloud整合seata1.3.0实现分布式事务+nacos1.3.1注册中心

什么是事务:事务就是保证数据库交易可靠性的一种机制事务的四种特性A 原子性: 事务操作要么全部成功,要么全部失败C 一致性: 一个事务在执行前后数据库的状态都必须一致I 隔离型: 事务相互隔离,不能被干扰D 持久性:对数据库的操作成功以后,永久有效为什么要使用分布式事务:因为事务无法满足分布式下的数据一致性,所以出现了分布式事务什么是分布式事务:分布式事务就是为了解决多数据库下实现数据一致性首先我们要知道CAP定理 CAP定理也是三者不可兼得C 一致性 在分布式系统中数据必须都是同

2020-11-23 14:21:21 1368 6

原创 nacos启动报错出现no datasource set或者Access denied for user ‘root‘@‘localhost‘ (using password: YES)

在第一次启动nacos1.3.1的时候在nacos的配置文件中设置数据源spring.datasource.platform=mysql### Count of DB:db.num=1### Connect URL of DB:db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconne

2020-11-20 13:48:01 14321 2

原创 redis序列化及他的工具类

序列化:@Configurationpublic class RedisConfig { @Bean @SuppressWarnings("all") public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){ RedisTemplate<String,Object> redisTemplate = new RedisTemplate<

2020-10-26 12:18:02 135

原创 搭建nacos集群

第一步要下载nacosgithub网址:https://github.com/alibaba/nacos/releases.第一次下载的1.3.2 后边持久化不兼容mysql 我的是5.7的mysql后来下载的1.1.4就持久化没什么问题了下载完以后单机启动命令./startup.sh -m standalone默认端口8848 启动以后 访问 localhost:8848账号密码都是 nacos然后持久化默认的是自带的数据库首先在mysql里创建一个nacos_config的库导入

2020-10-21 16:52:19 66

原创 springboot整合阿里云OCR实现身份证和营业执照识别

整合开始之前需要自己去阿里云注册一个号主要还是在阿里云的演示里把代码拿了过来做了一些修改,现在可以直接使用,HttpUtils包要在https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java 这里下载这个是营业执照的代码import com.alibaba.fastjson.JSONObject;impor

2020-08-15 18:01:17 1878 11

空空如也

空空如也

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

TA关注的人

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