- 博客(32)
- 收藏
- 关注
原创 计算机网络常见面试题
一、谈一谈对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
1168
原创 JVM类加载机制
通常,我们编写的java源代码会被JDK的编译器编译成字节码文件,再由JVM将字节码文件翻译成计算机读的懂得机器码进行执行;因为不同平台使用的JVM不一样,所以不同的JVM会把相同的字节码文件翻译成不同操作系统认识的机器码,这样就实现了跨平台;
2023-09-11 18:46:02
1494
2
原创 RocketMQ(消息中间件)
一、为什么会出现消息中间件?二、消息中间件是干嘛的?三、应用解耦四、流量削峰五、异步处理 1.串行方式: 2.并行方式: 3.引入消息队列:六、RocketMQ的架构及概念
2023-09-01 22:55:06
479
原创 TCP与UDP的区别(什么是三次握手和四次挥手)
TCP与UDP的区别(什么是三次握手和四次挥手)TCP和UDP是什么为什么是三次握手而不是两次握手 ?在不可靠信道上建立可靠连接会产生什么问题呢?在不可靠信道上建立可靠连接会产生什么问题呢?
2023-08-28 16:46:10
438
原创 Spring事务的隔离级别
在学习Spring事务隔离级别前我们先了解一下什么是脏读幻读不可重复读。DEFAULT(默认的事务隔离级别)READ_UNCOMMITTED(读未提交)READ_COMMITTED(读已提交)REPEATABLE_READ(可重复读)SERIALIZABLE(串行化)
2023-08-27 22:13:33
375
原创 Redis持久化机制
如果数据不能丢失,RDB和AOF混用。如果只作为缓存使用,可以承受几分钟的数据丢失的话,可以只使用RDB。如果只使用AOF,优先使用everysec的写回策略。
2023-08-24 19:46:51
202
原创 Redis(缓存预热,缓存雪崩,缓存击穿,缓存穿透)
当我们客户端访问不存在的数据时,先请求redis,但是此时redis中没有数据, 此时会访问到数据库,但是数据库中也没有数据,这个数据穿透了缓存,直击数据库,我们都知道数据 库能够承载的并发不如redis这么高,如果大量的请求同时过来访问这种不存在的数据,这些请求就都会访问到数据库,简单的解决方案就是哪怕这个数据在数据库中也不存在,我们也把这个数据当做null存入到redis 中去,这样,下次用户过来访问这个不存在的数据,那么在redis中也能找到这个数据就不会进入到缓存 了。缓存预热是一样的道理。
2023-08-23 19:35:07
1443
1
原创 Lambda表达式
Lambda 表达式本质是一个匿名函数,用于把函数作为参数,传入方法中,实现函数式编程风格。使用 Lambda 表达式可以使代码变的更加简洁紧凑。
2023-08-22 21:24:45
453
原创 ThreadLocal
可以理解为线程的口袋,口袋中存放当前线程有关的数据。ThreadLocal 被称为线程局部变量,用于在线程中保存数据。由于在 ThreadLocal 中保存的数据仅属于当前线程,所以该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal利用线程中的ThreadLocalMap来存储数据。一般都会将ThreadLocal声明成一个静态字段,同时初始化@OverridethreadLocal.set("卧龙");show();}, "线程1");
2023-08-21 21:46:04
145
原创 synchronized实现原理
这样一段简单的源代码会被java编译成字节码文件,字节码文件由0和1的二进制数组成,这样的文件可读性较低,java为我们提供了一套助记符。所以上面的源文件就可以被javap反编译成下面的由助记符代替的字节码文件。monitorenter和monitorexit指令实现了synchronized代码块中的内容。monitor叫做监视器,线程通过执行monitorenter尝试获取monitor的所有权,当monitor被占用时就会处于锁定状态。Owner:存放获取monitor所有权的线程。
2023-08-14 20:28:05
69
原创 spring-IOC/DI(通俗易懂版)
spring是一个一体式轻量级开源框架,核心思想是IOC(控制反转)和AOP(面向切片编程)。为java应用开发提供了组件管理服,用于各组件之间的解耦。简化了javaEE第三方中间件的使用。spring框架包括:IOC容器,Validation数据校验,AOP面向切面编程,Transactions事务管理,springMVC,springJDBC,以及各类javaEE中间件技术的集成。
2023-08-02 21:13:49
191
原创 CopyOnWriteArrayList核心源码阅读
ArrayList我们都知道是List接口下的一个集合,那CopyOnWriteArrayList就是线程安全的ArrayList。它的使用和ArrayList完全相同,那它是怎么实现线程安全的呢?
2023-07-18 19:17:24
148
1
原创 ReentrantLock与Synchronized的区别
1,修饰实例方法: synchronized 修饰实例方法, 则用到的锁,默认为this 当前方法调用对象;2,修饰静态方法: synchronized 修饰静态方法, 则其所用的锁,默认为Class 对象;3 ,修饰代码块: synchronized 修饰代码块, 则其所用的锁,是某个指定 Java 对象,例如Object obj;
2023-07-16 17:19:19
228
1
原创 AES算法的CBC和EBC两种工作模式
其实就是在ECB模式的基础上加了一个随机数作为 IV 参数,这样对于同一份明文,每次生成的密文都不同。每次运行结果输出的数组也会不一样。ECB 模式是最简单的 AES 加密模式,这种一对一的加密方式会导致安全性降低。更好应该用CBC模式。需要一个固定长度的密钥(128位(bit),16个字节(byte)),固定的明文会生成固定的密文。对称加密算法就是传统的用一个密钥进行加密和解密。两种常见的工作模式ECB,CBC。接收密码和明文然后输出密文。接收密码和密文然后输出明文。
2023-07-15 19:17:47
369
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
822
1
原创 《Java反射总结》-(很重要)
Java反射是指在运行时获取一个类的信息并操作该类的成员(字段、方法、构造函数等)的能力。这里我们就要谈谈java的运行期和编译期指的是什么:1.编译期:将磁盘里的java源文件编译成字节码文件,编译期只是做了一些翻译功能,并没 有把代码放在内存中运行起来。
2023-07-12 20:36:33
232
1
原创 FTP(文件传输协议)
FTP,是一种处于应用层的用于文件传输的协议。是基于TCP协议的应用层协议,用于在网络上传输文件。该协议使用的端口号为20和21,其中20是数据端口,21是命令端口。
2023-07-08 17:54:03
198
原创 JavaMail-利用Java完成邮件发送(包括附件)
抛开电子邮件不谈,日常生活中我们想要发送信件,邮件的时候需要经历这些步骤:首先,我们的家门口都有一个信箱,我们将贴好邮票的信件放入信箱,这时候邮局看到邮箱中的信件之后,盖上出发的印章发往目的地的邮局,目的地的邮局收到信件之后,再盖上一个到达的印章发往目的地的信箱里面。通过上面所说的,我们就可以将电子邮件的发送过程联想出来,
2023-07-08 16:47:10
2134
原创 ArrayList扩容方式的理解
当前数组长度小于最小容量的长度时(前期容量是10,当添加第11个元素时就就扩容)ArrayList 扩容的真正计算是在grow()里面,新数组大小是旧数组的1.5倍,如果扩容后的新数组大小还是小于最小容量,那新数组的大小就是最小容量的大小,后面会调用一个Arrays.copyof方法,这个方法是真正实现扩容的步骤。如果新容量(newCapacity)比指定的容量(minCapacity)小,那就将指定容量作为新容量,否则新容量就是当前容量的1.5倍。最大整数为2的31次方-1,最大数组容量为最大整数-8。
2023-04-23 18:56:01
203
原创 LinkedList源代码阅读
LinkedList的底层是基于双向链表实现的,所以插入和删除效率较高,但是不易查找(因为链表在内存中存放的地址是不连续的)。LInkedList中数据的个数。头节点。尾节点构造方法:一个无参构造方法,一个有参构造方法。有参构造方法传入一个集合,在这个方法体内部可以看到先调用了无参构造方法,然后使用addAll()方法将集合的数据添加到链表中。
2023-04-23 11:33:46
94
原创 Java程序结构
一.基本结构1.class关键字2.main方法3.输出语句4.转义符变量和数据类型什么是变量变量的定义定义变量基本数据类型引用类型Math类日期时间类
2022-11-06 22:08:59
6120
5
原创 微信小程序全局生命周期和页面生命周期
全局配置:小程序根目录下的app.json文件用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。以下是一个包含了部分常用配置选项的app.json。
2022-08-22 09:11:27
141
原创 js原型和原型链以及原型继承
每个函数都有一个prototype属性,也就是显示原型,默认指向一个object空对象。原型对象中有一个属性constructor,它是指向函数对象。可以给原型对象添加方法或者属性。利用原型及原型链实现继承【面向对象】原型对象就相当于一个。...
2022-08-11 18:34:48
231
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人