- 博客(20)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 Dubbo工作流程总结以及常见问题总结
面试题:说一下的 dubbo 的工作原理?注册中心挂了可以继续通信吗?说说一次 rpc 请求的流程?面试官心理分析MQ、ES、Redis、Dubbo,上来先问你一些思考性的问题、原理,比如 kafka 高可用架构原理、es 分布式架构原理、redis 线程模型原理、Dubbo 工作原理;之后就是生产环境里可能会碰到的一些问题,因为每种技术引入之后生产环境都可能会碰到一些问题;再来点综合的,...
2019-10-18 17:14:50
2254
2
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 面试总结之[JDK1.8新特性]
这几天面试中,问到JDK的基本都会问到有关JDK1.8的新特性,基于这点,自己简单总结了下;看到网上有个人总结了这样一句话,感觉比较通俗易懂;速度更快 – 红黑树 代码更少 – Lambda 强大的Stream API – Stream 便于并行 – Parallel 最大化减少空指针异常 – Optional1:HashMap有人会在问你HashMap的时候会问你...
2018-08-16 00:31:25
20691
2
原创 ElasticJob分布式定时任务调度框架以及生产遇到的问题
ElasticJob分布式定时任务调度框架1:maven配置2:客户端xml配置3:测试类4:重点:5:总结1:maven配置<!--elastic-job--> <dependency> <groupId>com.dangdang</groupId> <artifactId>elastic-job-lite-core</artifactId>
2021-05-05 20:06:49
615
原创 自定义注解实现Redis缓存查询
redis自定义注解实现缓存查询1:maven配置<!--redis 集成--> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> </dependency> <depen
2021-05-05 19:26:51
320
原创 自定义注解实现数据读写分离
自定义注解实现数据读写分离由于生产环境运营各方面需要查询时间比较长,又是多表关联的数据,这些sql效率又很长,为了不影响线上效率,这部分慢sql数据我们迁移到读库中获取。这里基于自定义注解来实现读写数据源的绑定读取。自定义注解/** * * 使用注意; * 该注解可以放到service层的实现类方法上,放到接口方法上是没有效果的。 * 也可以放到dao层方法上中。 * </p> * @author hequan * Date:2020/2/25 * Time:
2021-05-02 17:36:25
236
原创 ElasticSearch7.X版本实现中文、英文、数字搜索
EleasticSearch7.X版本实现中文、英文、数字搜索引入依赖客户端连接一些通用的api一些常量和配置类初始化索引库等ES配置信息最后别忘了封装查询的Bean信息由于基金业务需要接入基金搜索功能,但是网上各种7.X版本的帖子又很少,这里就以自己线上代码,总结了下es相关客户端java代码实现搜索功能。引入依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId
2021-05-02 17:20:32
2124
原创 CAS原理
CAS compare and set 先比较再设置。比如有三个线程去修改一个变量,进行累加的操作,第一次三个线程都会去获取值,如果开始都是1,那么当一个线程去修改的时候会去先去看这个值还是1吗?如果是1,接着下面的流程,其他线程如果也同时对变量进行修改时,他会去交易当前值是否为1,如果不是会失败,进行循环的去获取值。每次保证是原子操作。就是所谓Atomic原子类的原理,没有基于加锁机制串行...
2019-11-26 17:37:42
182
原创 synchronized锁的常用方法以及原理
一 :sync的三种常用方式修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。1:作用于实例方法package com.test;/** * @author hequan * Date:2019/11/26 *...
2019-11-26 16:22:00
361
转载 springboot+redis实现分布式锁
原文链接:https://blog.csdn.net/weixin_41491254/article/details/96367674一,分布式锁诞生的原因 为什么分布式锁会诞生?类似于淘宝双11的秒杀活动,同一件商品怎么才能只被一个用户抢到,其他用户抢不到?分布式锁就能巧妙地解决类似秒杀和抢单的问题。技术源于生活,更高于生活。对于阿里的那种的大型秒杀活动,分布式锁只是其中的一环,单单靠分布...
2019-10-10 20:21:54
607
原创 ApplicationListener和ContextRefreshedEvent
实际开发中,ApplicationListener和ContextRefreshedEvent一般都是一个类去实现ApplicationListener 接口来使用的;1):底层原理是什么?org.springframework.context.support.AbstractApplicationContext在IOC的容器的启动过程,当所有的bean都已经处理完成之后,spring io...
2019-10-10 16:33:09
406
原创 ApplicationContextAware的使用
ApplicationContextAware怎么用(1)方法类AppUtil实现ApplicationContextAware接口@Componentpublic class AppUtil implements ApplicationContextAware { // Spring应用上下文环境 private static ApplicationContext applica...
2019-10-08 19:33:49
425
原创 ArrayList底层实现原理
一、 ArrayList概述: ArrayList是基于数组实现的,是一个动态数组,其容量能自动增长,类似于C语言中的动态申请内存,动态增长内存。ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List l)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyO...
2018-08-21 23:18:47
321
原创 HashMap的底层剖析
HashMap是基于哈希表的Map接口的非同步实现,Java最基本数据结构就是两种,一种是数组,一种是引用。所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体。HashMap底层就是一个数组结构,数组中的每一项又是一个链表。当新建一个HashMap的时候,就会初始化一个数组。Entry就是数组中的元素,每个 ...
2018-08-21 23:12:49
142
原创 面试总结之[gc垃圾回收算法图解]
分代收集算法中堆空间被分为新生代和老年代。因为新生代中对象的存活率比较低,所以一般采用复制算法,老年代的存活率一般比较高,一般使用”标记-清理”或者”标记-整理”算法进行回收。 堆的分区展示: 新创建的对象一般放在新生代的Enden区,如下图所示。 上面对象中,绿色代表的是”存活对象”,灰色的代表的是”待回收对象”。当Enden中被使用完的时候,就会发生新生代GC,也就是Minor ...
2018-08-21 22:55:17
644
原创 面试总结之[JVM虚拟机]
1:JVM生命周期1:启动。启动一个Java程序时,一个JVM实例就产生了,任何一个拥有public static void main(String[] args)函数的class都可以作为JVM实例运行的起点。 2:运行。main()作为该程序初始线程的起点,任何其他线程均由该线程启动。 3:消失。当程序中的所有非守护线程都终止时,JVM才退出;若安全管理器允许,程序也可以使用Runti...
2018-08-21 22:37:37
260
原创 面试总结之[线程]
1:什么是线程安全问题当多个线程共享一个全局变量做写操作的时候,可能会受到其他线程的干扰,导致数据有问题,这叫做线程安全问题; 注意:1:做读的时候不会产生线程安全; 2:如果是局部变量,也是做写的操作,是不会造成线程安全问题的; 2:线程如何实现同步同步:多个线程共享同一个全局变量,数据安全问题——保证数据...
2018-08-20 13:31:49
212
原创 面试总结之[单例模式代码实现]
面试中很多笔试会让你写一种设计模式,并问你怎么实现的,此时就可以使用单例模式了; 单例实现由三种:1:懒汉式,也是常用的形式。public class SingletonClass{ private static SingletonClass instance=null; public static synchronized SingletonClass getInst...
2018-08-17 00:08:00
210
原创 面试总结之[Spring的设计模式]
基本每次面试问到spring,就难免会问spring的设计模式有哪几种?今天针对这问题做一个简单的回答;1:简单工程模型又称静态工程方法模式; 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。 spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体...
2018-08-17 00:01:21
219
原创 面试总结之[分布式锁]
分布式锁应用最广的应该就是秒杀时库存的-1;此时我们可以采用redis的乐观锁和悲观锁实现:需要考虑的问题:1、用什么操作redis?幸亏redis已经提供了jedis客户端用于java应用程序,直接调用jedis API即可。2、怎么实现加锁?“锁”其实是一个抽象的概念,将这个抽象概念变为具体的东西,就是一个存储在redis里的key-value对,key是于商品ID相关的字符串来唯一...
2018-08-16 11:22:25
379
原创 面试总结之[HashMap与HashTable区别]
面试必问的基础题就是HashMap和HashTable的区别,他设计到底层的原理和线程的安全,还有就是HashMap在JDk1.8以后有什么新变化,我自己简单总结了一下;1:时间HashTable产生于JDK 1.1,而HashMap产生于JDK 1.2。从时间的维度上来看,HashMap要比HashTable出现得晚一些。2:Null Key & Null...
2018-08-16 09:56:31
609
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人