- 博客(55)
- 收藏
- 关注
原创 智能sc一面
Java I/O 流是Java中处理输入输出的核心机制,它提供了统一的接口来读写不同类型的数据源(如文件、网络连接、内存缓冲区等)。**一、**I/O流的基本概念1.流的分类按方向输入流(InputStream/Reader):从数据源读取数据输出流(OutputStream/Writer):向目标写入数据按数据类型字节流(InputStream/OutputStream):处理二进制数据字符流(Reader/Writer):处理文本数据,自动处理字符编码核心类结构java.io。
2025-04-17 23:12:04
1039
原创 Redis 常问知识
当哨兵网络与Redis主节不在同一个网络下,监控就会出问题,但是Redis主节点并没有问题,服务仍在Redis主节点写,由于网络问题哨兵通过监控认为Redis主节点出现了问题,就会在从节点选一个做为主节点,这样就出现了两个主节点,这就是脑裂问题,当网络原因回复后,原来的主节点为变成从节点,以新的主节点为主,原来的主节点会同步新的主节点信息,就会导致数据丢失。在数据库查询到不存在的数据时,对该数据进行缓存为空(可以设置稍短的3~5分钟的TTL),之后相同的请求,就会在缓存中查到,而不去请求数据库。
2025-04-14 22:57:55
915
2
原创 谷歌浏览器驱动和浏览器版本不一致问题
我是64位的操作系统,所以直接找到64bit的包,复制绿色框的url:即可下载。背景:在使用的一个项目的时候,之前可以正常使用,但是最近突然不能用了,报错如下。解决办法首先就是,退回到之前版本的浏览器,发现官方并没有提供下载链接。关于自动更新这个问题:删除新版本之后,在下载老版本不会自动更新。原因是,项目中的浏览器驱动和浏览器版本不一致了。经过查阅资料,发现了一种官方源的下载方式。以我要下载的133.0.694.x为例。
2025-04-09 10:05:12
178
原创 Mysql面试知识总结
首先,我们先从四种隔离级别中排除Serializable和Read Uncommitted这两种,主要是因为这两个级别一个隔离级别太高,一个太低。太高的就会影响并发度,太低的就有脏读现象。RR 和 RC 的选择在MySQL设计之处,他的定位就是提供一个稳定的关系型数据库。而为了要解决MySQL单点故障带来的问题,MySQL采用主从复制的机制。为了保证主从服务器之间的数据的一致性,就需要进行数据同步。
2025-04-09 09:17:40
960
原创 配置了全局跨域还是会出现跨域问题--拦截器影响跨域配置
对于已经登录的用户,但是发送的非简单请求(这个接口),会先一发段options请求,这个请求经过跨域处理在经过登录拦截器处理(但是,options不会携带用户信息)所以就在此被拦截,返回拦截的信息,也就是401未登录的信息。所以,就说明了上述,为什么配置了全局跨域,但是还会出现跨域的问题,原因就是拦截器,拦截options请求,导致请求在拦截器就返回,没有添加上跨域的头信息。不对把,跨域和跨域和拦截器有毛关系?分析:为什么,我处理了跨域配置,其他请求也检验出跨域配置生效了,但是该接口还是出现了跨域问题。
2025-04-03 16:59:05
219
原创 Collectors.groupingBy(xxx)
分享一个好用的stream 流的api。对一个集合的字段进行分组。比如要对一个集合进行分组。
2025-04-02 11:14:57
108
原创 LeetCode 精简75 题
内存优化:上述new 了两个数组,可以就弄一个前缀数组,后缀数组不需要,直接使用一个变量存一下,直接计算结果。分析:思路有问题,我上述的设想奇数长度的大小,最多可以判断只有在开头种植了才能+1,忽略了结尾,比如上述。原因如下: 在处理最后一个单词的时候,判断要不要加空格,是根据分割后的下标来判断的,这种逻辑是错误的。但是对于已经存在数据的数组,就不能按上述计算,因为,插入的位置同时可以在偶数位置并且在奇数位置上。还是下标溢出,原因是,假如数组长度就1,在判断开头的时候就i+1,下标溢出。
2025-03-31 10:14:53
671
原创 LeetCode 精华75题
● str1 + str2 = str2 + str1 的时候才会有解,因为有解的情况下,str1可以被除尽,str2也可以被除尽,当然str1+str2 可以被除尽。// 检查两个字符串连接后是否相等 // 假设str1是N个x,str2是M个x,那么str1+str2肯定是等于str2+str1的。// 检查是否能种花,左右都没中种花就可以种花,考虑边界情况,对于边界开头,只需要确保其后没有种花,对于结尾的边界,只需要前面没有种花。什么时候应该不加空格,最后一个有效单词,怎么判断?
2025-03-31 10:13:15
798
原创 集成knife4j
tips: 若接口文档正常显示,但是没有具体的接口。可以按如下思路排查,1.配置中包的位置是否正确。4版本的引入有两者,一种是swagger2规范,一种是openapi3规范(spring boot 3 建议)注解所在包及其子包下的所有类。如果你的控制器不在扫描范围内,Spring Boot 是无法注册该控制器的。使用knife4j 4版本的最低要求是springboot2.4.类被 Spring Boot 扫描到。由于该项目是springboot2.7版本,两个规范都可以引入选择其一。
2025-02-08 12:20:18
275
原创 双层Git管理项目,github托管显示正常
在写React项目时,使用Next.js,该项目默认由git托管。但是我有在项目代码外层记笔记的习惯,我就在外层使用了git托管。我没太在意,然后push到远程仓库,发现问题。内存托管的文件不能查看。git`文件,外层git感知不到内存的变换。添加到缓存区,我们仅仅删除内存也就是code层下的。code 层内也有.git 文件,对其托管。经过排查,才注意到有两层.git。由于以及将code层代码通过。
2025-01-27 14:05:00
778
原创 Spring boot项目启动找不到启动类
背景: 在github上下载了一个项目,在启动时提示命令行。按照提示缩短命令行并运行 ,错误: 找不到或无法加载主类。
2025-01-05 18:16:45
204
原创 Github 正常访问但是ping不同也无法进行git操作
经过查询资料可以修改将github ip 添加到hosts 文件中。原因:在git push 的时候 发现一直push不上去。网站可以正常访问,但是主机ping却ping不通。win10 hosts 文件位置 如下图。git操作可以正常操作了。github动态ip。
2024-12-31 10:13:40
1400
1
原创 双拦截器无感刷新token
分析:单个拦截器,只拦截需要用户登录才能访问的页面,假如用户登录之后,访问不需要拦截的页面,比如说主页,拦截器并不会执行,token也不会刷新,即使用户正在使用token因为长时间不刷新回过期。拦截器注册: 需要注意的是拦截器执行的先后,可以设置order属性默认是0,数字越小优先级越高。解决:可以在引入一个拦截器,拦截所有的请求,该拦截器的主要目的就是刷新token,
2024-10-30 10:11:57
597
原创 全局唯一id
场景分析二:随着我们商城规模越来越大,mysql的单表的容量不宜超过500W,数据量过大之后,我们要进行拆库拆表,但拆分表了之后,他们从逻辑上讲他们是同一张表,所以他们的id是不能一样的, 于是乎我们需要保证id的唯一性。因为我们是订单,首先要满足的就是高可用,高性能,然后就是id是自增的为了数据库存储索引以及查询的效率。场景分析:如果我们的id具有太明显的规则,用户或者说商业对手很容易猜测出来我们的一些敏感信息,比如商城在一天时间内,卖出了多少单,这明显不合适。成部分:符号位:1bit,永远为0。
2024-10-30 10:03:42
358
原创 缓存使用的最佳实践,自定义缓存工具类
访问数据库不存在的数据,会一直请求到数据库,被别有用心的人使用,可能会一直请求数据库,导致数据库宕机。解决方法有两一:缓存空数据,二,使用布隆过滤器进行校验。缓存空数据在数据库查询到不存在的数据时,对该数据进行缓存为空(可以设置稍短的3~5分钟的TTL),之后相同的请求,就会在缓存中查到,而不去请求数据库。代码案列。
2024-10-28 13:09:10
582
原创 登录session最佳实践
发送短信验证码:用户输入手机号---->校验手机号是否合法---->生成验证码---->sms服务登录:输入验证码—>校验验证码---->登录成功–>将用户部分信息保存在session中。登录校验:从发来的请求中---->接收session—>根据sessionid获取session中的用户信息—>校验用户是否为空–>验证成功。
2024-10-23 19:50:00
328
1
原创 二 SSM整合实操
创建web项目导入依赖添加实体类com.ls.pojo配置logbackresources/logback.xml准备工作就绪,需要重点关注的就是各个依赖。三 Service层配置类service,aop,tx四 Dao层配置类4.1 回顾mybatismybatis整合思路mybatis核心api使用回顾:mybatis核心api介绍回顾:mybatis整合思路理解:mybatis的api实例化需要复杂的过程。例如,自己实现sqlSessionFacto
2024-04-26 20:30:43
1193
原创 一 SSM 整合理解
以spring框架为基础,整合springmvc,mybatis框架,以更好的开发。 spring管理一切组件,为开发更好的解耦,以及提供框架的组件,如aop,tx。springmvc是表述层框架,专注于controller层开发。mybatis是优秀的持久测层框架,专注于dao层开发,免除几乎所有的 JDBC 代码以及设置参数和获取结果集的工作,而我们只需编写sql以及配置。这三个框架结合,大大提高了我们的开发效率。
2024-04-26 20:17:37
698
原创 三 SpringMVC返回数据以及RESTFul设计标准
RESTFul只是一种标准的设置http的规则,不是强制要求,不过作为开发者以RESTFul风格设计url,更为合理,优雅。先确定请求方式,查询–>GET,删除—>DELETE,这两种几乎都不需要使用请求体传擦,一般就根据查询或删除的资源时候唯一来选择param传参或路径传参。更新—>PUT,增加---->POST。在确定如何传参,如果资源唯一就路径传参,资源不唯一param传参,在需要传入隐私数据或复杂数据使用json传参。
2024-04-25 18:25:20
1130
2
原创 二 SpringMVC接收数据
在 RESTful 的 Web 应用程序中,经常使用路径传递参数来表示资源的唯一标识符或更复杂的表示方式。在上述代码中,@RequestBody 注解将请求体中的 JSON 数据映射到 Person 类型的 person 参数上,并将其作为一个对象来传递给 addPerson() 方法进行处理。但是,JSON 类型的参数是有序的。在 HTTP 请求中,我们可以选择不同的参数类型,如 param 类型和 JSON 类型。但是,JSON 类型的参数支持嵌套,可以传递更为复杂的数据结构。
2024-04-25 11:49:07
905
原创 一 springMVC简介
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称(),但它通常被称为“Spring MVC”。在控制层框架历经Strust、WebWork、Strust2等诸多产品的历代更迭之后,目前业界普遍选择了SpringMVC作为Java EE项目表述层开发的。之所以能做到这一点,是因为SpringMVC具备如下显著优势:,与IOC容器等基础设施无缝对接。
2024-04-25 11:44:50
878
原创 mybatis基本使用
别名对应将字段的别名设置成和实体类属性一致。-- 编写具体的SQL语句,使用id属性唯一的标记一条SQL语句 --> <!-- resultType属性:指定封装查询结果的Java实体类的全类名 --> < select id = " selectEmployee " resultType = " com.atguigu.mybatis.entity.Employee " > <!-- Mybatis负责把SQL语句中的#{}部分替换成“?”占位符 --> <!
2024-04-22 11:06:41
755
原创 一 Mybatis简介
名字发生了改变,主要是因为用法发生了改变。mybatis 3.x 是对ibatis1.x,2.x的封装以及优化。导入mybatis3.x的包,依然有ibatis的包,就是mybatis 3.x 是对ibatis1.x,2.x的封装以及优化。
2024-04-18 14:14:50
293
原创 springAOP的概念以及使用
他主要是将附加功能代码提取到代理中执行,不干扰目标核心代码!但是我们也发现,无论使用静态代理和动态代理(jdk,cglib),程序员的工作都比较繁琐!需要自己编写代理工厂等!但是我们在实际开发中,不需要编写代理代码,我们可以使用[Spring AOP]框架,他会简化动态代理的实现!!!
2024-04-17 14:11:33
1058
原创 基于注解以及配置类使用SpringIoc
使用注解开发使用ioc,并不能完全摒弃xml配置,还需要使用xml配置扫包,注解使用的范围引入外部文件第三方提供的类,还需要在xml配置,如druid,jdbctemplate什么是配置类,就是将配置文件,改成配置类。扫包 component-scan base-package=“xxx”引入外部文件 property-placeholder location=“xxxx”注册第三方提供的类由于xml解析的效率较低,使用一个类实现以上功能,我们在此称这个类为配置类。@Bean。
2024-04-15 20:50:14
1176
原创 数字反转-reverse
输入一个数字,输出其各位数字反转的数,例如123,输出321。-380,输出-83。感觉没有错,但是当样例为0的时候,什么也不输出。也说明了上述代码的逻辑不严谨。 用字符串存储数据,然后单独处理正负数,还有末尾0。上述代码加个特判当数据为0的时候,输出0,才算严谨。
2024-04-11 22:06:31
296
原创 数位排序-自定义比较函数
例如,2022 排在 409前面,因为 2022 的数位之和是 6,小于 409 的数位之和 13。在编写代码时,发现数组下标就可以代替第几位,用数组存数位和。即用下标代表原数字,数组存的数字代表数位和。 当两个数各个数位之和不同时,将数位和较小的排在前面,当数位之和相等时,将数值小的排在前面。又如,6排在 2022 前面,因为它们的数位之和相同,而 6 小于 2022。题目大意:输入两个数,n,m。输入第出排序后的第m个数。
2024-04-11 19:39:02
262
原创 郑州轻工业oj1000~1049
自然对数是数学中的一种特殊对数,它以常数e(欧拉数)为底的对数。自然对数常用符号"ln"表示,其定义为:ln(x) = loge(x)。:如果a的x次方等于N(a>0,且a≠1),那么数x叫做以a为底N的对数(logarithm),记作x=logaN。):S^2=p(p-a)(p-b)(p-c), p=(a+b+c)/2, a,b,c为三角形三边。A~Z 的ASCII 65~90 a~z 的ASCII 97~122。##1002: 简单多项式求值。A->a ASCII值+32。任意三角形的面积公式(
2024-04-10 19:04:47
2718
1
原创 第二章 SpringIOC容器核心概念
Spring IoC 容器,负责实例化、配置和组装 bean(组件)。容器通过读取配置元数据来获取有关要实例化、配置和组装组件的指令。配置元数据以 XML、Java 注解或 Java 代码形式表现。它允许表达组成应用程序的组件以及这些组件之间丰富的相互依赖关系(DI)。
2024-04-09 10:38:51
465
原创 第一章,SpringFramework介绍
经过十多年的发展,Spring 已经不再是一个单纯的应用框架,而是逐渐发展成为一个由多个不同子项目(模块)组成的成熟技术,例如 Spring Framework、Spring MVC、SpringBoot、Spring Cloud、Spring Data、Spring Security 等,其中 Spring Framework 是其他子项目的基础。这些子项目涵盖了从企业级应用开发到云计算等各方面的内容,能够帮助开发人员解决软件发展过程中不断产生的各种实际问题,给开发人员带来了更好的开发体验。
2024-04-09 10:37:20
390
原创 三 maven的依赖管理
maven下载依赖的过程是,现在本地maven仓库中寻找,如果本地仓库中有就直接用,没有就要从中央仓库下载到本地maven仓库,由于本地maven仓库中有依赖的缓存,会导致maven以为本地仓库中已经存在,就不会再去中央仓库下载。eg: A依赖B,B依赖C,C又依赖A,按照maven的依赖传递特性导入A依赖会导入B依赖,导入B依赖又会导入C依赖,导入C依赖又会导入A依赖(此时依赖冲突发生就停止再次导入A依赖)。当我们引入依赖A时,maven会自动的引入依赖A所需要的依赖B。解决了引入重复依赖的问题。
2024-04-08 11:26:15
1011
原创 二 maven构建项目
Maven 是一个强大的构建工具,它提供一种标准化的项目结构,可以帮助开发者更容易地管理项目的依赖、构建、测试和发布等任务。GAVP是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。Maven工程相对之前的工程,多出一组gavp属性,gav需要我们在创建项目的时指定,p有默认值,后期通过配置文件修改。正例:tc-client / uic-api / tair-tool / bookstore。
2024-04-07 17:29:01
350
原创 一 maven下载与使用
Maven 是一款为 Java 项目构建管理依赖管理的工具(软件),使用 Maven 可以自动化构建、测试、打包和发布项目,大大提高了开发效率和质量。总结:Maven就是一个软件,掌握软件安装、配置、以及基本功能**(项目构建、依赖管理)**使用就是本课程的主要目标!依赖管理,不使用maven需要找到jar包手动导入到项目中,麻烦而且会有版本冲突问题。项目构建,idea和eclipse也可以构建项目,还为什么使用maven呢?使用idea和eclipse开发构建时,构建的项目格式不一致。
2024-03-21 14:27:52
563
1
原创 计算机网络-网络层
为什么使用无分类编址划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为在地址空间太小并没有得到充分的使用,而因特网的ip地址仍在消耗,整个IPv4地址空间面临全部耗尽的威胁。为此因特网工程任务组IETF又提出了采用无分类编址的方法来解决ip地址紧张的问题,同时成立IPv6工作组负责研究新版本IP以解决IP地址耗尽问题。1993年,IETF发布无分类域间路由选择CIDR的RFC文档。CIDR消除了传统的A,B,C类地址,以及划分子网的概念;CIDR。
2024-01-12 22:23:19
893
1
原创 计算机网络-数据链路层
数据链路层链路是从一个结点到相邻结点的一段物理线路,数据链路则是在链路的基础上增加了一些必要的硬件(如网络适配器)和软件(如协议的实现)基本问题1.封装成帧信息在数据链路层以帧的形式传送,所以要将网络层传下来的分组添加首部和尾部构成数据帧,首部尾用于标记帧的开始和结束。并非所有的数据链路层协议的帧定界中都有 帧定界标志,比如以太网V2 则没有,它是依靠物理层添加的前导码来进行区分帧定界。
2024-01-11 19:45:45
943
原创 计算机网络 - 物理层
物理层要处理的是如何在传输媒体上传输比特流,尽可能忽略不同的传输介质的影响,物理层的作用是尽可能屏蔽传输媒体和通信手段的差异。物理层的任务主要是,规定传输媒体的接口有关的特性机器特性 :指明接口所用的接线器的形状和尺寸,引脚数目和排列,固定和锁定装置电器特性:出现电平的范围功能特性:出现某一电平表示的意义过程特性:指明对于不同功能的各种可能时间出现顺序。
2024-01-10 23:56:03
797
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人