- 博客(106)
- 收藏
- 关注
原创 Redis 详解
Redis的使用详解,包含了Redis的基本数据类型,Redis6新增的数据类型,主从复制,哨兵模式,集群,以及Redis的持久化、三大缓存问题、分布式锁。
2022-07-23 14:43:42 463 1
原创 设计模式之代理模式
提出问题引出代理模式出现的原因,同时详细讲解了静态代理和动态代理,其中,介绍了动态代理的两种实现方式,JDK动态代理和CGlib动态代理。
2022-06-09 10:53:43 131
原创 设计模式之工厂模式
工厂模式几乎是我们最常用的一种设计模式了,通过工厂模式可以取代通过new方式这种硬编码的方式创建对象,从而降低代码的耦合性。耦合性通过工厂模式,我们就可以不用自己使用new显示的去创建对象,创建对象的任务就交给我们的工厂类或者工厂方法来实现。设计一个业务场景:用户的登录和注册功能。我们设计一个接口,的实现类来实现具体功能,层也是同理。在编写层逻辑时会调用层的实例,而调用层实例时又需要调用层的实例。如果我们采用直接new这种硬编码的方式会造成代码耦合,所以封装一个工厂类,通过调用工厂类中相关静态方法来获
2022-06-04 11:36:59 357 7
原创 ArrayList源码分析
ArrayList源码分析介绍ArrayList底层使用数组实现的,但是ArrayList具有动态扩展能力,所以可以将其视为动态数组。ArrayList的继承体系实现了List, RandomAccess, Cloneable, java.io.Serializable等接口。实现了List,提供了基础的添加、删除、遍历等操作。实现了RandomAccess,提供了随机访问的能力。实现了Cloneable,可以被克隆。实现了Serializable,可以被序列化。源码解析属性解释
2022-04-11 19:51:53 183
原创 ConcurrentHashMap_get与remove方法源码分析
在ConcurrentHashMap的get方法中也没有任何加锁逻辑。与普通的Map一样,通过key查找元素。方法中调用了FWD和TreeBin中的。
2022-10-27 18:26:03 1342
原创 ConcurrentHashMap_transfer方法源码分析
ConcurrentHashMap中十分重要的方法transfer方法的源码分析,是ConcurrentHashMap扩容操作的实现。
2022-10-26 21:12:41 751
原创 ConcurrentHashMap_put方法源码分析
put()put()putVal()putVal():spread()写时操作:整个写数据的流程是一个无条件自旋过程(死循环)。addCount()
2022-10-25 14:24:23 565
原创 ConcurrentHashMap内部结构分析(属性,内部类,构造器)
ConcurrentHashMap在使用时与HashMap效果一样,但ConcurrentHashMap时线程安全且高效的HashMap。在原来HashMap的设计上融入了并发编程的思想,在保证线程安全的同时又能保证高效的操作。为什么要使用ConcurrentHashMap呢?(1)HashMap线程不安全在多线程环境下,使用 HashMap 进行 put 操作会引起死循环,导致 CPU 利用率接近 100%,所以在并发情况下不能使用 HashMap。
2022-10-23 10:06:51 421
原创 LongAdder(高性能原子累加器)源码分析
LongAdder的核心思想就是通过空间换时间,将热点value分散成一个Cell数组来承接并发的CAS,从而提升性能。但是AtomicLong可以彻底被取代了吗?虽然看上去LongAdder性能远超了AtomicLong,但是也要分场景使用,如果是并发不太高的系统,使用AtomicLong可能会更好一些,而且内存需求也会小一些。同时,sum()
2022-10-20 18:07:34 430
原创 LinkedHashMap源码分析
分析了LinkedHashMap的源码,总结了LinkedHashMap中三个后置处理方法的实现,以及扩展了LRU缓存相关知识。
2022-10-12 08:46:38 348
原创 LeetCode 二叉树的遍历
二叉树遍历用递归时间很简单,只需要调整递归调用方法的顺序即可。而迭代的方式需要一个栈的结构来辅助完成,需要注意的是入栈和出栈的时机,同时需要记住每经过一个节点,就要将其入栈。...
2022-08-03 18:25:17 204
原创 Jedis操作Redis
Jedis封装了许多API可以用来对Redis进行操作,接下来是操作演示。如果Redis安装在云服务器中,注意配置服务器的防护墙安全组。操作Redis的相关的命令在Jedis中都有与其对应的方法。1、输入手机号,点击发送后随机生成6位数字码,2分钟有效。2、输入验证码,点击验证,返回成功或失败。3、每个手机号每天只能输入3次。...
2022-07-21 13:22:20 269
原创 SpringBoot 数据访问
SpringBoot对于数据访问层使用的总结,连接MySQL数据库,整合MyBatis,MyBatisPlus,Redis。
2022-07-19 15:48:38 419
原创 SpringBoot (底层注解分析、依赖管理、自动配置原理)
记录了微服务以及SpringBoot的基本概念,以及SpringBoot底层注解分析、依赖管理、自动配置原理。
2022-07-19 15:35:28 186
原创 IDEA设置MyBatis核心配置文件的模板
在设置中找到File and Code Templates,点击 ” + “:将模板粘贴后点解Apply。之后在新建的文件提示中就可以看到mybatis-config.xml了:
2022-06-24 16:46:07 186
原创 IDEA设置mapper映射文件的模板
在设置中找到File and Code Templates,点击 ” + “:将模板粘贴后点解Apply。之后在新建的文件提示中就可以看到mybatis-mapper.xml了:
2022-06-24 16:45:22 441
原创 【计算机网络】应用层
应用层位于传输层的上层,也就是最顶层。应用协议应当定义:**DHCP(Dynamic Host Configuration Protocol)**也就是动态主机配置协议,提供了一种机制,称为即插即用连网。连接到互联网的计算机需要配置的项目包括:用了DHCP协议就可以省去人工配置,一切机器都可以自动配置,也不会出现ip地址冲突的麻烦。**域名系统DNS(Domain Name System)**是互联网使用的命名系统,用来吧人们使用的机器名字转换为IP地址。**文件传送协议FTP(File Transfer
2022-06-17 16:53:53 402 1
原创 【计算机网络】传输层
流量控制是基于滑动窗口的。举例:例题:到这里时我开始意识到TCP协议实在是太伟大了。。。TCP为保证网络的传输质量做了很多的考虑,光是阅读笔记可能无法一下子理解:可以回看5.4~5.5节的内容。大体上有四个拥塞控制算法:这几种算法一起使用的,并且要知道拥塞窗口的概念,它是一个可以变换大小的滑动窗口。**慢开始:**到达门限值(阈值),转为使用拥塞避免算法。拥塞避免:慢开始到达门限值,拥塞窗口就不是慢开始时的指数增长了,而是线性慢慢增长,出现丢失分组现象,就可能出现了拥塞现象,就将拥塞窗口调整为1,门限值调为
2022-06-17 16:42:56 248
原创 【计算机网络】网络层
网络层中重要的内容:注意:网络分成A类地址的主机数目最多,其次是B类,然后是C类。补充:实际应用上需要进行网络划分,也就是划分子网。借助子网掩码来区分不同的子网。习题:需要重点掌握黄色区域的内容:习题:根据实际需求,根据不同网络需要的主机个数给各个子网划分网络。有两种规划方式:习题:**注意分配原则:**每个子块的起点位置不能随意选取,只能选取块大小的整数倍的地址作为起点,建议先给大的子块分配。因特网采用的路由选择协议的主要特点:例题:OSPF协议也是内部网关协议。前两个协议都是内部路由协议,而BGP是将不
2022-06-16 21:08:03 497
原创 【计算机网络】数据链路层
数据链路层位于物理层的上层,网络层的下层,属于计算机网络的底层。在这一层主要探求的问题是在同一个局域网中,分组怎么从一台主机转发到另一台主机,但是不经过路由器转发。注意:不是所有数据链路层都会加入帧头和帧尾,其他协议定界的方式可能不一样。字节填充:开始字符SOH,结束字符EOT。数据中如果出现与开始字符和结束字符相同的内容,就在其前面插入ESC转义字符。零比特填充:每5个1插入一个0,接收方遇到每五个就要去掉一个0。奇偶校验不好用,一般不使用,了解即可。考试出题,需要掌握。例题:差错检测总结:数据链路层也可
2022-06-15 17:47:19 120
原创 【计算机网络】物理层
简单来讲物理层就是用来解决如何传输比特0和比特1的问题。物理层协议的任务:相关物理层传输媒体了解即可。先了解码元是什么:简单来说码元就是构成信号的一组波形。我的理解:传输过程中信号会有变化,最大并且正确传输的bit量就是信道的极限容量。...
2022-06-14 16:14:23 104
原创 【计算机网络】概述
定义未明确统一。常见的计算机网络性能指标有一下八个:注意区分数据量单位和数据率单位 。吞吐量表示在单位时间内通过某个网络的实际数据量。RTT(Round-Trip Time),数据送出去接到回复的时间。主要有3个:OSI的体系结构,TCP/IP的体系结构,教学常用的体系结构。计算机网络复杂,存在很多问题,不能一下解决所有问题,所以分层来解决,每一层解决一些问题,完成一些功能。实际通信是应用进程间的通信,显示浏览器向服务器发送请求,服务器给浏览器响应。最原始的数据会在每一层封装成响应报文,也就是逐层封装,到大
2022-06-14 14:21:57 120
原创 Spring基于注解编程详解
注解编程简单来讲指的是在类或方法上加上特定的注解,完成指定功能的开发。为什么要使用注解进行编程?注解有什么作用?替换XML文件配置形式,简化配置替换接口,实现调用双方的契约性Spring注解开发中的一个问题:Spring基于注解进行开发之后会不会导致耦合呢?答:在Spring框架应用注解时,如果对注解的内容不满意,可以通过配置文件进行覆盖。搭建开发环境:2.1 对象创建相关注解@Component作用:相当于在配置文件中使用bean标签创建对象注意: 创建出来的bean的id属性使用@Compone
2022-06-14 09:15:41 219
原创 Spring多配置文件使用
注意:虽然提供了多个配置文件,但是后续应用的过程中,还要进行整合 。非web环境Web环境2. 使用import标签定义一个主配置文件,在主配置文件中进行配置。
2022-06-14 09:15:29 607
原创 Spring中的事务属性(Transaction Attribute)
事务属性:描述事务特征的一些列值。为注解中的属性赋值,如:3. 事务属性详解3.1 隔离属性(ISOLATION)隔离属性的概念概念:隔离属性描述了事务解决并发问题的特征。事务并发时产生的问题脏读不可重复读幻读总结数据库对于隔离属性的支持默认隔离属性查看数据库默认隔离属性MySQLOracle隔离属性在实战中的建议3.2 传播属性(PROPAGATION)概念传播属性的值及其用法默认的传播属性推荐传播属性的
2022-06-14 09:15:15 520
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人