自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多线程的有关知识,你一定要懂!!!

blocked:阻塞状态,当用户进入runnable以后,此时没有多余的锁给线程调用,线程就会进入阻塞状态,这个状态相当于是一个阻塞队列,线程在这里排队获取锁进入到runnable中去。wait就是让当前线程释放锁,join就是让当前释放锁,并且将这把锁交给join的线程,等他运行完毕再继续自己的线程。锁是存在于我们要获取到的对象身上的,假如我们的线程A获取到了对象身上的锁,我们直接使用对象.wait()。这篇文章深刻的解析了wait和join的区别,其中有句话,是我们一定要掌握的。

2024-04-17 16:01:37 961 1

原创 关于MVCC你一定要知道的面试知识点!!!

MVCC的意思是多版本控制,目的是为了解决高并发带来数据读取问题。

2024-04-08 15:29:58 1054

原创 面试中可能问到的几种树结构(二叉树,平衡二叉树,红黑树,B树和B+树)

B树的出现是为了弥补不同的存储级别之间的访问速度上的巨大差异,实现高效的 I/O。平衡二叉树的查找效率是非常高的,并可以通过降低树的深度来提高查找的效率。但是当数据量非常大,树的存储的元素数量是有限的,这样会导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下。B+树的内部结点并没有指向关键字具体信息的指针。B树在提高了IO性能的同时并没有解决元素遍历的我效率低下的问题,正是为了解决这个问题,B+树应用而生。补充:B树的范围查找用的是中序遍历,而B+树用的是在链表上遍历。

2024-03-16 16:46:04 954 1

原创 面试必备!Innodb的四大特性,你必须得会!

我们都知道mysql的索引是根据B+树进行查询的,B+树的数据都i是放在了叶子节点上,而热点数据的查询占据我们数据库请求中的很大一部分,所以其实我们在热点数据上只需要做到一个哈希索引,直接找到那个数据所在的叶子节点,这样节省了每次查询都从第一个叶子节点开始查的时间。它在数据库中会新建一张共享表空间,innodb先把数据写到了缓冲池,缓冲池先写数据到这张共享表空间,然后再写入文件,要是写到一半寄了,innodb从共享表空间拿剩下一半的数据。总结:innodb四个特性,邻接表刷新,双写,插入缓冲,哈希索引。

2024-03-15 22:42:53 416 1

原创 SSL是什么?为什么要有它?你想知道的都在这里!

握手协议是客户机和服务器用SSL连接通信时使用的个子协议,握手协议包括客户机与服务器之间的一系列消息。SSL中复杂的协议是握手协议。每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;SSL有三种协议模式:握手协议(Handshake protocol,记录协议(Record protocol,警报协议(Alert protocol)。SSL是一种安全套接层协议,是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密。

2024-03-14 21:00:58 393 2

原创 跨域的三种解决方案

前端解决直接通过scrip标签进行访问,就不算ajxa访问模式,算是跨域解决了。后端通过跨域配置来放行,在spring中进行如下配置。3.通过nignx服务器来进行访问,原理如下图。端口不同,主机不同,协议不同。2.后端配置跨域放行。

2024-03-12 21:18:47 363

原创 序列化和反序列化

选择这种信息格式需要考虑四个因素,第一是序列化以后数据的大小(影响传输性能),第二是序列化的性能(影响业务的性能),第三个是这种方式是否支持跨平台跨语言,第四个是技术的成熟度(通过调研现如今大部分公司的使用频率)。首先为什么我们需要序列化,在网络上进行不同应用间的数据传输的时候,我们需要把本地jvm里面的数据转化为数据流,以便于实现存储和传输。为了方便于通讯双方识别,所以我们会把数据流变成一个通用的信息格式,比如json,xml或者其他格式,然后转化成数据流传输。(可实现跨平台跨语言)。

2024-02-18 21:16:22 494

原创 五种io模型他们的区别,netty的初步认识以及基础的启动样例代码

然后niosocketchannel会发送到工作线程池的selector,通过selector分发到不同的Handler进行读取或者写入的io操作。非阻塞io就是线程发送“我已经准备好”这个信号前,可以去干其他事情,但是在发送了这个信号以后其他事情就不能干了。每次一个请求开一个线程,线程需要空间,当线程变多了空间会特别大,并且并发大了以后网络吞吐量太大了。以上是一个大概区别,五种io模型主要区别就在于io进行的时候,阻塞的状态和时间。根据netty工作图实现代码如下。引入了线程池,但也有问题。

2024-02-17 19:50:49 396

原创 Cookie,Session,Token,JWT的区别

每个数据所需要的签名都需要一个签名算法,而签名算法每个人可能不同,所以JWT就是一个签名算法的标准,第一部分载体包括Hash算法和token类型第二部分载体包含会话数据,第三部分是签名数据(jwt是可以解密的所以敏感信息不能放在里面)。为了解决安全问题可以同时发送数据签名,如果不想让服务的服务器保存太多数据,可以保存一个唯一key值sessionid,而客户端保存签名。

2024-02-16 15:31:53 301 2

空空如也

空空如也

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

TA关注的人

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