自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JVM中类的加载过程(学习分享)

按照 Java 虚拟机规范,从 class 文件到加载到内存中的类,到类卸载出内存为止,它的整个生命周期包括如下 7 个阶段:其中,验证、准备、解析 3 个部分统称为链接(Linking)从程序中类的使用过程看。

2023-08-24 16:41:12 184 1

原创 Redis中的缓存

这里需要注意和缓存击穿的区别,缓存击穿,是指一个key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个屏障上凿开了一个洞。当某个key在过期的瞬间,有大量的请求并发访问,这类数据一般是热点数据,由于缓存过期,会同时访问数据库来查询最新数据,并且回写缓存,会导使数据库瞬间压力过大。

2023-08-20 21:10:15 125 1

原创 Redis的持久化

在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了,再用这个临时文件替换上次持久化好的文件。整个过程中,主进程是不进行任何IO操作的。这就确保了极高的性能。如果需要进行大规模数据的恢复,且对于数据恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加的高效。RDB的缺点是最后一次持久化后的数据可能丢失。

2023-08-12 12:19:08 115 1

原创 三次握手的学习总结

四次连接有点多余,第三次的时候,我们已经互相进行了连接确认但是因为我们无法保证百分百的可靠性。

2023-08-04 11:39:05 252 1

原创 对ThreadLocal的理解

Java官方文档中的描述:ThreadLocal类用来提供线程内部的局部变量。这种变量在多线程环境下访问(通过get和set方法访问)时能保证各个线程的变量相对独立于其他线程内的变量。ThreadLocal实例通常来说都是private static类型的,用于关联线程和线程上下文。我们可以得知ThreadLocal的作用是:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。线程并发:在多线程并发的场景下。

2023-07-29 14:34:29 82 1

原创 Java中的异常处理

在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美客户输入数据的格式问题读取文件是否存在网络是否始终保持通畅等等。异常:指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。异常指的并不是语法错误和逻辑错误。语法错了,编译不通过,不会产生字节码文件,根本不能运行。代码逻辑错误,只是没有得到想要的结果,例如:求a与b的和,你写成了a-b在编写程序时,经常要在可能出现错误的地方加上检测的代码,如进行x/y运算时,要检测分母为0数据为空输入的不是数据而是字符等。

2023-07-21 20:23:00 424 1

原创 Java中的List集合

Collection集合概述是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现创建Collection集合的对象多态的方式具体的实现类ArrayListCollection集合常用方法方法名说明添加元素从集合中移除指定的元素根据条件进行移除清空集合中的元素判断集合中是否存在指定的元素判断集合是否为空集合的长度,也就是集合中元素的个数List集合的概述。

2023-07-14 15:35:35 134 1

原创 Java中的Map集合

Map集合概述interface Map < K , V > K :键的类型;V :值的类型Map集合的特点双列集合,一个键对应一个值键不可以重复,值可以重复Map集合的基本使用//创建集合对象 Map < String , String > map = new HashMap < String , String >();//V put(K key, V value) 将指定的值与该映射中的指定键相关联 map . put("itheima001" , "林青霞");

2023-07-07 13:00:11 154 1

原创 Java中的动态代理

对象觉得自己身上干的事太多的话,可以通过代理来转移部分职责,从而无侵入式地给对象增强其他的功能所谓侵入式修改可以理解为:假设Student里面有一个吃饭的eat方法现在想要在方法中输出吃饭前加入两个功能,如那么直接在eat方法中加入这两个功能就是侵入式修改。

2023-06-28 19:28:11 146 1

原创 Java中的Set集合

两种比较方式小结自然排序: 自定义类实现Comparable接口,重写compareTo方法,根据返回值进行排序比较器排序: 创建TreeSet对象的时候传递Comparator的实现类对象,重写compare方法,根据返回值进行排序在使用的时候,默认使用自然排序,当自然排序不满足现在的需求时,必须使用比较器排序两种方式中关于返回值的规则如果返回值为负数,表示当前存入的元素是较小值,存左边如果返回值为0,表示当前存入的元素跟集合中元素重复了,不存。

2023-05-26 20:35:46 332 1

原创 Java中的反射

专业的说法是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意属性和方法。​ 这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制。

2023-05-17 20:23:54 756 1

原创 JavaScript中的解构赋值

希望大家能够通过本文章,知道解构的语法及分类,以便使用解构简洁语法快速为变量赋值。解构赋值是一种快速为变量赋值的简洁语法,本质上仍然是为变量赋值,分为数组解构、对象解构两大类型。

2023-05-12 16:50:20 161

原创 JavaScript中的this指向问题

this是 JavaScript 中容易让我们搞混的知识点,不同的应用场合this的取值可能会有意想不到的结果,所以在此我们对this默认的取值情况进行归纳和总结。这是我最近学习到的内容,给大家做一个分享,希望能给大家的学习带来帮助。

2023-04-27 21:39:38 98 1

原创 正则表达式介绍

语法示例:“.” : 匹配任何字符。“\d”:任何数字[0-9]的简写;“\D”:任何非数字[^0-9]的简写;“\s”: 空白字符:[ \t\n\x0B\f\r] 的简写“\S”: 非空白字符:[^\s] 的简写“\w”:单词字符:[a-zA-Z_0-9]的简写“\W”:非单词字符:[^\w]代码示例://.表示任意一个字符 System . out . println("你" . matches(".."));

2023-04-22 21:23:51 415 1

原创 Java中的快速排序算法

以0索引的数字为基准数,确定基准数在数组中正确的位置。比基准数小的全部在左边,比基准数大的全部在右边,后面以此类推。参数一: 我们要排序的数组 参数二: 要排序数组的起始索引 参数三: 要排序数组的结束索引。当start和end指向同一个元素的时候,循环结束,表示已经找到了基准数在数组中应存入的位置。此时,基准数归位:就是拿着这个范围的第一个数字,跟start指向的元素进行交换。定义方法,实现快速排序的核心思想,通过递归的方式反复调用方法。利用循环找到要交换的数字,按之前图片中的方法进行搜索。

2023-04-07 21:35:20 1299 1

原创 Java中的查找算法-分块查找的学习分享

例如我们要查询元素number是否在数组arr中,先对其进行分块,要遵循分块的原则,初步使其分成下面四块。(1)先存储四块数据的信息对每一块都创建对象,具体是通过创建数组blockArr存放每一个块对象的信息。正式查找中,调用方法,传递索引表,数组以及要查找的元素,最后打印得出索引值,没有找到则返回-1。有些数据并不是按一定顺序排列的,也不是完全没有顺序的,而是在无序中透露出有序,例如下面的数据。首先确定number在哪一个块中,定义方法得到在索引表中的索引。(3)在块中单独遍历这一数据。

2023-03-31 21:15:31 577

空空如也

空空如也

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

TA关注的人

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