自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 线程池的执行流程

线程池内部维护了若干个线程,没有任务的时候,这些线程都处于等待空闲状态。如果有新的线程任务,就分配一个空闲线程执行。如果所有线程都处于忙碌状态,线程池会创建一个新线程进行处理或者放入队列(工作队列)中等待。

2023-07-20 01:11:09 2914

原创 输入网址到网页显示的整个过程

收到请求后,根据请求的资源路径查找对应的资源,并进行相关处理;处理完请求后会生成一个HTTP响应,这个响应包括HTTP响应状态码、响应头、响应体;获取到目标服务器的IP地址,会向服务器发起一个TCP连接请求,根据TCP协议建立TCP连接;,生成一个请求报文,请求报文中包括请求方法、协议版本、Web服务器的域名、请求数据等;收到服务器的响应,根据响应头信息解析响应体中的内容,渲染出页面展示给用户。对输入的URL进行解析,将Web服务器的域名解析生成对应的IP地址;六、服务器处理请求并响应。

2023-10-26 19:52:22 94

原创 MySQL索引

哈希索引又称为散列索引,基于哈希表实现,目前仅有MEMORY存储引擎和HEAP存储引擎支持这类索引;中常见的两种索引结构:B+TREE索引和HASH索引;按照逻辑划分:普通索引、唯一索引、主键索引、全文索引;的数据库存储结构,他保存了数据库指定字段的数据位置。按照实际使用划分:单列索引、组合索引。

2023-10-16 18:48:53 66

原创 Spring框架

Spring框架是一款轻量级的开发框架,其核心思想是IOC和AOP,它为Java开发提供了组件管理服务,用于组件之间的解耦以及简化第三方JavaEE中间件技术的使用,是一个基础架构型的开发框架。其中包括:IOC容器、Validation数据校验、AOP面向切面编程、Transactions事务管理、Spring JDBC、Spring MVC框架、以及各类第三方JavaEE中间件技术集成。

2023-10-16 16:05:20 62 1

原创 String为什么是不可变的?

String类中涉及修改字符串内容的方法,并没有直接去修改数组中的内容,而是将修改后的字符串内容通过一个新的数组存入到了一个新的String对象中。String的数据结构是一个final修饰的数组,这个数组一旦被初始化,存入了字符串内容,就不能重新分配空间,这是String不可变的底层原因;

2023-10-12 10:52:31 48

原创 Redis中五种常用的数据类型

Redis自身是一个Map,其中所有的数据都是采用key:value的形式存储,数据类型指的是存储的数据的类型,也就是value部分的类型,key部分永远都是字符串。对链表的两端进行push和pop操作,读取单个或多个元素;字符串的集合,判断是否存在添加、获取、删除;计算交集、并集、差集等;缓存对象、常规计数、分布式锁、共享session信息等。包含有添加、获取、删除单个元素;可以是字符串、整数或浮点数;添加、获取、删除单个元素等;包含字符串的无序集合;

2023-10-11 13:59:27 44 1

原创 JVM垃圾收集器

七种常见的垃圾收集器:Serial收集器、Serial Old收集器、ParNew收集器、Parallel Scavenge收集器、Parallel Old收集器、CMS收集器、G1收集器。的应用场景,都可以优先考虑Parallel Scavenge收集器+Parallel Old收集器这个收集器组合。”算法,运行在Server模式下的虚拟机的首要选择,可以与Serial Old,CMS垃圾收集器一起搭配工作。在它进行垃圾收集工作的时候,必须暂停其他所有的工作线程,直到收集结束。

2023-10-08 11:25:01 35 1

原创 ArrayList和LinkedList有什么区别

4、ArrayList还实现了Serializable接口,这是一个标记接口,内部是空的,表示ArrayList支持序列化;2、ArrayList还实现了RandomAccess接口,这是一个标记接口,内部是空的,表示ArrayList支持。1、ArrayList实现了List接口,继承了AbstractList抽象类,底层是基于动态数组实现的;3、LinkedList也实现了Cloneable接口,这表明LinkedList也支持拷贝;(不需要遍历,通过索引直接访问内存地址);

2023-10-07 19:01:32 53 1

原创 面试题:TCP协议与UDP协议

流量控制的作用:流量控制是为了控制发送方发送速率,保证接收方来得及接收。流量控制的发生:TCP连接的每一方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能接纳的数据。当接收方来不及处理发送方的数据,能提示发送方降低发送速率,防止包丢失,从而实现流量控制。流量控制的实现:利用滑动窗口实现;接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为0,则发送发方不能发送数据。滑动窗口的定义:滑动窗口是TCP协议用于实现流量控制。

2023-09-26 16:31:48 138 1

原创 Java集合简介

在Java中,如果一个Java对象可以在内部持有若干其他Java对象,并对外提供访问接口,我们把这种Java对象的容器称为集合。很显然,Java的数组也可以看作是一种集合。集合和数组的区别:数组初始化后大小不可变,集合可变;数组可以存储基本类型和引用类型,集合只能存储引用类型。

2023-09-14 16:01:03 72 1

原创 JVM虚拟机

来引用类,不会触发此类的加载。(该过程会对数组类进行加载,数组类是一个由虚拟机自动生成的、直接继承自 Object 的子类,其中包含了数组的属性和方法。常量在编译阶段会存入调用类的常量池中,本质上并没有直接引用到定义常量的类,因此不会触发定义常量的类的加载。

2023-09-12 20:12:28 30

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

是一种更安全的加密方式,明文分组后,在加密之前会有一个随机向量IV与之结合,每次加密之前都会产生一个新的随机数序列,这样保证了加密算法的安全性。ECB模式是最简单的AES加密模式,这种一对一的加密方式会导致安全性降低。是一种基础的加密方式,明文被分割成长度相等的块,然后单独一个个加密,一个个输出组成密文,ECB模式只进行了加密。模式是最简单的AES加密模式,它需要一个固定长度的密钥,固定的明文会生成固定的密文。模式,它需要一个随机数作为IV参数,这样对于同一份明文,每次生成的密文都不同。

2023-07-21 00:07:29 1000 1

原创 ReentrantLock与Synchronized的区别

1、用法不同:synchronized 可以用来修饰普通方法、静态方法和代码块,而 ReentrantLock 只能用于代码块。2、获取锁和释放锁不同:synchronized 是自动加锁和释放锁,而 ReentrantLock 需要手动加锁和释放锁。3、锁类型不同:synchronized 是非公平锁,而 ReentrantLock 默认为非公平锁,但它也可以手动被指定为公平锁。4、响应中断不同:ReentrantLock 可以响应中断,解决死锁的问题,而 synchronized 不能响应中断。

2023-07-20 19:36:34 42

原创 线程的四种实现方式

【代码】线程的四种实现方式。

2023-07-19 15:22:44 41

原创 CopyOnWriteArrayList源码解读

Copy-On-Write简称COW,是一种用于集合的并发访问的优化策略。基本思想是:当我们往一个集合容器中写入元素时(添加、修改、删除),并不会直接在集合容器中写入,而是先将当前集合容器进行Copy,复制出一个新的容器,然后新的容器里写入元素,写入操作完成之后,再将原容器的引用指向新的容器。CopyOnWriteArrayList相当于线程安全的ArrayList,内部存储结构采用Object[]数组,线程安全使用ReentrantLock实现,允许多个线程并发读取,但只能有一个线程写入。

2023-07-18 19:55:49 39 1

原创 Java反射机制

概念:反射就是把Java类中的各个组成部分映射成相应的Java类。简单来说,Java反射机制指的是程序在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性。为了更好的学习反射,我们需要了解两个概念:编译期和运行期。把Java代码编译成class文件的过程。编译器只是做了一些翻译功能,并没有把代码放在内存中运行起来,而只是把代码当成文本进行操作。比如:检查语法错误。把编译后的文件交给计算机执行,直到程序运行结束。

2023-07-17 19:55:42 77 1

原创 关于哈希算法的应用

哈希算法(Hash)又称摘要算法(Digest)。它可以对任意一组输入数据进行计算,得到一个固定长度的输出摘要。哈希算法的目的:验证原始数据是否被修改。

2023-07-10 18:58:58 86 1

原创 FTP文件传输协议

1、连接FTP服务器并验证用户名密码。1、连接FTP服务器并验证用户名密码。1、连接FTP服务器并验证用户密码。2、显示当前目录中的所有文件。

2023-07-09 17:52:26 75 1

原创 Java Mail发送邮件

要在电子邮件中携带附件,需要构造一个Multipart对象。一个BodyPart可以添加若干个BodyPart。在邮件中加入可以在HTML邮件中内嵌图片。发送HTML邮件和发送文本文件相似,因为文本当中含有HTML标签,所以需要将。3、最后使用Transport.send()方法发送邮件。2、然后使用MimeMessage创建邮件对象。将一份邮件发送给多人。1、首先创建一个Session会话。

2023-07-09 16:41:09 205 1

原创 LinkedList源代码阅读

LinkedList底层是通过双向链表实现的,也就是first和last两个node元素.

2023-06-02 16:08:38 48

原创 HashMap的数据结构

HashMap的数据结构

2023-05-23 10:42:20 204 1

原创 ArrayList扩容方式的理解

第一种情况,当ArrayList的容量为0时,此时添加元素的话,需要扩容,三种构造方法创建的ArrayList在扩容时略有不同:1.无参构造,创建ArrayList后容量为0,添加第一个元素后,容量变为10,此后若需要扩容,则正常扩容。2.传容量构造,当参数为0时,创建ArrayList后容量为0,添加第一个元素后,容量为1,此时ArrayList是满的,下次添加元素时需正常扩容。

2023-05-02 02:33:52 178 1

空空如也

空空如也

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

TA关注的人

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