自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 操作系统基本知识

**MESI协议**1.当 A 号 CPU 核心从内存读取变量 i 的值,数据被缓存在 A 号 CPU 核心自己的 Cache 里面,此时其他 CPU 核心的 Cache 没有缓存该数据,于是标记 Cache Line 状态为「独占」,此时其 Cache 中的数据与内存是一致的;2.然后 B 号 CPU 核心也从内存读取了变量 i 的值,此时会发送消息给其他 CPU 核心,由于 A 号 CPU 核心已经缓存了该数据,所以会把数据返回给 B 号 CPU 核心。在这个时候, A 和 B 核心缓存了相同的数据

2022-11-15 11:14:18 658

原创 Eureka的注册表并发访问和Nacos对比学习

没有考虑使用多级缓存的思想,读写并发的时候主要依靠CopyOnWrite(写时拷贝)技术来实现,因为Nacos底层的注册表是个多层的Map结构(Map),如果考虑加锁的话,全局锁可能并发性能就会很差,局部锁的话也很难维护,所以更新的时候,从原来的map中拷贝一个新的map,然后将更新的结果通过CAS拷贝给原来的map。

2022-11-10 22:02:50 323

原创 中金财富后台开发一面经验分享

聊聊你对Spring的了解答:我认为的Spring有两大特性,一是IOC,控制反转,二是AOP,面向切面编程,对于面向对象编程来说,每调用一个类方法,就要创建一个类对象才能调用,所以Spring针对于方法层面进一步抽象,引入了AOP的概念,通过切点,对方法进行增强,包括前置,后置,环绕,返回,异常通知;其次AOP底层采用的是动态代理技术,JVM会根据需要增强的方法还有需要进行的通知收集,形成一个新的代理类字节码文件,底层通过invoke,进行调用增强和原方法。当时IOC还拓展了一下,IOC容器中的三级缓存

2022-09-15 22:09:17 919 3

原创 HTTPS/1.1如何优化

减少重定向请求次数;合并请求;延迟发送请求;

2022-09-10 15:53:12 252

原创 何时触发minor GC

JVM在进行minorGC之前会判断老年代最大的可用连续空间是否大于新生代所有对象的总和,如果大于,直接执行minorGC.(这里原因是,有时survival区内存不够,则需要把对象直接放在老年代内存中,所以要判断老年代是否拥有足够的空间,采用标志-复制法)

2022-09-10 15:31:24 451

原创 Hashmap1.7头插法导致的问题

线程A继续执行代码,此时newTable的Entry3已经发生了变化,那么nodeA同时也插入到Entry3中,此时nodeA指向nodeB,nodeB指向nodeA,此时线程A将进入死循环。此时假设两个线程,同时参与扩容的过程,且线程A拿到值(e.next = nodeA)后被挂起,时,扩容的逻辑会导致节点互相引用,导致。非普通头插导致扩容,而是。

2022-09-08 09:37:36 708

原创 Oauth2协议及自定义Demo的实现

结合Oauth2的特性和Spring Security的部分源码的讲解,深入的了解token的创建流程。主要分为客户端信息的存储 -> 授权码请求的发起 -> 授权码的生成 -> 授权码的存储 -> accessToken和RefreshToken的生成存储 -> 接口验证通过 -> 访问服务

2022-09-07 23:48:26 956

原创 RPC和HTTP有什么区别?

主要差别在序列化和反序列化rpc通过thrift二进制传输http json 序列化更消耗性能 文本传输协议嘛。

2022-09-06 09:54:28 814

原创 服务器被入侵如何排查

服务器如果有开放ssh远程登录,可以设置限制登录,配置安全组等,只放行自己的IP查找详细的入侵痕迹last命令或者是通过管道过滤 /var/log/secure下与’Accepted相关的日志信息来判断查看服务器是否可以关闭外网,可以就先关闭外网。

2022-09-05 15:04:05 581

原创 时间排序算法(结合多线程)面试

面试题内容是给你一个数组,使用多线程进行排序输出,如何设计?大概设计思路就是每拿到一个值就睡眠这个值的秒数然后再输出。

2022-09-04 21:24:29 249

原创 JAVA内存模型(一)

与 flag = true进行了指令重排序,那么线程B在执行reader方法时判断flag为true,此时a = 0,导致reader函数接下来的代码逻辑事与愿违。针对reader的指令重排序,这里可能就有人会问为啥reader会进行指令排序了,这里存在着控制的依赖关系(控制依赖影响指令序列的并行度),所以对于某些编译器与处理器这里会采用。源代码 -> 编译器优化重排序 -> 指令级并行重排序 -> 内存系统重排序 -> 最终执行的机器码序列。当正常按照代码书写的执行顺序去执行的时候,结果是没有问题的;

2022-09-04 17:19:30 140

原创 Spring多数据源配置

首先附上AbstractRoutingDataSource的类图结构AbstractRoutingDataSource的代码实现} //省略set方法... public void afterPropertiesSet() {} else {});= null) {} else {} //找到目标数据源 protected DataSource determineTargetDataSource() {} else {

2022-09-03 17:38:16 999 1

原创 Spring启动流程源码解析

1.Spring会将所有交由spring管理,扫描其class文件,将其解析成BeanDefinition,在BeanDefinition中会描述类的信息,例如:这个类是否是单例的,Bean的类型,是否是懒加载的,依赖哪些类.2.Spring容器在本文可以简单理解为DefaultListableBeanFactory,它是BeanFactory的实现类,这个类有几个非常重要的属性:beanDefinitionMap是一个map,用来存放bean所对应的BeanDefinition;beanDefinitio

2022-09-03 16:57:41 1120

空空如也

空空如也

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

TA关注的人

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