自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 树的基本概念及二叉树

树是一种的数据结构,存储具有“一对多”关系特点元素的一种数据结构。例如:组织架构、图书目录、商品种类、热点搜索词等。如图所示就是一个 树 ,对数据A来说,和数据C、F有关系;对于数据F来说,和数据H、G有关系。这就是“一对多”的关系。将具有“一对多”关系的集合中的数据元素按照树的形式进行存储,整个存储形状在逻辑结构上看,类似于实际生活中倒着的树,所以称这种数据的存储结构称为“树”。

2023-10-08 09:44:52 250

原创 计算机网络常见面试题

流量控制是为了控制发送方的发送速率,保证接收方来得及接收。TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送的速率,防止包丢失,从而实现流量控制。TCP使用的流量控制协议是可变大小的滑动窗口协议(即TCP利用滑动窗口实现流量控制滑动窗口是TCP协议用于实现流量控制的一种机制。发送发和接收方分别维护各自的缓冲区,这个缓冲区就是窗口。发送发的窗口大小由接收方的TCP首部的窗口字段决定。

2023-09-27 16:40:38 490

原创 线性表(1)

/单向链表的节点定义E item;//元素值//后继节点(指针域)

2023-09-26 19:34:02 141

原创 JVM内存模型(JMM)

Java程序把内存控制权利交给JVM虚拟机,一旦出现内存泄漏和溢出方法的问题,如果不了解虚拟机是怎样使用内存的,那么排查错误将会是一个非常艰巨的任务,所以我们就需要来了解一下JVM内存模型。

2023-09-15 20:01:45 321

原创 Redis的用法及面试题(删除策略、企业级解决方案)

假设线程1去查询缓存,然后从value中判断出来当前的数据已经过期了,此时线程1去获得互斥锁,那么其他线程会进行阻塞,获得了锁的线程他会开启一个 线程去进行 以前的重构数据 的逻辑,直到新开的线程完成这个逻辑后,才释放锁, 而线程1直接进行返回,假设现在线程3过来访 问,由于线程线程2持有着锁,所以线程3无法获得锁,线程3也直接返回数据,只有等到新开的线程2把 重建数据构建完后,其他线程才能走返回正确的数据。这种方案巧妙在于,异步的构建缓存,缺点在于在构建完缓存之前,返回的都是脏数据。因为锁能实现互斥性。

2023-09-12 21:22:35 420

原创 Redis的用法(持久化)

与RDB相比可以简单描述为改记录数据为记录数据产生的过程AOF的主要作用是 解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。RDB是一个紧凑压缩的二进制文件,存储效率较高 RDB内部存储的是redis在某个时间点的数据快照,非常适合用于数据备份,全量复制等场景 RDB恢复数据的速度要比AOF快很多 RDB节省磁盘空间。每秒将缓冲区中的指令同步到AOF文件中,数据准确性较高,性能较高在系统突然宕机的情况下丢失1秒内的数据。Fork的作用是复制一个与当前进程一样的进程。

2023-09-11 18:47:00 60

原创 Redis的基本概念与基础用法(1)

其中Redis就是NOSQL中的一个主流产品,它是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。

2023-09-11 17:41:43 412

原创 RocketMQ的架构及概念

异步传输解耦那什么是消息中间键呢?消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。对于消息中间件,常见的角色大致也有Producer(生产者)、Consumer(消费者)RocketMQ就是一种中间键 ,如下图所示为MQ的架构:在上图中整体可以分为4个角色,分别是:NameServer, Broker, Producer, Consumer。

2023-09-08 14:30:13 239

原创 Spring MVC的执行流程

所以,MVC是一种设计模式,而Spring MVC是一款基于MVC设计模式思想实现的MVC框架,属于Spring技术栈的一部分。MVC模式是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将请求处理控制、业务逻辑、数据封装、数据显示等流程节点分离的思想来组织代码。首先在上图中,DispatcherServlet是MVC中的请求控制器,它其实就相当于一个酒店的大堂经理,它的主要作用在于:判断用户发送的请求路径符不符合要求。

2023-09-08 10:22:47 242

原创 Spring框架中Bean的生命周期

Bean 实例化的基本流程: 三级缓存是什么呢?三级缓存就是用来解决循环依赖问题的方法,其中:一级缓存是:存储完整的Bean实例的容器二级缓存是:缓存半成品对象,且当前对象已经被其他对象引用了三级缓存是:缓存半成品对象,但是没有被别的对象引用的通过Aware类型的接口,可以让Spring框架为当前Bean注入相应的内容。就例如:如果Bean实现BeanNameAware接口,会调用它实现类的setBeanName()方法,注入Bean的名字如果Bean实现BeanFactoryAware接口,会调用它实现

2023-09-05 19:39:43 32

原创 Linux的基本用法(2)

基本命令——文件管理

2023-09-05 18:51:02 24

原创 Linux的基本用法(1)

Linux的终端就是控制台,是用户与内核交互的平台,通过输入指令来控制内核完成任务操作。

2023-08-28 13:12:15 32

原创 AES算法的CBC和ECB两种工作模式

AES加密算法是一种传统的对称加密算法(即用一个密钥进行加密和解密),其比较常见的工作模式有ECB和CBC。注意:AES的密钥长度为128/192/256位。填充模式有:NoPadding/PKCS5Padding/PKCS7Padding/.....等。

2023-07-20 19:21:49 2599

原创 线程池的执行流程

要了解线程池的执行流程,我们首先就要知道什么是线程池?线程池就是里面含有若干线程的容器,没有任务时,线程池里面的这些线程都处于等待空闲状态。如果有新的线程任务,就分配一个空闲线程执行任务。如果所有的线程都处于忙碌状态,线程池就会创建一个新的线程,亦或者是将任务放到工作队列中等待。

2023-07-19 22:34:53 2218

原创 线程的实现方式

操作系统运行一个程序,即是一个进程从创建,运行到消亡的过程。但是某些程序内部还需要同时执行多个子任务。例如:我们在使用QQ发消息的时候也可以接收消息,我们把子任务称为线程,线程就是把进程划分为更小的运行单位了。

2023-07-19 20:46:13 107

原创 ReentrantLock与synchronized的区别

上述代码中用Cal.obj实例作为锁,两个线程h1与h2在执行各自的代码时必须先获得锁,才能进入代码块进行,同时在synchronized语句结束后会自动释放锁,这样对Cal.count变量进行读写就不可能同时进行,那么上述代码无论运行多少次结果都应该是0,但是这样虽然解决了多线程同步访问共享变量的正确性问题,但是它的性能同时也发生了下降(一旦线程执行到add()方法内部,就说明add()方法已经获得了当前实例的this锁,当它执行到在内部调用dec()方法时,也需要获取this锁,因为。

2023-07-18 21:25:45 77 1

原创 CopyOnWriteArrayList核心源码阅读

是一种用于集合的并发访问的优化策略。基本思想是:当我们往一个集合容器中写入元素时(添加、修改、删除),并。:实现对CopyOnWrite集合容器写入操作时的线程安全(直接在集合容器中写入,而是先将当前集合容器进行Copy,,然后新的容器里写入元素,写入操作完成之后,再将。允许多个线程并发读取,但只能有一个线程写入。),但同时并不影响进行并发的读取操作。使用ReentrantLock实现。原容器的引用指向新的容器。

2023-07-18 18:49:43 74 1

原创 Java反射总结

就是把java类中的各个组成部分映射成相应的java类。(简单来说,反射机制指的是程序在运行时能够获取自身的信息)。Java反射机制主要提供了以下功能,这些功能都位于 java.lang.reflect包。

2023-07-14 00:06:32 92 1

原创 哈希算法总结

哈希算法又被称为摘要算法,它的作用是:对任意一组输入数据进行计算,得到一个的输出摘要哈希算法的目的:为了验证原始数据是否被篡改。哈希算法最重要的特点是:相同的输入一定得到相同的输出不同的输入大概率得到不同的输出那么为什么两个不同的输入大概率得到不同的输出,难道两个不同的输入还会得到相同的输出吗?

2023-07-10 19:34:45 122 1

原创 从Java走入FTP协议

要连接FTP服务器首先要知道端口号与用户名密码。首先进入Ftpconsole.exe。在这里我们就可以看见端口号和主机号。点击小人创建用户名和密码。

2023-07-09 16:55:47 110 1

原创 如何用JavaMail完成各类邮件的发送

Email就是电子邮件,电子邮件的收发在我们日常生活中也比较常用,我们常用的邮件软件有:网易邮箱、QQ邮箱、Foxmail等都可以用来收发邮件,当然了java程序也可以收发邮件,接下来就让我们来看一看如何用JavaMail完成各类邮件的发送。那么我们先来看一下电子邮件的发送过程:电子邮件由用户电脑的电子邮箱发送至邮件服务器上,经过若干邮件服务器的中转,最终到达对方邮件服务器上,收件方就可以用软件接收邮件了。如图所示:我们要用Java程序来发送邮件就是要编写邮件发送方的邮箱,并将邮件发送到邮件服务器上。

2023-07-08 19:25:09 706

原创 HashMap的数据结构

在JDK1.7中HashMap基本数据结构是:Node[]数组+单向链表在JDK1.8中HashMap基本的数据结构是:Node[]数组+单向链表+红黑树关键参数:table——保存KV键值对的数组每一个Node对象都要有一个hash,用这个hash计算这个对象在数组的什么位置但是可能会存在两个Node对象hash值相同的情况,在这种情况下两个Node对象要存到一个位置上,这时就会形成一个链表(在相同的位置上如果要存放若干个Node,Node和Node之间就会形成一个链表);

2023-05-21 12:14:40 85

原创 LinkedList源代码阅读

如果链表不是空链表,则之前的尾结点的next指向新结点,新结点为最后一个,即为新的尾结点所以next指向空。如果链表不是空链表,则之前的尾结点的next指向新结点,新结点为最后一个,即为新的尾结点所以next指向空。如果链表的尾结点为空即这个链表为一个空链表,那么新结点就是这个链表的头结点,如果链表的尾结点为空即这个链表为一个空链表,那么新结点就是这个链表的头结点,如果链表为空,抛出异常,如果链表不为空,直接返回头结点的item。f为原来链表的头结点,新结点的prev指向空,next指向f,

2023-04-26 01:39:38 71

原创 ArrayList扩容方式的理解

集合就是给我们一种更丰富的更灵活的对于数据的存储和操作的一种形式,ArrayList内部就是根据数组来存储的,我们知道数组的存储是受长度限制的,但是我们永远不用关心ArrayList内部数组的长度,因为它会自己来动态的维护整个数组中的容量的大小,也就是我们常说的扩容。

2023-04-25 21:01:36 108

原创 接口的基本概念及应用

接口就相当于一个规范,就好比为“校规校纪”,这只是一个规定,要人去具体实现的,人要按照规范做了,规范才有意义,如果规范颁布出来没有人去执行,那就没有一点意义。同理,我写了一个接口定义出了很多方法只有描述,没有实现,如果接口没有子类去实现它的话,那它就没有意义,就如同抽象类一样,需要一个具体的类去实现的。

2022-10-22 13:57:49 290

原创 原型与原型链

所有函数都有原型函数

2022-08-14 19:59:18 306 3

原创 函数节流与函数防抖

今天我们来学习函数节流与函数防抖,那为什么要使用函数节流与函数防抖呢?因为某些代码会在没有间断的情况下连续重复执行(例如:滚动条事件,只要滚动条稍稍一变化,那代码就会执行一次) ,这样就会导致效率非常低,为了提高效率就要控制某个函数在一定时间内执行的次数,这就是函数节流与函数防抖的本质。...

2022-08-07 23:50:34 627

原创 JS中常用的数组方法(补充)

代码】JS中常用的数组方法(补充)

2022-08-07 18:59:42 177

原创 JS中的数组方法和循环

JS中的数组方法和循环

2022-07-31 21:58:37 805

原创 炎炎夏日打造一个属于自己的“便携小空调”吧

好了,以上就是用web制作的“便携小空调”了,一起来试试吧!

2022-07-23 16:04:52 1779

原创 常用css样式

行内样式表、内部样式表、外部样式表。

2022-07-20 20:29:19 529

原创 常用的html标签及其属性

之后之前)(5)...~~...是标明文章、作品等内容的简短语句。(3)...文档标题(放在...

2022-07-16 18:00:26 771 4

空空如也

空空如也

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

TA关注的人

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