自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux的目录结构

proc:proc 是 Processes (进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。/dev:dev 是 Device (设备) 的缩写,该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。/home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。

2023-11-06 11:18:56 54

原创 React Hooks之useState

在这个示列中,count是可渲染的数据,setCount用于修改count的数据。根据命名规则,通常会在修改数据的方法添加set前缀,列如 [age,setAge]一般来说,在函数退出后变量就会”消失”,而 state 中的变量会被 React 保留,并且这个state可以如同变量一样被声明多次,这个hook可以在函数式组件中定义和更新状态(或者说是数据),它的返回是一个数组,第一个元素是状态变量,第二个元素是更新状态的函数。当调用更新状态的函数时,React会重新渲染函数组件,并使用最新的状态值。

2023-09-20 15:44:38 69

原创 React Hooks之useEffect

useEffect在学习useEffec之前,我们可能需要了解一下什么是副作用副作用React组件有部分逻辑都可以直接编写到组件的函数体中的,像是对数组调用filter、map等方法,像是判断某个组件是否显示等。但是有一部分逻辑如果直接写在函数体中,会影响到组件的渲染,这部分会产生“副作用”的代码,是一定不能直接写在函数体中。例如:如果直接将setState的逻辑编写到了组件之中,这样就不停的更新状态,所以在状态更新后就会导致组件不断的循环渲染,直至调用次数过多内存溢出。基于以上,就可以

2023-09-20 15:43:56 82

原创 LinkList 对比ArrayList的区别和优势

linkList头尾增删快,查询快,中间都慢,因为需要next一步步找,linkList占用内存大,因为是有Node对象,node又分为item元素,next下一个元素地址,prev上一个元素。linkList和ArrayList区别为 是否实现了一个RandomAccess接口,实现则直接get索引,反之调用Iterator 的list.iterator的next获取下一个元素。arrayList头部增删慢,应为需要复制移动元素,但尾部增删快,可以直接定位到最后一个索引;头中尾查询都快可以根据索引。

2023-08-31 12:15:28 65

原创 详解java的HashMap底层原理

HashMap底层采用数组+链表/红黑树来存储键值对,会根据Key的哈希码来计算键值对落在数组的哪个下标。如果不同的哈希码算出相同的下标,就会导致哈希碰撞,影响HashMap的性能。HashMap要做的,就是尽量避免哈希碰撞,所以加入了扰动函数。扰动函数会将哈希码的高16位与低16位做异或运算,让高位也参与到下标的计算过程中来,从而影响最终下标的计算结果,减少哈希碰撞的概率。

2023-08-31 12:12:51 98

原创 java中的语法糖.编译器优化

try-with-resources语句是指一种自动管理资源的语句,它可以在try块中声明一个或多个实现了AutoCloseable接口的资源对象,并在try块结束后自动调用它们的close方法来释放资源。RTTI,即Run-Time Type Identification运行时类型认定,通过运行时类型信息程序能够使用父类的指针或引用来检查这些指针或引用所指的对象的实际派生类型,是多态实现的技术基础。枚举是一种特殊的类,它可以定义一组固定的常量,每个常量都是枚举类的一个实例。多态的实现原理是RTTI。

2023-07-13 21:47:28 63 1

原创 String和StringBuffer有什么区别?

StringTable是一个类HashMap的结构,相同的String会复用StringTable的引用,改变后将创建新的字符,旧的字符将被销毁,不可变更符合Hahs的key。但String并不属于八大基本类型,属于对象类型,在创建的时候通常并不使用new关键字来创建,通常为String s= ”word “,但也使用 String s = new String(”hello“)来创建一个存在于堆空间的对象。String即字符串,是最常用的字符,其内部使用char数组实现,但在新JDK改为byte。

2023-06-30 19:21:27 111 1

原创 移除设备和驱动器的WPS网盘图标,亲测有效,不在恢复

WPS为了方便我们办公,贴心的将图标添加到了文件资源管理器中,但很多时候我们可能并不需要这样的功能,那么如何移除WPS图标呢?主要解决方法有三:观看官方文档解决使用注册表删除推荐使用360等小工具屏蔽。

2023-06-15 18:49:22 18362 4

原创 什么是空间担保分配

参数的设置值是否允许担保失败,如果允许,那会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于,将尝试进行一次Minor GC,尽管这次Minor GC是有风险的,如果小于,或者。空间担保分配指的是在发生Minor GC之前,虚拟机必须先检查老年代最大可用的连续空间是否大于新生代所有对象总空间,如果这个条件成立,那这一次Minor GC可以确保是安全的。如果伊甸园回收的对象非常少,也就是默认的8:1:1容量,在8容量上只回收了1容量对象,剩下的7容量对象无法放入容量1中。

2023-05-30 22:14:32 406

原创 什么是布隆过滤器 位图

布隆过滤器在位图的基础上进行了优化,当一个元素被加入到集合的时候,通过k个散列函数,把这个元素映射到一个位数组中的k个点。布隆过滤器占用内存少,但有一定不正确性:不存在的一定不存在,存在的不一定存在。

2023-05-29 22:58:26 30

原创 聚簇索引与非聚簇索引(二级索引)的区别,mysql为什么设计二级索引?

但是这样也带来了一个缺点,就是当通过二级索引查询数据时,需要先根据二级索引找到主键值,然后再根据主键值在聚簇索引中找到数据行,这就需要两次查找。二级索引这样做的好处是,当数据行发生移动时,不需要修改二级索引的指针(或者说,需要在更新索引的时候),只需要修改聚簇索引的指针。聚集索引速度比二级索引速度快,因为查询时它直接包含了列的所以数据,是一种覆盖查询,无需回表。二级索引速度通常比较慢,如果查询的字段比较少,那么可能达到覆盖查询,不需要再次回表。聚簇索引并不是一种单独的索引类型,而是一种。

2023-05-23 20:39:49 191

原创 Mysql索引有哪些优缺点?

索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间。但显然:优点远远大于缺点。前提是查询远远大于修改、插入。以表中的数据进行增、删、改的时候,索引也要动态的维护。唯一索引可以保证数据库表中每一行的数据的唯一性。索引是一种可以帮助快速查找数据的数据结构。索引可以加快数据查询速度,减少查询时间。创建索引和维护索引要耗费时间。

2023-05-22 17:12:52 41

原创 HashMap和hashTabel的区别

HashMap不是线程安全的,在多线程情况下可能遇到并发问题,hashTable是线程安全的,但是通过内部方法添加syn来解决的,效率低下,而且在官方注释中hashTable是保留类,不建议使用。支持上,hashMap可以允许一个空健和多个空值,会把 null 转化为 0 进行存储,而hashTable由于需要保证线程安全的特性,不允许任何空。上,hashTable默认为11,扩容为2n+1,而hashMap默认为16,扩容为2倍。如添加指定长度,table会直接使用,而map总会扩充为2的n次幂。

2023-05-19 20:39:53 2421

原创 什么是双亲委派模型,双亲委派模型的好处

自定义String类时:在加载自定义String类的时候会率先使用引导类加载器加载,而引导类加载器在加载的过程中会先加载jdk自带的文件(rt.jar包中java.lang.String.class),报错信息说没有main方法,就是因为加载的是rt.jar包中的String类。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式,即把请求交由父类处理,它是一种任务委派模式。当加载器发现自己无父类的时候,尝试自己加载,如加载失败将向下依次派遣,如最终无法加载,将抛出异常。

2023-05-19 20:25:04 97

原创 全,Integer和int的区别。精简总结

在使用上,int可以直接定义赋值、但Integer需要使用new关键字来创建对象。在默认值上,因为Integer是一个对象,Integer的默认值为null、而int的默认值为0。在内存上,Integer由于是一个对象,所以 存储在堆内存,int 类型是直接存储在栈空间。在性能上,由于Integer包装了其他功能,性能要低于int。在遍历上,由于Integer是对象,提供了更多的方法和工具类,便于操作。在缓存上,在Integer中 -128到127之内值会被缓存起来,其中使用到了一个享元设计模

2023-05-18 14:39:32 107

原创 hashCode与equals

以“HashSet如何检查重复”为例子来说明为什么要有hashCode: 对象加入HashSet时,HashSet会先计算对象的hashcode值来判断对象加入的位置,看该位置是否有 值,如果没有、HashSet会假设对象没有重复出现。散列表存储的是键值对(key-value),它的特点是:能根据“键”快速的检索出对应的“值”。两个对象有相同的hashcode值,它们也不一定是相等的 因此,equals方法被覆盖过,则hashCode方法也必须被覆盖。如果两个对象相等,则hashcode一定也是相同的。

2023-05-18 14:34:52 39

原创 什么是SpirngBoot?

在使用spring开发的时候往往需要对mybatis,springMvc等框架进项配置,这些配置和业务无关且就有一定通用性,也就是每一个spirng项目需要配置基本一模一样的设置。提供了一些“start启动器”依赖,简化了构建配置,避免大量的 Maven 导入和各种版本冲突。Spring Boot 是 Spring 开源组织下的子项目,是为简化spring开发而生的。需要管理复杂的maven版本依赖,一不小心造成严重的依赖冲突。开箱即用,避免spring繁琐的配置。没有代码生成,也不需要XML配置。

2023-05-18 14:31:16 55

原创 SpringBoot自动配置原理

这个就是我们常用的application.ymlserver:port: 9091​spring:这样在导入jdbc后不需要配置datasource,但mybatis依赖于datasource,仍然报错。开启DataSourceAutoConfiguration后报错为。

2023-05-18 11:45:37 203 1

原创 Spring两大核心技术AOP和IOC,AOP的原理,什么是DI,AOP应用场景

IOC将传统自己新建的对象的这个过程进行了一个反转,也就是说,我们只需要把设计好的对象(Component)交给 IOC 容器控制,然后在需要用到目标对象的时候,直接从容器中去获取(Autowried)。AOP(Aspect Orient Programming)面向切面编程,是对OOP面向对象的一种补充,AOP不同于OOP面向对象的关注点是对象,而AOP关注的是切面。目标对象必须实现接口。Cglib的实现是在字节码的基础上的,并且使用了开源的ASM读取字节码,对类实现增强功能的。

2023-05-08 23:24:56 472

原创 数据库索引的原理?创建索引的缺点是什么,什么情况索引失效?优化数据库的方法有哪些?

MySql数据库使用的索引结构为B+数,但Mysql使用的B+树不同于通常的B+树,它会在B+树的页子节点曾加一条向左的指针,使其成为的双向链表。orderBY排序时候,建立索引,避免FileSort ,根据情况建立降/升序索引(Mysql 8.0 引入)数据库的索引原理需要以具体的数据库为准,但都是大差不差的,基本都是B树。索引还需要占用一定的磁盘空间,所以索引一般适用于较短的字段,如有特殊必要可以使用前缀索引。索引是一种帮助快速查找数据的数据结构,既然是数据,那么需要占用一定的资源。

2023-05-07 23:57:13 54

转载 什么是IO复用,用故事的方式打开IO多路复用

又过了20分钟,后厨的厨师叫道: 237号,您点的排骨米线没有排骨了,能换成番茄的吗?”我们去取餐:如果同步处理,我们就得在收银台站着等餐,后面的请求无法处理,客户等不及肯定会离开了。,可以随意地增加资源来处理请求(做米线)我说:他就这点儿资源了,除了老板没人再会做米线了。过了一会,排队的人越来越多,已经有人表示不满了,可是收银员已经满头大汗,忙到极致了。, 现在这么多人,应该增加收银台,可以没有其他收银设备,老板再着急也没用。我们交了钱,拿着号离开了点餐收银台,找了个座位坐下等餐。

2023-05-05 00:06:22 49 1

原创 Redis是单线程还是多线程,Redis的单线程问题

使用单个工作线程,保证了数据安全性,因为无需管理多线程数据不一致,同时避免了线程上下文切换,造成资源消耗。使用单个工作线程,保证了数据安全性,因为无需管理多线程数据不一致,同时避免了线程上下文切换,造成资源消耗。Redis在内存中工作,得益于内存的特性(快,丢失数据)所以也无需添加多线程,而造成其他方面的问题。以前的Redis版本说是单线程,其实只有一个主工作线程,同步等等还是有后台线程来操作的。上面所说的区域位置:Redis工作线程是单线程的,但是,整个Redis来说,是多线程的。工作线程(逻辑单元)。

2023-05-04 23:02:48 149 1

原创 移除设备和驱动器百度网盘图标

4.在右上角输入目录 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace。如果该目录下也有此项, 同样删除 NameSpace 下面的 {679F137C-3162-45da-BE3C-2F9C3D093F64} 项。3.删除NameSpace下面的 {679F137C-3162-45da-BE3C-2F9C3D093F64} 项。5.关闭后刷新资源管理器,可看到图标已去除。

2023-04-23 10:51:13 3061 1

原创 java:找不到符号错误

java:找不到符号错误,并且还提示java: 程序包cn.tedu.csmall.commons.restful不存在。最后查阅资料后发现是maven relativePath标签的问题,去除后clear不在报错。尝试通过设置编码,javac编译器,语言版本,Jdk版本,清除idea缓存后仍然无法解决。最后使用maven install安装到本地仓库后正常运行。于是准备使用maven clear 清除缓存。但是通过idea 的导入提示存在并且能调转。但maven clear报错如下。

2023-04-17 19:16:48 204 1

空空如也

空空如也

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

TA关注的人

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