![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 91
春眠不觉晓♞
菜虽菜,但热爱
展开
-
学习使我快乐---CountDownLatch的典型应用
面试官:下面有这么一个场景“模拟100米赛跑,10名选手已经准备就绪,只等裁判一声令下。当所有人都到达终点时,比赛结束!” 该怎么实现?Peter:额… 用多线程;面试官:那请你具体说下把!Peter:GG说起这个我还是在去年面试中遇到的,当时年少无知,不晓得这个,最后去了网上学了一圈才发现这个真是yyds,分享给大家我的理解,欢迎大家提出好的意见,不多说直接上代码。原创 2023-02-28 16:26:40 · 307 阅读 · 0 评论 -
sql学习分享--使用子查询
使用子查询原创 2022-02-19 20:19:57 · 1874 阅读 · 0 评论 -
数据库--sql性能优化学习整理
1.基本概念 1.1 SQL查询的执行流程:这是从网上找来的一张流程图,根据流程图我们可以清晰的了解到一条sql查询流程步骤;可以分为按照通俗的步骤和层级性的概括两种理解:sql执行流程讲述 按照常规步骤理解 层级性概括理解 第一步:客户端通过连接器进行权限校验,将SQL指令传输给MySql服务器。 第二步:服务器收到指令后会先查询缓存(在MySql8.0后好像就取消这个功能了) 第三步:若没有命中缓存,分析..原创 2021-08-18 17:35:22 · 388 阅读 · 0 评论 -
java实用必备工具库
java实用必备工具库,高效率完成开发很多对编程感兴趣的朋友不知道是否会有这样的感触,敲了很多年代码,才发现有很多工具类库,这些工具类库可以大大的简化代码量,从而提升开发效率,下面和大家分享一下我所了解的工具类库。1. java自带工具方法1.1 List集合拼接成以逗号分隔的字符串 @Test public void test1(){ //如何把list集合拼接成以逗号分隔的字符串a,b,c (---Arrays.asList:该方法是将数组转化成List集合的方法)原创 2021-07-02 23:59:48 · 370 阅读 · 0 评论 -
多线程-----每日学习笔记
多线程理解学习:多线程百度百科:多线程(multithreading),是指从软件或硬件上实现多个线程并发执行的请求具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。在一个程序中,这些独立运行的程序片段叫做“线程”(Thread),利用它编程的概念就叫做“多线程处理”。进程与线程区别:进程:一个程序就是一个进程例如我正在运行的微信,网易云等都属于一个进程。线程:线程是运行在计原创 2020-11-10 12:02:03 · 246 阅读 · 2 评论 -
Spring快速学习笔记---SpringIOC和DI与常见的设计模式(单例模式)
在我们学习Spring的过程中,我们经常看到Spring的IOC(控制反转)和DI(依赖注入)。在Spring的环境下这两个概念其实差不多,因为控制反转是通过依赖注入来实现的。1.SpringIOC和DIIOC是指我们代码里需要的实现的对象创建、维护对象间的关系,然后反转给容器来帮忙实现。所以我们需要创建一个容器,并且需要用一种描述来使容器知道需要创建的对象与对象之间是什么关系。注入依赖的目的只是起到解耦合的作用,进而体现出一种“组合”的理念。//Spring IOC容器负责创建Bean,并通.原创 2020-08-29 11:23:33 · 233 阅读 · 0 评论 -
面试干货分享(经验总结+本人遇到的实际面试问题)
面试经验分享(个人真实经历)本文是个人面试的真实经验,在这里与大家分享,希望可以帮到最近正在求职的小伙伴们,如有逻辑或者答案不对的地方,欢迎大佬们指正,我们一起进步哈!Java基础面试题肯定是要掌握的(不然初试就凉凉)所谓的初试,大部分是那些hr沟通后进行的电话面试,或者是在第一次电话联系中和你说明他们公司需求后的情况下随机问的一些问题,目的是测试你是否有任职这个岗位的基础能力(说白了我感觉是在试水),下面分享一下我初试问到的问题:一. 电话面试真实被问过的问题(平均面试时间大约在20分钟左右):原创 2020-08-14 17:32:48 · 911 阅读 · 0 评论 -
redis------第九天学习笔记(切片集群:数据增多了,是该加内存还是加实例?)
redis------第9天学习笔记(切片集群:数据增多了,是该加内存还是加实例?)在网上看到这样一个需求:要用Redis保存5000万个键值对,每个键值对大约512B,为了能快读部署并对外提供服务,我们采用云主机来运行Redis实例。那么,该如何选择云主机的内存容量呢?粗略的计算一下,这些键值对所占的内存空间大约是25GB。所以,当时我想到的第一个方案就是:选一台32GB内存的云主机来部署Redis,而且还留有7GB,可以保证数据的正常运行,同时,我还采用RDB对数据做持久化。以确保redis实例原创 2020-11-24 15:08:30 · 153 阅读 · 0 评论 -
redis------第八天学习笔记(哨兵集群:哨兵挂了,主从库还可以切换吗?)
redis------第八天学习笔记(哨兵集群:哨兵挂了,主从库还可以切换吗?)上次我们学习了哨兵机制,他可以实现主从库的自动切换。通过部署多个实例,就形成了一个哨兵集群。哨兵集群中的多个实例共同判断,可以降低对主库下线的误判率。但是我们还要考虑一个事情:如果有哨兵实例在运行时发生了故障,主从库还能正常切换吗?实际上,一旦多个实例组成了哨兵集群,即使有哨兵实例出现故障挂掉了,其他哨兵还能继续协作完成主从库切换的工作,包括判断主库是不是处于下线状态,选择新主库,以及通知从库和客户端。如果你部署过哨兵原创 2020-11-13 19:44:20 · 284 阅读 · 0 评论 -
redis------第七天学习笔记(哨兵机制:主库挂了,如何不间断服务?)
redis------学习笔记(哨兵机制:主库挂了,如何不间断服务?)上次学习了主从库集群模式。在这个模式下,如果从库发生了故障,在这个模式下,如果从库也发生故障了,客户端可以继续向主库或者其他从库发送请求,进行相关的操作,但是如果主库发生故障,那就直接影响到从库的同步,因为从库没有相应的主库可以进行数据复制操作了。而且,如果客户端发送的都是读操作请求,那还可以由从库继续提供服务,这在纯读的业务场景下还能被接受,但是,一旦有写操作请求了,按照主从库模式下的读写分离要求需要由主库来完成写操作。此时,也原创 2020-11-11 20:32:22 · 249 阅读 · 0 评论 -
Redis学习笔记----------第六天(数据同步:主从库如何实现数据一致)
Redis学习笔记----------第六天(数据同步:主从库如何实现数据一致)前几节学习笔记我们已经学习了AOF和RDB,如果Redis发生了宕机,它们可以通过回放日志和重新读入RDB文件的方式恢复数据,从而保持尽量少丢失数据,进而提升可靠性。不过,即使使用了这两种方法,也依然存在服务不可用的问题。比如说,我们在实际使用时只运行了一个Redis实例,那么如果这个实例宕机了,它在恢复期间,是无法服务新来的数据存取请求的那么我们总说的Redis具有高可靠性,又是什么意思呢?其实,这里有两层含义:一是原创 2020-11-07 11:06:52 · 198 阅读 · 1 评论 -
Redis学习笔记----------第五天(内存快照:宕机时,Redis如何实现快速恢复)
Redis学习笔记----------第五天(内存快照:宕机时,Redis如何实现快速恢复)上次的学习中,主要学习了Redis避免数据丢失的AOF方法。这个方法的好处就是每次执行只需要记录操作命令,需要持久化的数据量不是很大。一般而言,只要采用的不是always的持久化策略,就不会对性能造成太大危险。但是也因为记录的是操作命令,而不是实际的数据,所以。用AOF方法进行故障恢复的时候,需要逐一把操作日志都执行一遍。如果操作日志特别多,Redis就会恢复的很缓慢,影响到正常使用。这当然不是理想的结果,那么原创 2020-11-05 21:09:16 · 206 阅读 · 1 评论 -
redis---第四天学习笔记(AOF日志:宕机了,Redis如何避免数据丢失? )
redis—第四天学习笔记(AOF日志:宕机了,Redis如何避免数据丢失? )如果有人问:“你会把Redis用在什么业务场景下?”我想你肯定很大的概率说:“我会把它当做缓存用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。”没错,这确实是Redis的一个普遍使用场景。但是这里也会存在一个不可忽略的问题,就是一旦服务器宕机,内存中的数据将全部丢失!对于上述所说的问题,我们很容易的想到的一个解决方案是,从后台数据库恢复这些数据,但是这种方式会存在两个问题:一是,需原创 2020-10-28 16:29:05 · 316 阅读 · 0 评论 -
Redis-----第三天学习笔记(为什么单线程Redis能这么快?)
Redis-----第三天学习笔记(为什么单线程Redis能这么快?)今天主要来讨论大家都很关心的问题:“为什么单线程的Redis能那么快?”首先我们要先理清一个事实,我们通常说Redis是单线程,**主要是指Redis的网络IO和键值对读写是由一个线程来完成的,这也是Redis对外提供键值存储服务的主要流程。**但Redis的其他功能,比如说持久化、异步删除、集群数据同步等,其实是由额外的线程执行的。所以,严格的来说,Redis并不算是单线程,但是我们一般把Redis称为单线程高性能。我之前一直原创 2020-10-25 11:32:00 · 132 阅读 · 0 评论 -
redis----第二天学习笔记(数据结构:快速的redis有哪些慢操作?)
redis----第二天学习笔记(数据结构:快速的redis有哪些慢操作?)提到Redis,相信大家脑子里马上就会联想到它的“快”,但大家有考虑过Redis的快,快在哪里吗?实际上,这里有一个重要的表现:它接收到一个键值对操作后,能以微妙级别的的速度找到数据,并快速完成操作。数据库的种类有这么多。为什么Redis能有这么突出的表现呢?一方面,这是因为它是内存数据库,所有操作都在内存上完成;内存的访问速度本身就很快。另一方面,这也归功于它的数据结构。这是因为键值对是按一定的数据结构来组织的,操作键值对原创 2020-10-21 22:18:09 · 170 阅读 · 0 评论 -
redis----第一天学习笔记(基本架构:一个键值数据库包含什么)
redis----第一天学习笔记(基本架构:一个键值数据库包含什么)Redis是典型的键值数据库,今天主要是学习构建一个简单的键值数据库。如果想我们想要深入了解redis,就必须要对他的总体架构和关键模块有一个全局的认知,然后再深入到具体的技术点,简单来说就是建立一种“系统观”。今天主要是通过构造一个简单的键值数据库,并通过剖析这个简单的键值数据库,来迅速抓住学习和调优Redis的关键。我把这个简单的键值数据库称为SimpleKV。(这个与Github上的SimpleKV不是一个项目,我们说原创 2020-10-19 13:56:04 · 292 阅读 · 1 评论