随笔分类 -  JAVA

摘要:微服务注册后,在注册中心的注册表结构是一个map: ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>> registry,假如一个order服务部署了三台机器,那么Map的第一个key为服务名称,第二个map的key是实例编号(in 阅读全文
posted @ 2023-02-03 21:37 DiligentCoder 阅读(277) 评论(0) 推荐(0) 编辑
摘要:第一次GC: 在不断创建对象的过程中,当Eden区域被占满,此时会开始做Young GC也叫Minor GC 1)第一次GC时Survivous中S0区和S1区都为空,将其中一个作为To Survivous(用来存储Eden区域执行GC后不能被回收的对象)。比如:将S0作为To Survivous, 阅读全文
posted @ 2023-02-03 18:41 DiligentCoder 阅读(182) 评论(0) 推荐(0) 编辑
摘要:前言 相信大部分面试都是说用 Redis 去实现分布式锁,用 Zookeeper 实现分布式锁相对而言遇到的较少,最近在整理之前的面经答案,因此特意写篇博客解释一下。 实现一把分布式锁通常有很多方法,比较常见的有 redis 和 Zookeeper。相信大家对 redis 实现分布式锁已经非常了解, 阅读全文
posted @ 2023-01-14 22:36 DiligentCoder 阅读(695) 评论(1) 推荐(3) 编辑
摘要:全量同步与增量同步的区别 全量同步:就是每天定时(避开高峰期)或者采用一个周期实现将数据拷贝到一个地方也就是Rdb存储。 增量同步:比如采用对行为的操作实现对数据的同步,也就是AOF。 全量与增量的比较:增量同步比全量同步更加消耗服务器的内存,但是能够更加的保证数据的同步。 RDB与AOF实现持久化 阅读全文
posted @ 2023-01-13 23:04 DiligentCoder 阅读(330) 评论(0) 推荐(2) 编辑
摘要:一、ThreadLocal概述 ThreadLocal是一个线程的本地变量,也就意味着这个变量是线程独有的,是不能与其他线程共享的。这样就可以避免资源竞争带来的多线程的问题。但是,这种解决多线程安全问题的方式和加锁方式(synchronized、Lock) 是有本质的区别的,区别如下所示: 1> 关 阅读全文
posted @ 2023-01-09 21:45 DiligentCoder 阅读(171) 评论(0) 推荐(0) 编辑
摘要:一、拷贝的引入(1)、引用拷贝创建一个指向对象的引用变量的拷贝。 Teacher teacher = new Teacher("Taylor",26); Teacher otherteacher = teacher; System.out.println(teacher); System.out.p 阅读全文
posted @ 2023-01-09 20:41 DiligentCoder 阅读(421) 评论(1) 推荐(3) 编辑
摘要:目录 ES 简介 ES 的特点: 一、from + size 浅分页 二、scroll 深分页 scroll删除 三、search_after 深分页 ES 简介 Elasticsearch 是一个基于 Lucene 实现的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 阅读全文
posted @ 2023-01-08 17:48 DiligentCoder 阅读(1488) 评论(1) 推荐(1) 编辑
摘要:Java开发中都是默认使用日志门面+日志实现的方式打印日志。日志门面主要是为了给Java日志访问提供一套标准、规范的API框架,其主要意义在于提供接口,具体的实现可以交由具体的日志实现框架。 1.那些年那些日志框架 日志门面日志实现JCL(Jakarta Commons Logging)JUL(ja 阅读全文
posted @ 2023-01-05 22:17 DiligentCoder 阅读(1650) 评论(0) 推荐(0) 编辑
摘要:查找出具体jar包的依赖 找出 gropuId, artifactId 如图所示 这里的groupid,artifactId用冒号分割的。上图中看出来该jar包所对应pom.xml配置的groupId和artifactId为org.mybatis:mybatis,中间是冒号分隔的。所以我们要搜索的就 阅读全文
posted @ 2023-01-04 12:51 DiligentCoder 阅读(339) 评论(0) 推荐(0) 编辑
摘要:二分查找题目 输入一个 n 个元素升序的整型数组 nums , 再输入一个目标值 target 。 编写一个方法: 使用二分法, 查找 nums 中的 target, 如果target存在, 则返回在数组中的下标, 否则返回 -1。 数组上任意一点的值:nums[i] 二分法查找流程 第一步 在数组 阅读全文
posted @ 2023-01-03 23:39 DiligentCoder 阅读(76) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/qlqwjy/p/15594642.html https://blog.csdn.net/HD243608836/article/details/110433868 白话: 1.RestTemplate底层采用Httpclient实现,可以配合ribb 阅读全文
posted @ 2023-01-02 23:01 DiligentCoder 阅读(189) 评论(0) 推荐(0) 编辑
摘要:在使用springcloud ribbon客户端负载均衡的时候,可以给RestTemplate bean 加一个@LoadBalanced注解,就能让这个RestTemplate在请求时拥有客户端负载均衡的能力: @Bean @LoadBalanced RestTemplate restTempla 阅读全文
posted @ 2023-01-02 21:24 DiligentCoder 阅读(282) 评论(0) 推荐(0) 编辑
摘要:通讯协议,什么是协议? 如:生产者投递消息到mq服务器之间的通讯如何定义格式就叫协议,(mq协议是amqp协议,是mq作者自己起的通讯协议名称)。 流程图 实现流程: 1.生产者把消息投递到netty服务,消费者自己取。 2.生产者把消息投递到netty服务,自动发送给消费者。 目录结构 目录 流程 阅读全文
posted @ 2022-12-28 21:51 DiligentCoder 阅读(600) 评论(0) 推荐(0) 编辑
摘要:前言# SpringBoot项目的启动流程是很多面试官面试中高级Java程序员喜欢问的问题。这个问题的答案涉及到了SpringBoot工程中的源码,也许我们之前看过别的大牛写过的有关SpringBoot项目启动流程的文章,但是自己没有去研究一遍总是会记忆不深刻。有句话叫做“纸上来得终觉浅,绝知此事要 阅读全文
posted @ 2022-11-13 20:15 DiligentCoder 阅读(708) 评论(0) 推荐(2) 编辑
摘要:目录 阻塞IO 非阻塞 IO select poll epoll 总结一下。 阻塞IO 服务端为了处理客户端的连接和请求的数据,写了如下代码。 listenfd = socket(); // 打开一个网络通信端口bind(listenfd); // 绑定listen(listenfd); // 监听 阅读全文
posted @ 2022-11-10 23:59 DiligentCoder 阅读(551) 评论(0) 推荐(3) 编辑
摘要:下图是我搜索“Spring Bean生命周期”找到的图片,来自文章——Spring Bean的生命周期 下面,我们从AbstractAutowireCapableBeanFactory的源码中来分析这张图的各个阶段到底是怎么执行的。BeanFactory的基本源码解读在Spring BeanFact 阅读全文
posted @ 2022-11-03 22:58 DiligentCoder 阅读(433) 评论(0) 推荐(1) 编辑
摘要:1.首先启动SpringAop时,会使用该@EnableAspectJAutoProxy注解 2.将@Import(AspectJAutoProxyRegistrar.class)注入SpringIOC容器中 3.AspectJAutoProxyRegistrar中会注册对象 BeanId:org. 阅读全文
posted @ 2022-08-20 20:16 DiligentCoder 阅读(40) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示