- 博客(43)
- 收藏
- 关注
原创 Maven进阶
build><resource><includes><excludes><resource><includes>-- 属性替换配置 --><filters></filters>-- 测试资源 --></build>
2025-12-19 20:15:38
82
原创 Maven管理工具
对第三方依赖包的管理,可以连接互联网下载项目所需第三方jar包。对自己开发的模块的管理,可以像引用第三方依赖包一样引用自己项目的依赖包。传统项目:打开Idea编写源代码和配置文件,对源代码进行编译,可以使用Junit进行单元测试,把项目打成war包,部署到Tomcat服务器中运行。maven项目maven将项目构建过程进行标准化,每个阶段都可以使用一个命令来完成。清理 --> 编译 --> 测试 --> 报告 --> 打包 --> 部署。
2025-12-19 20:10:03
328
原创 IDEA中debug的使用
(3)在Watches中使用Lambda表达式:list.stream().filter(x -> x > 5).count()(1)Ctrl+Alt+F8:快速求值选中的表达式。(1)标准模式:点击调试按钮(绿色的虫子图标)(1)智能代码分析:在调试时提供实时代码洞察。(2)热重载调试:不重启应用即可应用代码更改。(3)检查是否编译了调试信息(-g参数)(3)协程和异步调试:轻松处理并发问题。(3)远程调试:调试远程服务器上的应用。(2)附加到进程:调试已在运行的应用。(3)使用模板:创建常用调试模板。
2025-12-19 19:47:06
171
原创 IDEA(2017版本)安装
javaagent:E:IntelliJ IDEA\bin\JetbrainsCrack-2.6.10-release-enc. jar(这里写自己的下载地址)3.将JetbrainsCrack-2.6.10-release-enc.jar文件复制到bin目录。2.首次安装:选择Activation Code选项;5.再次启动IDEA输入密钥,点击ok。8.更改jdk环境,先点击应用再保存。7.关闭IDEA中自动更新选项。
2025-12-19 19:35:30
74
原创 IDEA 中 Tomcat 部署 Java Web 项目(2)
在idea部署项目之后会产生一个classes文件夹,找到里面的_war_exploded文件夹。启动tomcat,查看日志 8088端口启动成功。④ Artifacts 标签(部署产物配置)③ Facets 标签(Web 模块识别)② Modules 标签(模块与依赖。复制到tomcat的webapps里。配置server.xml文件。
2025-10-18 21:16:45
579
原创 IDEA 中 Tomcat 部署 Java Web 项目
将下面的代码插入到server.xml文件中,注意这是我们自定义的<Service>,要与 自带的分开,防止嵌套。并且 webapps目录下生成了相应的war,jar包目录,现在我们就可以 url直接访问我们的项目。(3)将生成的war包与jar包一并复制到tomcat的webapps路径下。依次为每个部分添加本地tomcat-server。点击apply ->ok 运行tomcat。4)配置server.xml文件。修改名字,热部署,端口号,jdk。5)启动tomcat。
2025-10-18 21:03:58
682
原创 Bean 管理
母开始,可以使用字母、数字、连字符、下划线、句话、冒号。默认是无参数的构造方法(默认方式,基本上使用)时,有时需要作一些处理工作,因此。对象的创建和销毁的两个属性配置。起个名字,在约束中采用。被载入到容器的时候调用。从容器中删除的时候调用。请求都会创建一个新的。
2025-10-16 19:52:03
303
原创 Spring 框架 Bean 管理
Spring 支持多种 Bean 配置方式,从早期的 XML 配置到现代的注解配置,各有适用场景。掌握这些配置方式是灵活管理 Bean 的基础。-- 定义UserService Bean,指定类全路径 -->-- 通过property标签注入属性,name对应setter方法名,value设置基本类型值 --></bean>-- 定义UserDao Bean -->// 1. 配置类:指定组件扫描路径(替代XML配置文件)
2025-10-16 19:46:04
1066
原创 Spring 框架
声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编。松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用。文件,名称是可以任意的,但是一般都会使用默认名称。原则,可以用来减低计算机代码之间的耦合度。不排斥各种优秀的开源框架,其内部提供了对。编写接口和实现类,编写具体的实现方法。该接口下有两个具体的实现类。是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的。程,可以方便的实现对程序进行权限。,控制反转,将对象的创建权力。可以解决的程序耦合性高的问题。方便解耦,简化开发,
2025-10-16 19:41:25
684
原创 MySQL 基础语句
DDL 语句主要包括CREATE(创建)、ALTER(修改)、DROP(删除)、TRUNCATE(清空),核心是对 “表结构” 而非 “数据” 操作。
2025-10-16 19:32:20
427
原创 希尔排序解析
希尔排序(Shell Sort)作为插入排序的高效改进版,通过引入 “增量序列” 打破了插入排序的局限性,在中等规模数据排序场景中展现出优异性能。它既是理解高级排序算法的基础,也是面试中的高频考点。本文将从算法思想、核心步骤、代码实现到性能优化进行全方位剖析,结合实例与动图演示,帮你彻底掌握希尔排序的精髓。在了解希尔排序前,先回顾其改进的 “母算法”—— 直接插入排序的特性:为解决直接插入排序的缺陷,计算机科学家Donald Shell在 1959 年提出了希尔排序。其核心思想是:通过 “增量序列” 将原数
2025-10-16 19:21:03
961
原创 Java 中 equals 与 hashCode 的关系
在 Java 开发中,equals()和hashCode()是 Object 类的两个核心方法,它们共同支撑着 Java 集合框架(如 HashMap、HashSet)的高效运行,也是判断对象 “相等” 的关键依据。然而,很多开发者在实际使用中常忽略两者的内在关联,导致程序出现难以排查的 Bug(如对象在 HashMap 中无法正确查找)。
2025-10-16 19:04:01
934
原创 Java 栈
栈是一种特殊的线性表,它仅允许在表的一端(栈顶,Top)进行插入操作(入栈,push)和删除操作(出栈,pop),而在表的另一端(栈底,Bottom)不允许任何操作。这种 “后进先出” 的特性,使其与队列(FIFO)形成鲜明对比。形象地说,栈就像一摞叠放的盘子:只能从最上面添加盘子(入栈),也只能从最上面拿走盘子(出栈),最下面的盘子往往是最早放入却最后取出的。
2025-10-16 18:56:27
744
原创 Java 队列
队列是一种特殊的线性表,它仅允许在表的一端(队尾,Rear)进行插入操作(入队,enqueue),在另一端(队头,Front)进行删除操作(出队,dequeue)。这种 "先进先出" 的特性,使其与栈(Stack,LIFO)形成鲜明对比。双端队列(Deque):允许在队头和队尾同时进行插入和删除操作,兼具队列与栈的特性;优先级队列(PriorityQueue):不遵循 FIFO 原则,而是根据元素的优先级排序,每次出队的是优先级最高的元素。
2025-10-16 18:30:14
1051
原创 Java 包装类:自动拆箱 / 装箱与 128 陷阱
先看一个经典的示例// true// false// false为什么同样是赋值,127 时==比较返回true,而 128 时返回false?为什么使用new关键字创建的对象即使值相同,==比较也返回false?
2025-10-13 15:52:13
994
原创 Java 接口
接口(Interface)是 Java 中的一种引用类型,它是方法的集合,这些方法通常没有具体的实现(Java 8 之后允许有默认方法)。接口定义了一个类应该遵循的规范,但不关心类如何实现这些规范。// 一个简单的接口示例// 抽象方法void eat();// Java 8及以上可以有默认方法// Java 8及以上可以有静态方法接口最常见的用途是定义类应该遵循的规范,就像一份契约。例如,Java 集合框架中的ListSet等接口定义了集合操作的标准。
2025-10-13 15:45:37
236
原创 冒泡排序总结
问题根源:即使数组未完全有序,每轮遍历中 “最后一次交换的位置” 之后的元素也已完全有序(因为这些元素未参与交换,说明它们比前面的元素都小)。原始版仍会比较到n-1-i,存在无效比较。优化方案:记录每轮 “最后一次交换的位置”,下一轮遍历仅需比较到(而非n-1-i),减少后续的无效比较。
2025-09-27 15:43:18
808
原创 快速排序总结
5适合入门,逻辑简单,但交换次数较多,且最坏情况(有序数组)下效率低。"""快速排序(Lomuto分区法):升序排序:param nums: 待排序数组:param left: 排序区间左边界:param right: 排序区间右边界"""# 递归终止条件:区间长度≤1(无需排序)return# 1. 分区:返回基准的正确索引# 2. 递归排序左子区间和右子区间"""Lomuto分区:选nums[right]为基准"""pivot = nums[right] # 基准元素。
2025-09-27 15:36:10
932
原创 三分查找法
在算法领域,二分查找是有序序列查找的 “标杆”,但面对(如找最大值 / 最小值),二分查找便无能为力。此时,(Ternary Search)凭借其 “分而治之” 的核心思想,成为解决单峰函数极值问题的高效工具,时间复杂度同样低至 O (log n)。
2025-09-27 15:25:34
1145
原创 二分查找法
问题描述:给定升序数组,可能包含重复元素,找到最后一个小于等于target的元素索引,若所有元素都大于target,返回 - 1。核心思路:收缩左边界,继续向右查找 “更靠右” 的符合条件的元素,直到,此时right即为右边界。"""查找最后一个小于等于target的元素索引(右边界):param nums: 升序数组(可含重复元素):param target: 目标值:return: 右边界索引(所有元素大于target则返回-1)"""left = 0。
2025-09-27 15:19:32
830
原创 mysql5.7安装linux
mysql5.7初始化密码报错 ERROR 1820 (HY000): You must reset your password using ALTER USER statement before。validate_password_length(密码长度)参数默认为8,我们修改为1。首先,修改validate_password_policy参数的值。5.7要求密码设计的复杂一点才能使用。成功登录mysql,修改密码。(这里我们需要退出mysql)提示输入密码,直接回车跳过。查看防火墙端口开放的情况。
2025-08-18 17:51:20
238
原创 Switch 分支判断(2)
语句是一个常见的错误,可能导致意外的穿透效应,使程序执行不符合预期的代码块。语句被广泛用于根据用户的输入选择执行相应的操作。例如,在 Java 中,如果需要根据对象的类型执行不同的操作,可以使用。值(如数字范围),按照从小到大或从大到小的顺序排列。语句根据用户输入的数字执行对应的代码块,实现了菜单选择功能。结构(如在 JavaScript 中),但在某些特定场景下,运算符,实现了根据对象类型进行分支判断的功能。在这个例子中,用户通过输入数字选择相应的操作,标签,使代码结构更清晰,便于阅读和理解。
2025-08-18 17:36:50
394
原创 解析 Switch 分支判断
分支判断语句便脱颖而出,成为更简洁、高效的选择。它能清晰地将不同条件分支区分开来,使代码结构一目了然,尤其适用于处理具有固定取值范围的变量或表达式的情况。可以放在任意位置,但在实际编写代码时,不建议随意改变其位置,除非有特殊的逻辑需求,否则遵循常规的放置方式能让代码更易于理解和维护。关键字后的括号内放置要进行判断的表达式,该表达式的结果必须是特定类型(具体类型要求因语言而异)。语句中的任意位置,但通常建议放在末尾以提高代码可读性。标签后跟一个常量值和冒号,当表达式的值与某个。后的值匹配时,便会执行该。
2025-08-18 17:27:49
1239
原创 IDEA 调试总结
按此快捷键后,会自动定位到当前断点行,并列出可进入的方法,点击方法即可进入方法内部。此功能在存在多个方法调用的复杂场景下非常实用,能精准选择进入所需的方法,提高调试效率。例如,在循环中,若只想在循环变量等于特定值时暂停调试,即可设置条件断点,避免在循环的每一次迭代都暂停,节省调试时间。断点是调试的关键,通过在代码行左侧单击,即可添加断点。当程序运行到断点处时,会暂停执行,方便开发者检查代码状态。条件断点允许开发者设置特定条件,只有当条件满足时,断点才会生效。设置方法为:在已添加的断点上右键,选择。
2025-08-18 17:13:38
828
原创 SpringMVC
SpringMVC是基于Java的实现MVC设计模式的请求驱动型轻量级Web框架,通过一套注解让简单的Java类成为处理请求的控制器,无需实现任何接口。
2025-07-17 10:49:06
483
原创 归并排序Java
先拆分,再合并,在合并过程中借助临时空间进行排序 拆分:从中间位置拆开,分成左右两部分,继续进行拆分,直到数据拆分成独立时停止 合并:从哪儿拆开借助临时空间写回哪儿。
2025-07-13 14:44:43
132
原创 堆排序java
6.如果parent指向的值小,父子节点进行交换,交换完成之后parent指向child,child继续指向左右孩子的最大值,继续比较,直到child为空或者parent指向的值大。大顶堆:所有节点都是父节点的值大于等于左右孩子的值(最多一个父亲,孩子可多个) 最大的值是根节点。构建条件:arr[i]>=arr[2i+1]&&Arr[i]>=arr[2i+2]2.定义parent的左孩子child,判断有无左孩子(有孩子一定有左孩子)3.如果没有左孩子,则parent指向的节点符合大顶堆,继续向前检测。
2025-07-13 14:42:55
239
原创 选择排序java
6.基准数和相遇位置进行交换,交换完成之后基准数到达正确位置。2.定义游标j游标从后往前移动 找到第一个比基准数小的停下。3.定义游标i从前往后移动 找到第一个比基准数大的值停下。7.以基准数为起点,分成左右两部分,重复上述所有。1.定义待排序数组当中的第一个作为基准数。5.重复234直到i和j游标相遇。4.i和j游标指向的值进行交换。
2025-07-13 14:39:58
306
原创 SpringBoot
配置类:@DataSpringBoot极大地简化了Spring应用的开发流程,使开发者能够专注于业务逻辑而非配置。通过本文的介绍,您应该已经掌握了SpringBoot的核心概念和基本使用方法。建议在实际项目中多加练习,深入理解其设计理念和实现原理。
2025-07-13 14:32:23
233
原创 SpringIOC
IOC 启动Spring项目时,spring给我们创建,将创建的对象放到IOC容器中,用的时候直接获取对象就行。默认情况下他会调用类中无参数的构造器,如果没有无参数构造器则不能创建成功。问题:人为创建对象,更换实现类需修改源码,违反开闭原则。id:Bean实例对象在Spring容器中的唯一标识。bean标签:用于配置对象交给Spring来创建。核心思想:将对象创建权交给Spring容器。(二)、注入属性:属性(对象里的变量)@Component针对普通类。@Service 针对业务层。
2025-06-22 12:23:14
245
原创 Java代理模式
代理模式为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式是Java开发中极其重要的设计模式,它通过引入代理对象来控制对原始对象的访问,实现了开闭原则(对扩展开放,对修改关闭)。对于简单场景,可以使用静态代理对于需要动态代理的场景,优先考虑JDK动态代理对于没有接口的类或需要更高性能的场景,使用CGLIB动态代理。
2025-05-14 08:44:15
1067
原创 java代理模式
给目标对象提供一个代理对象,并且由代理对象控制对目标对象的引用目标对象不对用户提供引用,用户只能看到当前代理对象(回顾:对象的产生:在堆中开辟一块内存空间,
2025-05-14 08:28:16
314
原创 Java包装类
文章主要讨论了Java中的基本数据类型、包装类及其相互转换,特别是在自动装箱和拆箱过程中的行为。基本数据类型包括byte、short、int、long、float、double、boolean和char,它们不具备操作数据的能力。每种基本数据类型都有一个对应的包装类,如Integer对应int。在自动装箱和拆箱过程中,Java会调用如Integer.valueOf()和intValue()等方法。文章还深入分析了“128陷阱”,即对于-128到127之间的整数,Java会缓存Integer对象,因此在这个范
2025-05-10 16:57:01
710
原创 java多态
多态是同一个行为具有多个不同表现形式或形态的能力。在Java中,多态是面向对象编程中的一个重要概念,它允许不同类型的对象对同一方法进行不同的实现。具体来说,多态性指的是通过父类的引用变量来引用子类的对象,从而实现对不同对象的统一操作。
2025-05-09 18:36:29
395
原创 java反射
Servlet没有传统的main方法,而是通过反射机制来加载和执行。反射是一种在运行时获取类信息的能力,包括方法、变量、构造器等。要使用反射,首先需要生成类对象,可以通过Class.forName("全类名")、类名.class()或对象名.getClass()三种方式实现。生成类对象后,可以获取类的变量、方法、构造器和接口等信息。
2025-05-09 15:40:32
808
原创 单表查询语句
update student set name="qq11",age=18,sex="女" where id =18。update student set name="小刚",age=19,sex="男" where id =5。insert into student(name,age,sex) values("丽丽",20,"女")-- count()取得的记录数量 count(字段名称)不统计为null的记录。-- group by 字段名称。-- 分页查询 限制查询。-- max()求最大值。
2025-03-01 19:06:18
258
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅