自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hashchode ,equals相关

根据Java的规范,如果两个对象通过equals()方法比较是相等的,那么它们的hashCode()方法必须返回相同的整数结果。这是确保对象的一致性表现,即相等的对象必须有相同的哈希码。:在使用基于哈希的集合类,如HashMapHashSet或HashTable时,集合内部会依赖对象的hashCode()来确定对象在集合中的存储位置。如果两个对象通过equals()判断相等但hashCode()返回不同的值,这将导致集合无法正确管理这些对象,可能会丢失元素或者造成其他逻辑错误。相反,如果。

2024-05-15 23:55:25 430

原创 随记ref鱼reactive区别

2024-05-07 12:56:31 110

原创 哈希函数的简单介绍

哈希表。

2024-04-16 08:06:54 488

原创 Java两数之和解法对比

简单的算法

2024-04-10 12:51:19 221

原创 缓存雪崩,穿透,击穿

有海量并发的业务场景需要,大量的请求涌入关系型数据库,基于磁盘的IO读取效率低下,常用的mysql数据库不易进行扩展维护,容易造成数据库崩溃,从而相关业务崩溃,系统崩溃。因此我们需要去减少IO的读取次数,增强数据库的可拓展性和可维护性,Nosql数据库就可以更好的完成集群的拓展。通过多级缓存的设计,减少直接访问数据库的次数,减少IO操作,提升系统的健壮性。在此,将讨论常用于数据缓存的redis的业务场景,面临的问题,及解决方案。

2024-03-10 14:03:54 831

原创 IOC中Bean的生命周期

Spring容器在进行初始化时,会将xml配置的的信息封装成一个对象,所有的存储到一个名为的Map集合中去,Spring框架在对该Map进行遍 历,使用反射创建Bean实例对象,创建好的Bean对象存储在一个名为的Map集合 中,当调用getBean方法时则最终从该Map集合中取出Bean实例对象返回。

2024-03-03 12:49:02 1908 1

原创 JDK 安装笔记

官网下载合适的jdk:这里选择稳定维护,且使用比例最大的java8为例下载 ,登录到官网后,选择与自身电脑操作系统与操作位数相符合的,常见为windows64位的java8版本下载下载后无脑傻瓜式安装。

2024-02-19 22:48:12 28

原创 循环依赖和三级缓存

是指一个或多个Bean实例之间存在直接或简介的依赖关系,这种依赖关系构成了环形调用(类与类之间的依赖关系形成了闭环)。

2024-01-18 13:09:29 397

原创 Spring Aop原理

但即使是封装好的代码,在重复调用的情况下,代码冗余度又会提高。如此就有了AOP的使用场景,通过构造切面的方式,将这些使用场景作为切点,代理执行重复的代码,即减少了代码冗余,也有效避免的封装好的代码的重复调用,将除了。AOP:将那些与业务无关,却与业务模块所共同调用的逻辑(例如事务处理,日志管理,权限管理等) 封装成一个可重用的模块,这个模块被称为"切面",便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。这就是aop与封装代码的不同之处,方法增强且并非重复调用。

2024-01-14 20:22:33 535 1

原创 Unknown return value type: java.lang.Integer 错误的解决方案

controller注解换成restcontroller同样可以解决这个问题,应该是序列化上出问题了。2 在不更换@controller给每个方法都加上@responsBody。1 @controller换成@restcontroller。

2024-01-12 10:12:47 523

原创 IOC中Bean的生命周期

Spring是一个轻量级开发框架,其核心思想是Ioc(控制反转)以及AOP(面向切面编程),为java应用开发提供组件管理服务,用于组件之间的解耦,以及简化第三方Javaee中间件技术的使用,是是一个基础架构型的开发框架。

2024-01-08 00:35:42 1394

原创 Java如何连接 MongoDB

/释放资源mc.close();

2023-12-21 17:19:28 807

原创 MongoDB 笔记

db.集合名.update({查询条件},{$set:{更新内容}})

2023-12-21 11:39:53 354

原创 linux _docker 的操作

docker run -d -p 宿主机端口号:容器端口号 --name 容器名称 镜像标识。-q 所有容器 (包括没有运行的容器)可以通过 repsitory 或者 image id进行删除。镜像标识通过docker images。下图用的是查出来的nginxID 做删除操作。docker images 查找出所有镜像。docker rmi id号/镜像名。docker pull 镜像名。第一步:安装依赖工具。

2023-12-20 11:54:01 367

原创 【无标题】

重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。请求转发(forward)是服务器请求资源,服务器直接访问目标地址的url,把响应的内容读取过来,再发送给浏览器,这个跳转时由服务器实现的,而不是在客户端实现的,所以客户端实际上并不知道这个跳转,地址栏显示的还是之前的URL。请求转发的两个Servlet实例共用请求响应对象,重定向需要创建两次请求和响应对象,重定向是不共享数据的。

2023-11-27 08:12:24 408

原创 Servlet -02

1Servlet是在服务器端运行的Java程序(官方定义) 运行在服务器端的小程序2可以接收客户端请求并做出响应3 servlet就是一个接口,它定义了Java类被浏览器访问到(被Tomcat识别)的规则(使得Java程序能够运行在服务器段的规则(接口),需要遵守这个规则,才能被tomcat所识别)接收用户端发来的请求调用其他java程序来处理请求将处理结果,返回到服务器中ServletContext接口获取Web应用上下文,与Servlet容器进行通信。

2023-11-24 07:53:17 1635

原创 serverlet Day1

动态页面,是指跟静态网页相对的一种网页编程技术。因为静态页面在写好后基本是不会改变了,而动态网页则不然,页面代码虽然没有变,但是显示的内容却是可以随着时间、环境或者数据库操作的结果而发生改变的,内容有一个动态的效果。

2023-11-23 08:15:28 71

原创 mybatis - 注解

常用注解@Select(“查询的 SQL 语句”):执行查询操作注解@Insert(“查询的 SQL 语句”):执行新增操作注解@Update(“查询的 SQL 语句”):执行修改操作注解@Delete(“查询的 SQL 语句”):执行删除操作注解版权声明:本文为CSDN博主「魏帅坤」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

2023-11-22 08:50:07 43

原创 mybatis3

级联(cascade),是指多个对象之间的映射关系,建立数据之间的级联关系提高管理效率一对一级联步骤:1验证:编写测试类验证级联关系;2级联映射:利用 <association> 元素完成一对一级联;3创建映射器4创建关联pojo一对一级联时,以对象方式存储关联关系;级联注意事项:1 要根据实际情况选择级联(尽量不用)2 多层关联式,超过三层关联时尽量少用级联。

2023-11-21 08:05:08 39

原创 Mybatis 2

3 主配置文件的 中放入

2023-11-17 10:16:24 46 1

原创 Mybatis笔记

3.创建四个包,分别为 com.ape.bean (存放实体) com.ape.mapper(存放副的xml文件,内填写sql语句,并指定实bean目录下的类型(resultType),需要修改 namespace ,以及每个sql语句单独的id地址)2在src下创建一个名为 mybatis-config.xml的主映射文件,用来连接数据库,里面需要修改的参数是 数据库地址,用户名,密码,以及指定一个副的xml文件的映射地址。Mybatis是一个轻量级的框架,需要自己写sql语句,有较少的反射操作。

2023-11-16 07:45:51 39 1

原创 JDBC 01

sql注入:通过输入一些特殊的字符,使得Sql查询得到不应该查询到的数据。

2023-11-13 18:53:03 56

原创 mysql day4 函数,慢查询,索引笔记

MySQL函数,是一种控制流程函数,属于数据库用语言。函数分为日期和时间函数,字符串函数,数学函数,聚合函数,自定义函数。聚合函数作用于一组数据,并对一组数据返回一个值。方介绍索引是帮助MySQL高效获取数据的数据结构。简单来讲,数据库索引就像是书前面的目录,能加快数据库的查询速度。事实上,索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。

2023-11-13 02:04:57 44

原创 mysql day4 -事务

事务就是将一组sql语句放到同一批次去执行,如果一个sql语句出错,则该批次内所有sql语句取消执行。

2023-11-13 01:20:15 48

原创 mysql 星期总结 week-1

DCL 数据控制语言 用于管理数据库的语言,包括管理权限 grant ,commit,rollback。为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。DDL 数据库定义语言 定义和管理数据对象,如数据库,数据表等 create , drop,长期存放在计算机内,一个有组织,可共享的大量数据集合,是一个数据'仓库'。数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结。

2023-11-10 12:39:31 78 1

原创 mysql 笔记记录- day3 高级数据查询语句

union合并的是结果集,不区分来自于哪一张表,所以可以合并多张表查询出来的数据。LEFT JOIN ON -- join 左边的表为主表,右边的表为从表。是求两个查询的并集,但是不会把重复的过滤掉,而是全部显示出来。等值连接指的是,多表查询语句中的连接条件使用的是等号。其中第3行代码,它就是连接条件,它使用了等号,称为等值连接。对应地,多表查询语句中的连接条件不是使用等号的称为非等值连接。列名不一致时,会以第一张表的表头为准,并对其栏目。如果查询的表的列数量不相等时,会报错。在进行合并的时候会忽略掉。

2023-11-10 09:09:31 63 1

原创 mysql 数据库记录 -day2

inesert into 表名 [字段名1,字段名2,........,字段名] value (值,值,....值,值)select count(字段名) from 表名 where 条件(ssex ='男')select sum(字段名) from 表名 where 条件;用法 :select sum(字段名) from 表名;用法 :select avg(字段名) from 表名;用法 :select max(字段名) from 表名;-or 写的条件和In写的条件在结果集上是等价的。

2023-11-08 17:32:35 40 1

原创 MySql 数据库本质解析——Day2 笔记补充

终端连接数据库,(终端的指令)外界的指令通过网络想3306接口(3306监听mysqld,而mysqld是DBMS的主要部分)发送指令,指令传到DBMS进行翻译,DBMS识别后对数据库和表进行相应的操作。Mysql数据库包含三部分:数据库管理系统 DBMS 数据库 DB 表table。终端举例:命令终端(DOS) SQlyog java。PS:终端指的就是客户端,客户端(终端)连接数据库。

2023-11-07 23:24:58 87

原创 Sql基础语法 -1

ALTER table lanlifusheet CHANGE p_tel person_tel CHAR(11) COMMENT '修改属性后的电话';ALTER TABLE lanlifusheet MODIFY p_tel CHAR(3) comment '修改后的电话';ALTER TABLE 表名 CHANGE 旧字段名 新字段名 要修改的类型 要修改的属性;ALTER TABLE 表名 MODIFY 字段名 要修改的类型 要修改的属性;-- 默认式的,不写就会有默认值进行替换。

2023-11-06 16:41:34 46 1

原创 Linux day 2

name "l*"查找以 l开头的所有文件 -iname "l*" 不区分大小写查找l开头的文件。find 查找格式 find 路径 -指令。type 命令 查找命令是什么类型。退出操作 q Esc Ctrl+c。

2023-11-06 08:04:23 39 1

原创 LINUX -day1 简介及基本语法

③ls查看目录内容 -l 每列仅显示一个文件或目录名称 -a或-all显示所有目录和文件 -i显示文件和目录的。-i 再拷贝过程中询问是否要拷贝 -f 在拷贝过程中不询问直接拷贝 -r拷贝目录中所有的文件和目录。⑩rm -i 删除时询问是否要删除 -f 删除时不询问直接删除 -r递归删除目录下所有文件和目录。-tf tar -tf xxx.tar 在不解包的情况下查看里面的文件或目录。-xf tar -xf xxx.tar 将xxx.tar中的文件解包。

2023-11-03 08:02:34 73

原创 Java中Comparable和Comparator 比较笔记

的类,需要使用comparator接口,可以根据每一个需求去重写comparator方法,需要重写 compara但不需要重写equals()方法。{eg:如果复杂的类选择实现comparable接口,在根据不同需求时,要频繁修改源代码,而如果实现comparator方法,只需要根据不同的需求,重写匿名内部类即可。=,<,> 这些操作,在对多对象进行操作时,必须有定制的排序。.像String、包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式。

2023-10-31 01:31:38 45 1

原创 hashset去重原理笔记

情况二:如果算出该元素的存储位置目前已经存在有其他元素了,那么会调用该元素的equals方法与该位置的元素再比较一次,如果equals返回的值是true,那么该元素与这个位置上的元素就视为重复元素,不允许添加,如果equals方法返回的是false,那么该元素允许添加.2.去重原理:当hashset add一个元素A的时候,首先获取这个元素的散列码(hashcode的方法),即获取元素的哈希值。情况一:如果计算出的元素的存储位置目前没有任何元素存储,那么该元素可以直接存储在该位置上。

2023-10-30 13:49:30 65

原创 String、StringBuffer与StringBuilder 区别记录

2Buffer出现的版本早于Builder,两者内容大致相同,但是buffer比Buider多了一个锁(synchronized),使得Buffer的安全性大于Builder,在有安全性的同时,每次用锁也使得Buffer效率低于Builder。1普通的string对象创建,对其进行操作,会开辟新的存储空间,而不是在原地址上进行修改,但是Stringbuilder和String Buffer方法是可以在原地址上进行修改的。你早上上班,正要打卡的时候,手机响了。你如果先接了电话,等接完了,在打卡,就是单线程。

2023-10-18 13:17:00 43 1

原创 HashMap 扩容机制

HashMap的底层有数组 + 链表(红黑树)组成,数组的大小可以在构造方法时设置,默认大小为16,数组中每一个元素就是一个链表,jdk7之前链表中的元素采用头插法插入元素,jdk8之后采用尾插法插入元素,由于插入的元素越来越多,查找效率就变低了,所以满足某种条件时,链表会转换成红黑树。为了解决JDK1.7中的死循环问题, 在jDK1.8中新增加了红黑树,即在数组长度大于64,同时链表长度大于8的情况下,链表将转化为红黑树。5.从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点;

2023-10-16 07:23:51 60 1

原创 JavaList的扩容机制及部分方法调用 ---笔记

在Java中,List的扩容机制是为了在元素数量变多时,能够保持List的性能稳定。当List需要扩容时,会创建一个更大的容量,并将旧的元素复制到新的容器中。当ArrayList需要扩容时,会创建一个新的数组来存储元素,并将旧数组中的元素复制到新数组中。扩容时,ArrayList会创建一个新的容量更大的数组,通常是原数组容量的1.5倍(可以通过修改源码进行调整)。首先,当ArrayList的元素数量超过了其数组的长度时,就会触发扩容操作。然后,ArrayList会将旧数组中的元素按顺序复制到新的数组中。

2023-10-16 07:07:35 99 1

原创 笔记记录2补充。buffer以及builder的扩容机制

buffer和builder 的构造方法的无参数及由参数,其中无参构造方法直接分配的容量为16,而有参构造分配的则是字符串长度加上16(str.length+16)。这些都是初始的容量,在传入一个大于这些初始容量大小的字符串时,会生成一个先将现有大小扩大2倍再加上2的容量大小的容量,然后再与传入的字符串进行比较,若还小于该字符串所需长度,则将字符串所需要的容量直接等于新扩容的容量。扩容的逻辑就是创建一个新的 char 数组,将现有容量扩大一倍再加上2,如果还是不够大则直接等于需要的容量大小。

2023-10-10 00:22:35 96 1

原创 string builder和Stringbuffer

2Buffer出现的版本早于Builder,两者内容大致相同,但是buffer比Buider多了一个锁(synchronized),使得Buffer的安全性大于Builder,在有安全性的同时,每次用锁也使得Buffer效率低于Builder。1普通的string对象创建,对其进行操作,会开辟新的存储空间,而不是在原地址上进行修改,但是Stringbuilder和String Buffer方法是可以在原地址上进行修改的。相同点:底层都是通过char数组实现的。

2023-10-09 07:53:08 88 1

原创 初入Java 笔记 浮点型 细节内容笔记Day08

tips: float型可转为double型,但是double型不能转为float型,因为double[8]存储空间大于float[4]型,第二种转换系统会报内容丢失风险。1.计算机对浮点型计算存在误差,例如计算 double num1=8.1/3;,计算结果不会等于2.7,这是因为计算机数值存储而产生的误差。2.java默认浮点型常量为double型,而声明float型,需要在后加'F'或'f'。4.通常情况下,应该使用double型。3.浮点型有固定的字节长度,不会随着OS的改变而产生变化。

2023-09-20 23:26:09 42 1

空空如也

空空如也

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

TA关注的人

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