自定义博客皮肤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)
  • 收藏
  • 关注

原创 git出现“无法保存未提交的更改”错误

git出现“无法保存未提交的更改”错误在IDEA中更新git项目出现此错误。

2023-12-15 14:42:34 236

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

一、谈一谈对OSI七层模型和TCP/IP四层模型的理解?答:OSI七层模型主要分为:TCP/IP四层协议:二、谈谈TCP协议的3次握手过程?三、TCP协议为什么要3次握手?2次,4次不行吗?四、谈谈TCP协议的四次挥手过程?五、什么是流量控制?六、什么是滑动窗口?七、什么是拥塞控制?拥塞控制的四个算法:7.1慢启动7.2拥塞避免7.3拥塞发生重传机制:超时重传:快速重传:7.4快速恢复八、TCP和UDP有什么区别?

2023-09-22 18:04:27 1046

原创 JVM类加载机制

通常,我们编写的java源代码会被JDK的编译器编译成字节码文件,再由JVM将字节码文件翻译成计算机读的懂得机器码进行执行;因为不同平台使用的JVM不一样,所以不同的JVM会把相同的字节码文件翻译成不同操作系统认识的机器码,这样就实现了跨平台;

2023-09-11 18:46:02 1018 2

原创 RocketMQ(消息中间件)

一、为什么会出现消息中间件?二、消息中间件是干嘛的?三、应用解耦四、流量削峰五、异步处理 1.串行方式: 2.并行方式: 3.引入消息队列:六、RocketMQ的架构及概念

2023-09-01 22:55:06 340

原创 TCP与UDP的区别(什么是三次握手和四次挥手)

TCP与UDP的区别(什么是三次握手和四次挥手)TCP和UDP是什么为什么是三次握手而不是两次握手 ?在不可靠信道上建立可靠连接会产生什么问题呢?在不可靠信道上建立可靠连接会产生什么问题呢?

2023-08-28 16:46:10 145

原创 Spring事务的隔离级别

在学习Spring事务隔离级别前我们先了解一下什么是脏读幻读不可重复读。DEFAULT(默认的事务隔离级别)READ_UNCOMMITTED(读未提交)READ_COMMITTED(读已提交)REPEATABLE_READ(可重复读)SERIALIZABLE(串行化)

2023-08-27 22:13:33 324

原创 Redis持久化机制

如果数据不能丢失,RDB和AOF混用。如果只作为缓存使用,可以承受几分钟的数据丢失的话,可以只使用RDB。如果只使用AOF,优先使用everysec的写回策略。

2023-08-24 19:46:51 157

原创 Redis(缓存预热,缓存雪崩,缓存击穿,缓存穿透)

当我们客户端访问不存在的数据时,先请求redis,但是此时redis中没有数据, 此时会访问到数据库,但是数据库中也没有数据,这个数据穿透了缓存,直击数据库,我们都知道数据 库能够承载的并发不如redis这么高,如果大量的请求同时过来访问这种不存在的数据,这些请求就都会访问到数据库,简单的解决方案就是哪怕这个数据在数据库中也不存在,我们也把这个数据当做null存入到redis 中去,这样,下次用户过来访问这个不存在的数据,那么在redis中也能找到这个数据就不会进入到缓存 了。缓存预热是一样的道理。

2023-08-23 19:35:07 1269 1

原创 Lambda表达式

Lambda 表达式本质是一个匿名函数,用于把函数作为参数,传入方法中,实现函数式编程风格。使用 Lambda 表达式可以使代码变的更加简洁紧凑。

2023-08-22 21:24:45 116

原创 ThreadLocal

可以理解为线程的口袋,口袋中存放当前线程有关的数据。ThreadLocal 被称为线程局部变量,用于在线程中保存数据。由于在 ThreadLocal 中保存的数据仅属于当前线程,所以该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal利用线程中的ThreadLocalMap来存储数据。一般都会将ThreadLocal声明成一个静态字段,同时初始化@OverridethreadLocal.set("卧龙");show();}, "线程1");

2023-08-21 21:46:04 109

原创 synchronized实现原理

这样一段简单的源代码会被java编译成字节码文件,字节码文件由0和1的二进制数组成,这样的文件可读性较低,java为我们提供了一套助记符。所以上面的源文件就可以被javap反编译成下面的由助记符代替的字节码文件。monitorenter和monitorexit指令实现了synchronized代码块中的内容。monitor叫做监视器,线程通过执行monitorenter尝试获取monitor的所有权,当monitor被占用时就会处于锁定状态。Owner:存放获取monitor所有权的线程。

2023-08-14 20:28:05 45

原创 spring-IOC/DI(通俗易懂版)

spring是一个一体式轻量级开源框架,核心思想是IOC(控制反转)和AOP(面向切片编程)。为java应用开发提供了组件管理服,用于各组件之间的解耦。简化了javaEE第三方中间件的使用。spring框架包括:IOC容器,Validation数据校验,AOP面向切面编程,Transactions事务管理,springMVC,springJDBC,以及各类javaEE中间件技术的集成。

2023-08-02 21:13:49 68

原创 CopyOnWriteArrayList核心源码阅读

ArrayList我们都知道是List接口下的一个集合,那CopyOnWriteArrayList就是线程安全的ArrayList。它的使用和ArrayList完全相同,那它是怎么实现线程安全的呢?

2023-07-18 19:17:24 114 1

原创 ReentrantLock与Synchronized的区别

1,修饰实例方法: synchronized 修饰实例方法, 则用到的锁,默认为this 当前方法调用对象;2,修饰静态方法: synchronized 修饰静态方法, 则其所用的锁,默认为Class 对象;3 ,修饰代码块: synchronized 修饰代码块, 则其所用的锁,是某个指定 Java 对象,例如Object obj;

2023-07-16 17:19:19 88 1

原创 Java线程池的执行流程

一,什么是线程池二,线程池的优点三,线程池的执行流程(非常重要)四,线程池的配置参数五,线程池的状态

2023-07-16 15:55:58 509 1

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

其实就是在ECB模式的基础上加了一个随机数作为 IV 参数,这样对于同一份明文,每次生成的密文都不同。每次运行结果输出的数组也会不一样。ECB 模式是最简单的 AES 加密模式,这种一对一的加密方式会导致安全性降低。更好应该用CBC模式。需要一个固定长度的密钥(128位(bit),16个字节(byte)),固定的明文会生成固定的密文。对称加密算法就是传统的用一个密钥进行加密和解密。两种常见的工作模式ECB,CBC。接收密码和明文然后输出密文。接收密码和密文然后输出明文。

2023-07-15 19:17:47 210 1

原创 Java多线程基础(线程的四种实现方式)

1,概述:2,进程与线程:2.1,什么是程序2.2,什么是进程2.3,什么是线程2.4,进程与线程的区别2.5,JVM进程3,线程的基本概念4,线程的创建与启动创建方式:5,线程的命名6,线程的休眠7,线程优先级

2023-07-15 17:13:40 520 1

原创 《Java反射总结》-(很重要)

Java反射是指在运行时获取一个类的信息并操作该类的成员(字段、方法、构造函数等)的能力。这里我们就要谈谈java的运行期和编译期指的是什么:1.编译期:将磁盘里的java源文件编译成字节码文件,编译期只是做了一些翻译功能,并没 有把代码放在内存中运行起来。

2023-07-12 20:36:33 111 1

原创 Java哈希算法总结

编码算法URL编码Base64编码哈希算法哈希碰撞常见哈希算法Hmac算法BouncyCastle

2023-07-10 19:14:08 2063 1

原创 FTP(文件传输协议)

FTP,是一种处于应用层的用于文件传输的协议。是基于TCP协议的应用层协议,用于在网络上传输文件。该协议使用的端口号为20和21,其中20是数据端口,21是命令端口。

2023-07-08 17:54:03 118

原创 JavaMail-利用Java完成邮件发送(包括附件)

抛开电子邮件不谈,日常生活中我们想要发送信件,邮件的时候需要经历这些步骤:首先,我们的家门口都有一个信箱,我们将贴好邮票的信件放入信箱,这时候邮局看到邮箱中的信件之后,盖上出发的印章发往目的地的邮局,目的地的邮局收到信件之后,再盖上一个到达的印章发往目的地的信箱里面。通过上面所说的,我们就可以将电子邮件的发送过程联想出来,

2023-07-08 16:47:10 1869

原创 《HashMap的数据结构》

链表转换成树,HashMap的数据结构

2023-05-31 23:31:10 38 1

原创 ArrayList扩容方式的理解

当前数组长度小于最小容量的长度时(前期容量是10,当添加第11个元素时就就扩容)ArrayList 扩容的真正计算是在grow()里面,新数组大小是旧数组的1.5倍,如果扩容后的新数组大小还是小于最小容量,那新数组的大小就是最小容量的大小,后面会调用一个Arrays.copyof方法,这个方法是真正实现扩容的步骤。如果新容量(newCapacity)比指定的容量(minCapacity)小,那就将指定容量作为新容量,否则新容量就是当前容量的1.5倍。最大整数为2的31次方-1,最大数组容量为最大整数-8。

2023-04-23 18:56:01 153

原创 LinkedList源代码阅读

LinkedList的底层是基于双向链表实现的,所以插入和删除效率较高,但是不易查找(因为链表在内存中存放的地址是不连续的)。LInkedList中数据的个数。头节点。尾节点构造方法:一个无参构造方法,一个有参构造方法。有参构造方法传入一个集合,在这个方法体内部可以看到先调用了无参构造方法,然后使用addAll()方法将集合的数据添加到链表中。

2023-04-23 11:33:46 54

原创 Java程序结构

一.基本结构1.class关键字2.main方法3.输出语句4.转义符变量和数据类型什么是变量变量的定义定义变量基本数据类型引用类型Math类日期时间类

2022-11-06 22:08:59 5216 5

原创 微信小程序全局生命周期和页面生命周期

全局配置:小程序根目录下的app.json文件用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。以下是一个包含了部分常用配置选项的app.json。

2022-08-22 09:11:27 102

原创 js原型和原型链以及原型继承

每个函数都有一个prototype属性,也就是显示原型,默认指向一个object空对象。原型对象中有一个属性constructor,它是指向函数对象。可以给原型对象添加方法或者属性。利用原型及原型链实现继承【面向对象】原型对象就相当于一个。...

2022-08-11 18:34:48 120

原创 js函数防抖和函数节流及其他使用场景

js函数防抖,函数节流,onscroll滚动事件

2022-08-02 19:47:26 822 3

原创 JavaScript中的数组方法及循环

循环就是在满足条件的情况下,去不断重复的执行某一个操作。

2022-07-30 10:48:28 516

原创 css样式

css

2022-07-19 23:00:04 745 2

原创 javascript编写红绿灯

javascript编写红绿灯。

2022-07-19 19:29:32 267

原创 常用HTML标签及其属性

常用HTML标签及其属性

2022-07-13 13:46:55 327 1

空空如也

空空如也

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

TA关注的人

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