自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Redis常见面试题

缓存雪崩、击穿、穿透的原因与解决方法缓存不一致的原因,解决方法Redis做分布式锁Redis的事务Redis主从集群、切片集群哨兵集群

2021-03-21 17:56:00 105

原创 CuncurrentHashMap 1.8源码分析

ConcurrentHashMap源码分析(二)一、jdk1.8容器初始化1、源码分析在jdk8的ConcurrentHashMap中一共有5个构造方法,这四个构造方法中都没有对内部的数组做初始化, 只是对一些变量的初始值做了处理jdk8的ConcurrentHashMap的数组初始化是在第一次添加元素时完成//没有维护任何变量的操作,如果调用该方法,数组长度默认是16public ConcurrentHashMap() {}//传递进来一个初始容量,ConcurrentHashMap

2021-03-21 17:54:34 855 2

原创 CuncurrentHashMap 1.7源码分析

ConcurrentHashMap源码分析(一)一、Unsafe介绍1、Unsafe简介Unsafe类相当于是一个java语言中的后门类,提供了硬件级别的原子操作,所以在一些并发编程中被大量使用。jdk已经作出说明,该类对程序员而言不是一个安全操作,在后续的jdk升级过程中,可能会禁用该类。所以这个类的使用是一把双刃剑,实际项目中谨慎使用,以免造成jdk升级不兼容问题。2、Unsafe Api这里并不系统讲解Unsafe的所有功能,只介绍和接下来内容相关的操作arrayBaseOffset:获取

2021-03-21 17:51:23 389

原创 HashMap源码分析

HashMap源码分析1、HashMap存取值的原理1、存值分析:jdk1.7存值分析public V put(K key, V value) { //HashMap允许存储null键,存储在数组的0索引位置 if (key == null) return putForNullKey(value); //内部通过一个扰乱算法获得一个hash值,用于计算数组索引 int hash = hash(key); //计算数组索引 int.

2021-03-21 17:45:29 88

原创 Spring常见面试题

Spring/SpringBoot/SpringMVC面试题1. Spring1.1 列举⼀些重要的Spring模块?答:spring-core:Spring 基础 API 模块,如资源管理(Resource),泛型处理(GenericTypeResolver)spring-beans:Spring Bean 相关,如依赖查找(BeanFactory.getBean()通过名称查找、通过类型查找),依赖注入(Autowired、AutowiredAnnotationBeanPostProcess

2021-03-07 20:42:00 177 1

原创 Kafka

保证消息不丢失生产者端设置ack = all 所有副本分都收到消息才行使用回调通知api:producer.send(msg,callback);设置retries(自动重试)为较大的值消费者端手动提交位移,消费完成后提交位移Broker端配置unclean.leader.election.enable = false(不允许同步不完全的Broker成为Leader)replication.factor >= 3 (消息多保存几份)min.insync.replicas

2021-03-07 20:14:40 58

原创 拦截器的应用(1):简单的登录校验

顾名思义,拦截器就是拦截请求的并对请求进行逻辑处理的。那在哪里拦截呢?简单的来说,在请求进入到Controller之前。简化流程如下图:从上面的图来看,在请求进入Controller之前,不是只有一个拦截器,而是由多个拦截器组成的拦截器链。而拦截器的preHandle方法就是进行处理器拦截用的,所有需要在Controller处理之前进行调用的逻辑都在这里。那怎么实现一个自定义拦截器呢?在传统Spring中:第一步创建一个类实现HandlerInterceptor接口,重写接口的方法。/**

2020-11-12 22:55:04 223

原创 一道关于创建对象的过程的面试题

考点:类初始化过程实例初始化过程方法的重写题目如下下面程序的运行结果?public class Father{ //非静态类变量显示赋值 private int i = test(); //静态类变量显示赋值 private static int j = method(); //静态代码块 static{ System.out.print("(1)"); } //无参构造器 Father(){ System.out.print("(2)")

2020-11-11 16:15:16 167 1

原创 根据不同运行环境注入不同的bean的一种实现

使用场景:在开发和生产环境某些实现代码差异很大,来回切换代码太麻烦。(甚至某些依赖必须只能在生产环境才能使用)所以采用了根据运行环境注入不同的bean的做法。首先把有差异的代码抽离出来,以接口的形式提供。/** * @author jy */public interface InfoTools { /** * 文章关键字匹配 * @param content * @return */ String dealInfoEntity(String

2020-11-11 16:07:56 682 2

原创 为什么重写 equals 时必须重写 hashCode 方法?

因为不重写的话,set等不允许元素重复的散列表里会出现重复的元素。因为散列表中先判断hashCode,相等后才会比较equals。验证一下,首先我们先创建一个Person类,并重写equals方法(先不重写hashCode方法)@AllArgsConstructorpublic class Person { private String name; private String sex; public String getName() {

2020-07-29 11:00:09 678 2

原创 Java到底是值传递还是引用传递?

Java都是值传递

2020-07-03 18:20:07 117

原创 解决SpringBoot集成Apache CXF 发布服务端后,客户端调用不了的问题

解决SpringBoot集成Apache CXF 发布服务端后,客户端调用不了的问题先说解决方法:​ 在META-INF中创建services文件夹, 以Provider这个类的全名来新建立一个文件,文件中的内容为指定实现类的全名,如下:问题背景:​ 项目涉及到周边老系统的数据交互,采用webService的方式。调用webService有很多方式,我采用了最偷懒的方式–idea生成客户端代码(就此埋下了坑)。​ 后来需求增加功能,需要发布一个WebService服务接收周边系统下发的数据。(周边

2020-06-24 18:16:50 3159

空空如也

空空如也

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

TA关注的人

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