- 博客(50)
- 收藏
- 关注
原创 接口、普通类和抽象类
本文对比了Java中普通类、抽象类和接口的特性:普通类是最基础的类,支持成员变量/方法定义和实例化;抽象类是半抽象模板,可包含抽象方法,需子类继承实现;接口是纯抽象的行为规范,主要定义抽象方法(JDK8后支持默认/静态方法),支持多继承。三类在实例化、继承机制和功能定位上存在显著差异。
2025-12-18 22:02:39
257
原创 JDK11的安装教程
本文介绍了JDK的概念、下载安装及环境配置方法。JDK是Java开发工具包,包含运行环境和开发工具。下载JDK11需访问Oracle官网并注册账号。安装完成后,需配置JAVA_HOME、CLASSPATH和PATH三个环境变量,分别指向JDK安装路径和相关库文件。最后通过运行java -version命令验证安装是否成功。
2025-12-18 19:34:27
549
原创 Java中的接口可以定义哪些方法
Java接口是定义类功能规则的标准,使用interface关键字声明。接口成员包括公有静态常量(必须初始化)和抽象方法(JDK7+)。JDK8+支持默认方法和静态方法,JDK9+支持私有方法。接口没有构造方法,不能被实例化。类通过implements实现接口,支持多实现;接口之间可多继承(extends)。实现类分为普通类(需实现所有方法)和抽象类(可保留抽象方法)。
2025-12-17 09:27:25
496
原创 成员变量和局部变量深度对比
摘要:成员变量(实例变量和类变量)定义在类内部,作用域覆盖整个类或对象,具有默认值,存储在堆或方法区,生命周期较长。局部变量定义在方法或代码块内,作用域仅限于定义处,无默认值,存储在栈内存,生命周期短暂。核心区别包括作用域、默认值、内存位置和生命周期。常见错误包括局部变量遮蔽成员变量(需用this或类名访问)和作用域混淆(如循环内变量循环外不可用)。
2025-12-17 09:25:39
374
原创 Maven的install和package有什么区别?项目打包选哪个?
Maven打包与安装的区别:mvn package仅将项目编译测试后打包到target目录,而mvn install会先执行package步骤,再将生成的包安装到本地Maven仓库。安装后可在本地仓库根据pom.xml中的坐标(如groupId/artifactId/version)找到对应的jar包,路径以点号分隔为多级目录。两种操作都会在项目target目录生成包,但install额外会将包部署到本地仓库供其他项目依赖使用。
2025-11-28 14:14:04
191
原创 打成jar包的过程测试案例报错怎么跳过
摘要:在Maven项目的pom.xml文件中,可以通过在<properties>标签内添加<maven.test.skip>true</maven.test.skip>配置来跳过测试阶段。这个配置应与其他属性(如maven.compiler.source、spring-boot.version等)一起放置在<properties>节点下。添加该配置后,Maven构建时将自动跳过测试步骤,适用于需要快速构建但不需要运行测试的场景。
2025-11-28 13:38:19
132
原创 项目找不到依赖?依赖包问题一键解决
当Maven依赖无法在公共仓库找到时,可先在https://mvnrepository.com搜索。若依赖为私有项目,需手动安装:使用mvn install命令指定jar包路径、groupId、artifactId、version和packaging类型。命令格式为:mvn install:install-file -Dfile="xxx.jar" -DgroupId="xxx" -DartifactId="xxx" -Dversion="
2025-11-28 12:01:28
421
原创 【Java项目】返回结果类封装
本文介绍了一个通用的Java返回类CommonResult<T>的设计,采用泛型支持不同数据类型返回。该类包含错误码、数据和消息字段,提供静态方法error()和success()快速构建响应对象。错误码定义部分展示了两种实现方式:通过接口定义常量(默认public static final)和使用枚举类型(推荐方式)。枚举方案通过GlobalErrorCodeEnum整理了HTTP标准状态码和自定义业务错误码,采用Lombok简化代码。这种设计实现了标准化响应格式,便于前后端统一错误处理。
2025-10-05 11:07:50
385
原创 Spring Boot项目通过tomcat部署项目(包含jar包、war包)
本文介绍了SpringBoot项目的两种Tomcat部署方式:1)内置Tomcat打包为Jar,适合快速开发和独立部署;2)外置Tomcat打包为War,适合传统企业环境。详细说明了每种方式的配置步骤,包括pom.xml修改、入口类调整、打包命令等。重点对比了两种方式的优缺点,并提供了部署时的注意事项,如端口配置、依赖管理等。文章还简要介绍了Tomcat的发展历史和核心功能,帮助开发者根据实际需求选择合适的部署方案。
2025-09-16 22:42:20
1571
原创 RabbitMQ的文档介绍及使用
本文介绍了RabbitMQ消息队列的系统架构,重点讲解了其核心组件和交换机类型。RabbitMQ包含Broker、VirtualHost、Connection、Channel等基础组件,以及Exchange、Queue、Binding等消息路由要素。详细解析了direct(精准路由)、fanout(广播)、topic(模糊匹配)和headers(头部匹配)四种交换机类型的特点及应用场景,并提供了Java代码示例演示消息收发过程。文章还指出了不同交换机类型的适用场景,如fanout适用于广播通知,topic适
2025-09-15 21:26:42
1565
原创 Git的强软硬回退(三)
本文介绍了Git代码回退的两种方法:UndoCommit和Reset。针对已commit但未push的情况,可通过右键点击历史记录选择"UndoCommit"或"Reset Current Branch to Here"。重点详解了Reset的四种模式:Soft保留更改并重新提交;Mixed保留更改但不提交;Hard彻底删除更改(慎用);Keep保留更改但撤销提交。特别强调使用Reset后必须选择强制推送才能生效,同时提醒该操作会改写历史记录,需确保团队成员知情。这些
2025-09-04 22:21:34
810
原创 Git在idea中的实战使用经验(二)
本文介绍了Git代码提交与合并操作的关键知识点。主要内容包括:1)代码提交与远程分支同步的方法;2)merge命令的使用场景和合并类型(快进合并和三向合并);3)cherry-pick的选择性提交应用;4)IDEA中Git日志视图的解读。文章通过实例说明了不同合并场景下的操作方式,并对比了merge与cherry-pick的区别,为开发者提供了团队协作中的版本控制实践指导。
2025-09-03 21:38:20
1689
原创 Git在idea中的实战使用经验(一)
这篇文章系统讲解了Git、GitHub、GitLab的核心概念和IDEA操作指南。首先介绍了Git的四个关键区域:工作区(执行文件操作)、暂存区(准备提交)、本地仓库(存储历史版本)和远程仓库(服务器存储)。然后详细演示了如何在IDEA中关联Git、克隆仓库、管理分支、处理文件追踪和暂存区操作。重点讲解了分支切换策略和stash功能的实用技巧,强调了在修改未提交时切换分支的注意事项。文章以实战为导向,适合开发者快速掌握Git工作流和团队协作要点。
2025-09-02 23:42:22
1204
原创 在Linux系统中安装Jenkins(保姆级别)
本文为Jenkins新手提供详细安装教程,采用原始方式直接基于操作系统安装,避免复杂容器环境。内容包括:JDK21和Maven的安装准备、Jenkins war包下载与启动、初始化配置、国内镜像地址替换、启动关闭方法及常用插件推荐。重点解决插件安装失败问题,通过修改配置文件替换国内镜像源,并详细说明前后台启动方式,适合零基础用户快速上手。
2025-09-01 21:42:54
2018
原创 在Linux环境安装Maven(保姆级别)
本文详细介绍了在Linux系统下安装Maven的完整流程。首先需确保已安装Java环境,然后下载Maven安装包并上传至服务器。通过解压安装包、配置环境变量(修改/etc/profile文件)、验证安装等步骤完成基础安装。接着创建本地仓库目录并配置阿里云镜像加速依赖下载,包括修改settings.xml文件设置本地仓库路径和镜像源。文末提供了vim编辑器的使用参考,帮助用户顺利完成配置。整个安装过程包含详细命令和注意事项,适合初学者按步骤操作。
2025-08-31 23:24:44
1835
原创 在Linux系统下安装JDK21(保姆级别)
本文介绍了JDK21在Linux系统上的安装步骤。主要内容包括:1)从Oracle官网下载JDK安装包;2)检查并清理旧版本Java;3)创建安装目录并上传解压安装包;4)配置环境变量(JAVA_HOME、CLASSPATH、PATH);5)验证安装是否成功。文中特别提醒删除旧版本时要谨慎操作,并详细说明了不同Linux系统下rz命令的安装方法。最后通过java -version命令验证安装是否成功。
2025-08-30 16:41:54
2638
原创 在Linux的环境下安装GitLab(保姆级别)
本文介绍了在Linux环境下使用Docker安装GitLab的详细步骤:1)通过Docker命令配置并运行GitLab容器,设置主机地址、端口映射和数据卷;2)启动容器后,查看状态并进入容器;3)通过HTTP访问GitLab,使用默认root账户登录(密码在指定文件中);4)登录后需立即修改密码以防失效。文章提供了完整的操作流程和注意事项,帮助用户快速完成GitLab的安装部署。
2025-08-29 23:16:42
757
原创 动态代理保姆级别
本文介绍了Java动态代理的核心概念与应用。动态代理通过Proxy类实现无侵入式方法增强,包含三个关键要素:被代理对象、代理对象和代理方法调用。代码演示了如何为明星对象创建代理,在唱歌跳舞前进行"收钱"等预处理操作。代理还能拦截方法(如拒绝"扫厕所"请求),并通过接口定义可代理的方法范围。文中以ArrayList为例,展示了如何增强add方法(统计耗时)和拦截remove方法,同时保持其他方法原样执行。动态代理广泛应用于AOP编程,实现方法拦截和功能增强。
2025-08-22 23:53:01
1174
原创 详细讲解Java中的反射和经典面试题(保姆级别)
Java反射机制摘要:反射是Java在运行时动态获取类信息并操作类成员的能力。通过Class对象可获取构造方法、成员变量和方法,无视访问修饰符。主要应用包括:1)动态创建对象(Class.forName()获取Class对象,newInstance()实例化);2)操作成员变量(getDeclaredField()获取字段,set()修改值);3)调用方法(getMethod()获取方法,invoke()执行)。反射与配置文件结合可实现灵活扩展,修改配置即可切换类和方法。但需注意:1)反射破坏封装性;2)f
2025-08-21 22:20:47
1545
原创 Docker常见指令速查
Docker常用指令分类摘要:包含镜像管理、容器管理(创建/启停)、容器操作、仓库管理、系统信息和网络配置六大核心功能模块,覆盖日常运维的主要场景。所有指令均支持--help参数查看详细用法说明。
2025-08-18 23:39:01
492
原创 Cookie、Session、Token详解
本文将Cookie、Session和Token比作食堂消费场景中的三种身份验证方式: Cookie:类似食堂的消费小纸条,记录简单信息(如偏好、登录状态),但容量小(约4KB)且易被篡改,需加密保护。 Session:像专属储物柜,敏感数据存在服务器(如购物车、个人信息),通过Cookie传递SessionID钥匙。但分布式系统中跨服务器共享困难,需额外同步。 Token:如电子饭卡(二维码),携带加密权限信息,无状态、可跨域/服务使用,适合分布式系统,避免重复登录。 总结:Cookie用于基础身份识别,S
2025-08-14 23:41:38
1517
原创 什么是HTTP的无状态(举例详解)
HTTP协议本身是无状态的,服务器无法记住用户之前的访问记录。就像快递驿站无法自动识别回头客,每次都需要用户重新提供信息。为解决这个问题,可以通过Session和Cookie机制,给用户分配唯一标识(类似取件码),让服务器能识别重复访问的用户,从而保持会话状态。这种技术弥补了HTTP无状态的缺陷,实现了用户操作的连续性。
2025-08-13 23:46:27
766
原创 SQL 与 NoSQL 的核心区别
SQL与NoSQL数据库对比摘要:SQL数据库采用表结构,支持ACID事务和SQL查询,适合结构化数据和强一致性场景(如MySQL、PostgreSQL)。NoSQL数据库(如Redis、MongoDB)具有灵活的数据模型(键值/文档/图等),支持高并发和海量数据,但事务支持较弱。两者互补,SQL适合财务系统等结构化场景,NoSQL适用于社交网络等高扩展需求场景。选择时需权衡数据结构、一致性和扩展性需求。
2025-08-12 23:49:52
1082
原创 请求报文和响应报文(详细讲解)
HTTP请求和响应报文是网络通信的核心载体。HTTP请求报文由请求行、请求头、空行和可选的请求体组成,请求行包含方法、URI和协议版本,请求头传递附加信息,请求体用于提交数据。HTTP响应报文由状态行、响应头、空行和响应体构成,状态行包含协议版本、状态码和描述,响应头提供服务器信息,响应体返回实际数据。常见状态码包括200(成功)、404(未找到)等。请求报文示例展示了POST方法提交表单数据,响应报文示例则返回JSON格式的成功响应。
2025-08-11 22:13:18
1801
原创 JDBC的连接过程(超详细)
JDBC是Java连接数据库的标准API,使用步骤包括:1.导入数据库驱动依赖;2.通过Class.forName加载驱动;3.使用DriverManager建立连接(需URL、用户名和密码);4.创建Statement/PreparedStatement执行SQL;5.处理查询结果集;6.按顺序关闭连接资源。支持MySQL、PostgreSQL等多种数据库,可通过try-with-resources自动管理资源释放。
2025-08-10 23:27:20
803
1
原创 在Docker中下载RabbitMQ(详细讲解参数)
摘要:本文详细介绍了如何通过Docker运行RabbitMQ服务,包括镜像拉取、容器配置、端口映射等关键步骤。重点解析了docker run命令的各个参数:-i/-d控制运行模式,--name指定容器名,-v挂载数据卷实现持久化,-p映射15672(管理界面)和5672(AMQP)端口,-e设置默认用户名密码。同时提醒服务器部署时需开放相应端口。文章采用通俗易懂的"保姆级"讲解方式,适合Docker新手快速掌握RabbitMQ容器化部署要点。
2025-08-09 22:32:29
1405
原创 SVN下载及安装(保姆级别)
这篇文章简要介绍了TortoiseSVN的下载安装流程:1)访问官网下载主程序安装包和中文语言包;2)完成主程序安装;3)安装中文语言包;4)最后通过右键菜单验证安装成功。整个过程简单明了,以🐳和🐾等表情符号分隔步骤,结尾用"完美撒花~"表示安装完成。全文用简洁的步骤配合表情符号,生动地展现了TortoiseSVN的下载安装过程。
2025-08-08 22:29:28
429
原创 一篇文章入门TCP与UDP(保姆级别)
TCP和UDP是两种传输层协议,主要区别在于可靠性机制。TCP通过三次握手建立可靠连接(SYN→SYN+ACK→ACK),确保双向通信;通过四次挥手有序断开连接(FIN→ACK→FIN→ACK)。而UDP则无连接、无确认机制,简单快速但不可靠。TCP适合文件传输等需要可靠性的场景,UDP适合视频直播等实时性要求高的应用。
2025-08-07 23:48:49
2652
原创 JSON、JSONObject、JSONArray详细介绍及其应用方式
JSON是一种通用的数据交换格式,就像"快递单"一样,让不同系统/语言能互相理解数据。它支持6种数据类型:字符串、数字、布尔值、空值、对象和数组。JSONObject则是一个工具类,帮助开发者安全规范地构建JSON数据,避免手动拼接字符串时出现格式错误。它提供创建、读取、修改和删除JSON数据的方法,并支持嵌套对象的处理。在实际开发中,JSON常用于系统间数据传输,如调用第三方API时作为通用的数据交换格式。
2025-08-06 23:46:10
2052
原创 Linux命令之grep(最实用)
本文介绍了Linux中强大的文本搜索工具grep。grep能快速定位文件中的特定内容,支持多种搜索模式:-i忽略大小写、-w精确匹配、-e多关键词搜索、-n显示行号、-v反向匹配、-r递归搜索目录。特别实用的-C选项可显示匹配行前后50行内容,便于日志分析。文章还提供了grep基础语法和实战示例,帮助用户快速掌握这个高效的文本搜索工具。
2025-08-05 22:39:54
887
原创 Dbeaver数据库的安装和使用(保姆级别)
DBeaver是一款功能强大的免费开源数据库管理工具,支持所有具有JDBC驱动的数据库(包括MySQL、Oracle等主流数据库),并能处理各种外部数据源(如CSV、Excel)。本文介绍了DBeaver的开源特性、兼容性优势,并提供了详细的下载安装指南,包括两种下载方式和简单的安装步骤,帮助用户快速上手使用这款高效的数据库工具。
2025-08-04 22:04:13
610
原创 rsync远程同步工具使用(保姆级别)
rsync是一款高效的文件备份与同步工具,相比scp具有只传输差异文件、速度快等优势。文章通过三台服务器的实际案例演示了rsync的基本用法,包括将/opt目录从主服务器同步到另外两台服务器。同时指出当服务器数量增多时,手动操作效率低下,推荐使用xsync集群分发脚本来实现批量同步,并提供了相关教程链接。全文简明扼要地介绍了rsync的核心功能和使用场景。
2025-08-03 16:15:20
407
原创 编写xsync集群分发脚本(保姆级别)
分布式文件同步工具配置指南 本文介绍了如何配置xsync工具实现多节点文件同步:1)安装rsync并创建xsync脚本;2)修改脚本中的主机列表为实际集群IP;3)添加执行权限并测试同步功能;4)可选配置全局环境变量和SSH免密登录,其中包含生成密钥对和分发公钥到各节点的详细步骤。通过这套方案,用户可以实现高效的无密码跨节点文件同步,特别适合Hadoop等分布式环境使用。文末提供了相关Linux权限管理和Vim操作的参考链接。
2025-08-03 16:13:47
717
原创 Git、Gitee、GitHub、GitLab完整讲解:从基础到进阶
Git是一款分布式版本控制系统,相当于"代码时光机",能记录每次修改并支持版本回溯。GitHub和Gitee分别是国际和国内的代码托管平台,GitLab则提供全栈DevOps能力。使用Git需要配置SSH密钥实现安全认证,基本操作包括初始化仓库、添加到暂存区、提交到本地仓库、关联远程仓库等。首次推送需指定远程分支,后续操作可简化。git add和git commit是核心命令,git push将代码推送到远程仓库。
2025-08-02 17:45:22
3003
2
原创 Git下载及安装保姆级教程
本文集合了多个Linux和开发环境的实用教程资源,包括:Linux常用命令、JDK17/Redis/Docker安装指南、Docker中部署PostgreSQL/MySQL/Redis的详细步骤、阿里云服务器配置、Git安装配置详解(含版本选择、环境变量设置等)、Java Stream流使用、IDEA数据库关联方法等。所有教程均为"保姆级"详细指导,涵盖从基础操作到进阶配置的完整流程,适合开发者快速搭建开发环境和学习相关技术。CSDN博客提供了Windows/Linux系统下的各种开发工
2025-08-02 11:23:41
848
原创 如何优雅删除Docker镜像和容器(保姆级别)
摘要:本文介绍了删除Docker镜像的完整流程。首先通过"docker images"查找目标镜像ID(如07e2ee723e2d),尝试用"docker rmi 07e"删除时出现报错,提示镜像正在被容器使用。然后通过"docker ps"查看运行容器,用"docker stop 8d4"停止容器,再用"docker rm 8d4"删除容器,最后成功执行"docker rmi 07e"删
2025-08-01 22:32:01
707
原创 Linux的访问权限(保姆级别)
本文介绍了Linux系统中查看和修改文件权限的方法。使用ls -l命令可查看文件权限信息,权限字段包含文件类型和ugo三组权限。修改权限有两种方式:文字法(chmod [who][operator][permission])和数字法(3位八进制数表示ugo权限)。文字法通过u/g/o/a指定用户,+/-/=操作权限;数字法中每位数字代表rwx权限组合(如7=4+2+1表示rwx)。文章最后给出了两种修改方式的示例:chmod 777 home和chmod ugo+wx proc。
2025-07-31 19:10:47
871
原创 保姆级别IDEA关联数据库方式、在IDEA中进行数据库的可视化操作(包含图解过程)
本文介绍了在IDEA中连接和操作MySQL数据库的详细步骤。包括通过Database侧边栏连接数据库、可视化查看和编辑表数据、使用SQL控制台、修改表结构以及新建表等操作。文章强调学会MySQL后其他数据库操作类似,适合数据库初学者快速上手。操作步骤清晰简明,涵盖了数据库连接、数据增删改查、表结构维护等常用功能,帮助开发者高效进行数据库管理。
2025-07-31 15:24:23
607
原创 在Linux下安装nginx(保姆级别)
本文详细介绍了从官网下载最新版Nginx(1.28.0)并完成安装配置的完整流程。主要包括:1)检查并安装gcc、pcre、zlib、openssl等必要依赖包;2)下载解压源码包并配置安装路径;3)通过configure、make、makeinstall命令完成编译安装;4)两种启动方式及访问测试方法。文章特别强调要避免使用过旧版本,并提醒注意安装路径选择和权限问题,最后通过curl命令验证安装是否成功。整个过程包含详细的命令操作和错误解决方案。
2025-07-30 23:08:06
1858
原创 在Docker里面装PostgreSQL(保姆级别)
本文介绍了在Docker中部署PostgreSQL数据库的完整流程。首先使用docker pull命令获取最新PostgreSQL镜像,然后通过docker run命令配置容器,设置密码、端口映射和数据挂载路径。接着详细说明了在CentOS/RHEL 7+系统中如何配置防火墙:包括启动firewalld服务、开放5432端口并永久生效,最后提醒服务器环境下还需配置安全组规则。文章提供了从安装到连接的完整指引,帮助用户快速搭建可用的PostgreSQL数据库环境。
2025-07-29 21:23:14
439
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅