自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java打印日志时,如何对字段进行脱敏?

日志脱敏方案

2023-02-21 21:42:58 1625

原创 对象是否存活-可达性分析算法

GC之前需要确定哪些对象可以被回收,哪些对象还存活着,java中用来判断对象是否存活的算法就是可达性分析算法。可达性分析算法:首先从 GC Roots出发,从这些根节点开始根据引用关系搜索,如果某个对象到这个引用链都不可达,那说明这个对象没有任何引用,被判定为可回收对象。注意:可达性分析算法标记的是可达的对象,不可达的对象不可知,例如垃圾收集算法中的标记清除算法,标记的就是可达对象,不可达的对象将被清除掉。从下图中可以看出,从GC Roots开始,object5与object6之间有引用,但是到GC

2021-11-27 10:47:40 214

原创 接口耗时优化

1、首先要了解此接口的上下游有哪些,整理出来。例如:给上游调用,了解到他们的调用场景,是job调用,还是web页面调用,调用是否频繁。调用下游接口,如果改动,评估是否会对下游接口造成影响。2、如果接口入参是list,考虑控制list限制,太大务必会影响接口性能。3、接口逻辑复杂的尽量把业务流程梳理出来,寻找可优化的点。4、考虑是否有循环操作数据库,是否可以改成批量。5、考虑sql是否可以优化5.1、索引优化5.2、sql语句优化5.2、是否回表5.3、是否会导致索引失效6、考虑代码

2021-11-25 23:16:37 614

原创 Spring生命周期

2020-10-20 10:43:18 181

原创 线程池理解

1.线程池的优点1.降低系统资源的消耗:减少线程的创建和销毁2.提高响应速度:任务到来时,可以直接使用线程池中的线程执行,不用等待创建线程3.方便线程的管理:可以控制最大并发数2.JDK提供的创建线程池方式 Executors.newSingleThreadExecutor(); Executors.newFixedThreadPool(3); Executors.newCachedThreadPool(); Executors.newSch

2020-09-21 21:15:50 106

原创 对MySQL事务和隔离级别的一些理解

1.什么是事务事务是逻辑上执行的一组操作,要么都执行,要么都不执行2.事务的特性(ACID)原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用;一致性: 执行事务前后,数据保持一致,例如转账业务中,无论事务是否成功,转账者和收款人的总额应该是不变的;隔离性: 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的;持久性: 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。3

2020-08-21 15:56:23 143

转载 Synchronized使用及底层原理

一、Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:  (1)修饰普通方法  (2)修饰静态方法  (3)修饰代码块  接下来我就通过几个例子程序来说明一下这三种使用方式(为了便于比较,三段代码除了Synchronized的使用方式不同以

2020-08-06 16:51:29 114

原创 java并发编程CAS理解

1.CAS是什么CAS就是Compare and Swap,意思是比较并交换,CAS使用了3个值,V内存值,A预期值,B要更新的值,判断内存值是否等于预期值,如果相等则将B更新为内存值。在Java中,使用的是Unsafe类来实现CAS。2.CAS实现 public final int getAndIncrement() { return unsafe.getAndAddInt(this, valueOffset, 1); }以AtomicInteger类为例,其中

2020-08-03 22:57:21 166

原创 SpringCloud整合OpenFeign+Eureka

本文源码:https://github.com/chengmingchao/openfegin-eureka-demo项目架构目录:SpringCloud整合Eureka集群请参考:Springcloud整合Eureka入口1.增加提供者服务提供的接口与实现在provider-9001,以获取端口号为例,增加service层(provider-9002类似)public interface ProviderService { String getPort();}@Servicep

2020-07-28 13:55:14 703

原创 实例运用,Java四大内置函数式接口

1.消费型接口—有入参无返回值Consumer<T> void accept(T t);测试案例: @Test public void test1(){ consumer(200,(m)-> System.out.println("shopping消费:"+m)); } public void consumer(double money, Consumer<Double> con){ con.acc

2020-07-26 14:53:53 135

原创 Springcloud整合Eureka(集群版)

基础框架搭建请参考,单机版一、环境配置以windows为例,在hosts文件中增加以下内容127.0.0.1 eureka8080.com127.0.0.1 eureka8081.com二、Eureka服务端配置eureka-server8080中,yml文件:server: port: 8080eureka: instance: hostname: eureka8080.com client: register-with-eureka: false #f

2020-07-22 10:58:05 317

原创 Stream学习,Java8新特性之Stream

/** * Stream 规约与收集操作 */public class Test { List<Employee> list= Arrays.asList( new Employee("张三",12,111.11,Status.FREE), new Employee("李四",32,222.22,Status.BUSY), new Employee("王五",22,333.33,Status.FREE),

2020-07-21 23:18:38 243

原创 Springcloud整合Eureka(单机版)

版本信息:springboot 2.2.2.RELEASE;springcloud Hoxton.SR1目录结构如下:首先配置聚合工程,父模块的pom如下:<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId>

2020-07-21 14:58:40 178

原创 Java并发编程volatile关键字理解

Java并发编程volatile关键字理解一、volatile是什么?volatile是jvm提供的轻量级的同步机制,它具有三大特性分别是:保证可见性、禁止指令重排序、不保证原子性。说到这三大特性还得提到JMM(java内存模型)。1、JMM每个线程创建时,jvm都会为其分配一个工作内存,这个工作内存是每个线程私有空间,然而我们定义的所有变量都是存在主内存中,主内存是共享的内存区域,创建的线程都可以访问,但是线程对于变量的操作,必须先将变量从主内存拷贝一份到自己的工作内存,然后才能对其进行操作,操作

2020-06-14 17:23:25 293

空空如也

空空如也

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

TA关注的人

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