自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NO.21 Redis中AOF和RDB的区别?

由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复数据。redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF持久化(原理是将Reids的操作日志以追加的方式写入文件)。那么这两种持久化方式有什么区别呢,改如何选择呢?

2023-08-25 12:07:13 175

原创 NO.20 MySQL性能优化可以体现在哪些方面

3.多表关联查询时,小表在前,大表在后,先扫小表,扫描快效率较高,再扫描后面的大表,可能只需扫描大表的前 100 行就符合返回条件并 return 了。4.使用 GROUP BY 没有排序的要求时,指定 ORDER BY NULL 禁止排序(group by 默认会排序)。4.针对热点数据引入更为高效的分布数据库:Redis、MongoDB等 缓解MySQL访问压力提升数据的检索性能。根据实际情况修改MySQL配置文件(my.ini/my.cnf)中的默认配置来优化。2.避免出现 select *

2023-08-18 08:33:49 198 1

原创 NO.19 Session、JWT的区别

HTTP 是无状态的协议(对于事务处理没有记忆能力,每次客户端和服务端会话完成时,服务端不会保存任何会话信息):每个请求都是完全独立的,服务端无法确认当前访问者的身份信息,无法分辨上一次的请求发送者和这一次的发送者是不是同一个人。所以服务器与浏览器为了进行会话跟踪(知道是谁在访问我),就必须主动的去维护一个状态,这个状态用于告知服务端前后两个请求是否来自同一浏览器。而这个状态需要通过 cookie 或者 session 去实现。

2023-08-12 18:04:53 239 1

原创 NO.18 分库分表后,id主键处理的几种方式

可以看出,只要处于同一毫秒内,所有的雪花算法id的前42位的值都是一样的,因此在这一毫秒内,能产生的id数量就是 2的10次方✖️2的12次方,大概400w,肯定是够用了,甚至有点多了。接下来的41位是时间戳。精度是毫秒,这个大小大概能表示个69年左右,因为时间戳随着时间流逝肯定是越来越大的,所以这部分决定了生成的id肯定是越来越大的。再接下来的10位是指产生这些雪花算法的工作机器id,这样就可以让每个机器产生的id都具有相应的标识。再接下来的12位,序列号,就是指这个工作机器里生成的递增数字。

2023-08-04 11:23:13 407 1

原创 NO.17 JAVA中创建线程池的五种方法

ThreadPoolExecutor类提供了4种构造方法,可根据需要来自定义一个线程池。

2023-07-28 19:55:02 5780 1

原创 NO.16 Spring中常用注解

备注:其中2,3,4注解的作用和属性与@Component 一模一样,他们三个是Spring框架为我们提供的三层架构使用的注解,使我们对三层对象更加清晰。属性:value --- 用于指定数据的值,它可以使用Spring中的SpEL(也就是Spring中的el表达式)。: 在按照类型注入的基础之上再按照名称注入,它在给类成员注入时要和@Autowired配合使用,但是在给方法参数注入是可以单独使用。属性:value --- 用于指定bean的id。属性:name --- 用于指定bean的id。

2023-07-24 10:20:36 59

原创 NO.15 JVM类加载步骤

上一章我们了解了class文件存储结构,在class文件中描述的各种信息,最终都需要加载到虚拟机中之后才能被运行和使用。而虚拟机是如何加载这些class文件的?虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。

2023-07-23 08:26:50 228

原创 NO.14 请求转发和请求重定向的区别

请求转发(Forward):发生在服务端程序内部,当服务器端收到一个客户端的请求之后,会先将请求,转发给目标地址,再将目标地址返回的结果转发给客户端。而客户端对于这一切毫无感知的,这就好比,张三(客户端)找李四(服务器端)借钱,而李四没钱,于是李四又去王五那借钱,并把钱借给了张三,整个过程中张三只借了一次款,剩下的事情都是李四完成的,这就是请求转发。

2023-07-14 10:22:18 306 1

原创 NO.13 Cookie和Session的区别

web程序是使用HTTP协议传输的,而HTTP协议是无状态的协议,对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。cookie的出现就是为了解决这个问题。第一次登录后服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地,当该用户发送第二次请求的时候,就会自动的把上次请求存储的cookie数据自动的携带给服务器,服务器通过浏览器携带的数据就能判断当前用户是哪个了。

2023-07-07 15:16:45 377 1

原创 NO.12 Vue2和Vue3的区别

vue2:vue2是把数据放入data中,在vue2中定义数据变量是data(){},创建的方法要在methods:{}中。vue3:,vue3就需要使用一个新的setup()方法,此方法在组件初始化构造的时候触发。从vue引入reactive;使用reactive()方法来声明数据为响应性数据;使用setup()方法来返回我们的响应性数据,从而template可以获取这些响应性数据。

2023-06-29 19:19:11 427 2

原创 NO.11 HTTP常见的状态码有哪些?适用场景?

100:客户端在发送POST数据给服务器前,征询服务器情况,看服务器是否处理POST的数据,如果不处理,客户端则不上传POST数据,如果处理,则POST上传数据。307 (临时重定向):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。如果服务器返回此响应,还表示请求者应使用代理。302(临时移动):服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。304:协商缓存,告诉客户端有缓存,直接使用缓存中的数据,返回页面的只有头部信息,是没有内容部分。

2023-05-30 17:45:49 224

原创 NO.10 var、let、const之间的区别

实际上保证的并不是变量的值不得改动,而是变量指向的那个内存地址所保存的数据不得改动。对于复杂类型的数据,变量指向的内存地址,保存的只是一个指向实际数据的指针,,我们能够对一个变量进行多次声明,后面声明的变量会覆盖前面的变量声明。对于简单类型的数据,值就保存在变量指向的那个内存地址,因此等同于常量。不存在变量提升,即它们所声明的变量一定要在声明后使用,否则报错。声明的变量存在变量提升,即变量可以在声明之前调用,值为。声明一个只读的常量,一旦声明,常量的值就不能改变。声明的变量既是全局变量,也是顶层变量。

2023-04-19 19:18:42 208

原创 NO.9 JavaScript中“==”和“===”的区别

全等操作符由 3 个等于号( === )表示,只有两个操作数在不转换的前提下相等才返回。如果一个操作数是字符串,另一个操作数是数值,则尝试将字符串转换为数值,再比较是否相等。的情况下,我们可以使用相等操作符(==),其他情况建议一律使用全等操作符(===)等于操作符(==)在比较中会先进行类型转换,再确定操作数是否相等。相等操作符(==)会做类型转换,再进行值的比较,全等运算符不会做类型转换。等于操作符用两个等于号( == )表示,如果操作数相等,则会返回。比较,相等操作符(==)为。

2023-04-14 11:19:23 248

原创 NO.8 JavaScript中的数据类型及存储上的差别

在JavaScript基本类型引用类型两种类型的区别是:存储位置不同。

2023-04-06 18:51:10 200

原创 NO.7 Java容器详细解析

1):数组是将数字和对象联系起来,它保存明确的对象,查询对象时候不需要对查询结果进行转换,它可以是多维的,可以保存基本类型的数据,但是数组一旦生成,其容量不能改变。所以数组是不可以直接删除和添加元素。2):Collection保存单一的元素,而Map保存相关联的值键对,有了Java泛型,可以指定容器存放对象类型,不会将错误类型的对象放在容器中,取元素时候也不需要转型。而且Collection和Map都可以自动调整其尺寸。容器不可以持有基本类型。

2023-03-30 16:42:32 309

原创 NO.6 常见字符集

字符是各种文字和符号的统称,包括各个国家文字、标点符号、表情、数字等等。就是一系列字符的集合。字符集的种类较多,每个字符集可以表示的字符范围通常不同,就比如说有些字符集是无法表示汉字的。我们要将这些字符和二级制的数据一一对应起来,比如说字符“a”对应“01100001”,反之,“01100001”对应 “a”。我们将字符对应二进制数据的过程称为"",反之,二进制数据解析成字符的过程称为“

2023-03-23 18:16:25 243

原创 NO.5 获得一个类的类对象的四种方式

已知一个类的全类名,且该类在类路径下, 可通过Class类的静态方 法forName()获取,可能抛出ClassNotFoundException。该方法需要传入一个字符串参数,该值是某个类的全限定名(即完整的包.类型名),该方法适用于除了数组以外的任意引用数据类型;这个方法在 java.lang.Object 类型中声明的,可以获取该对象的运行时类型的 Class 对象;:这个类型可以在编译期间未知,这个类名称可以在代码中出现,也可以配置在配置文件中,或键盘输入等方式来指定。

2023-03-15 19:07:59 1344

原创 NO.4 Statement和PreparedStatement的区别

Statement和PreparedStatement的区别

2023-03-07 16:42:37 240

原创 NO.3 Array和ArrayList的比较

(注: >>1:右移1位,相当于除以2,例如10>>1 得到的就是5)但由于源码里(不再分析,这里简要略过)传过来的minCapcatiy的值是size+1,能够实现grow方法调用就肯定是(size+1)>elementData.length的情况,所以size就是初始最大容量或上一次扩容后达到的最大容量,所以才会进行扩容。

2023-02-22 21:52:14 431

原创 NO.2 Java实现单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

2023-02-15 20:33:14 273

原创 NO.1 String、StringBuilder、StringBuffer的区别

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。final 关键字修饰的类不能被继承,修饰的方法不能被重写,修饰的变量是基本类型则初始化后不能被改变,修饰的变量是引用类型初始化后不能再指向其它的对象。为了应对经常性的字符串相关的操作,就需要使用Java提供的其他两个操作字符串的类——需要注意的是,String的值是不可变的,这就导致每次对String的操作都会生成。

2023-02-08 22:56:57 235 1

空空如也

空空如也

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

TA关注的人

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