自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 Spring AOP 底层原理

Aspect@Component// 目标方法执行。

2025-07-29 17:01:33 153

原创 中国移动宽带,家庭网络两个主从设备工作原理

• 在手机WiFi设置中,手动选择 从设备的5G信号(同名SSID但BSSID不同,主:80:88:00:8d:ee:d6,从:f4:e8:4f:e6:63:d2)。• 当终端(如手机)从客厅走到卧室,信号强度(RSSI)低于阈值(如-70dBm)时,自动断开主设备,连接从设备的同名WiFi。从设备 → 主设备 光信号(1577nm) G1612 通过内置光模块将电信号转为光信号,经光纤传输至主设备。从设备(G1612)本质是“光电转换中继器”:需将WiFi信号转为光信号回传主设备。

2025-07-25 22:10:49 878

原创 家庭网络拓扑知识

根据您提供的两张图片和设备描述,您家中的网络拓扑是典型的 中国移动 FTTR(Fiber to The Room)全光组网方案,具体架构和角色解析如下:📡 一、设备角色定位设备型号 功能角色 网络层级 关键证据ZTE:G7615AV5 主光猫(光网关) 核心层 1. IP地址 192.168.1.1(默认网关)2. 显示PON上行速率(TX/RX:2500/1250Mbps)ZTE:G1612 从光网关(子设备) 扩展层 1. 图片标注 “登录从网关”

2025-07-25 14:52:55 884

原创 局域网主机访问外网的流程

主机:目的不在本网 → 发给默认网关(路由器 LAN IP)路由器:接收 → NAT 源地址+端口 → 转发到外网路由器 LAN 口:既有内网 IP(供主机当网关用),又有公网 IP(WAN 口,供外网识别)这样就完成了“跨子网”的通信。希望这下把整个链路彻底串起来了!

2025-07-24 16:30:39 566

原创 什么是宽带?什么是wifi?什么是光猫?

我们来分别解释下宽带和Wi-Fi宽带(Broadband)指的是你从运营商(比如中国电信、移动、联通)购买的上网服务。Wi-Fi是一种无线局域网技术,用于在你家里、办公室等小范围内无线连接设备上网。项目宽带Wi-Fi是什么一种上网服务(购买的)一种无线连接方式(技术)谁提供运营商(电信、移动等)你家路由器是否收费收费(按月/年)免费(用自己的设备)作用把你接入互联网无线传输宽带信号到设备连接方式光纤插入光猫/路由器手机、电脑连接 Wi-Fi 热点。

2025-07-24 15:28:41 414

原创 路由器中NAT(Network Address Translation)网络地址转换

这样就解决了“多台机器共享一个公网 IP 时,如何正确区分不同进程/连接”的问题。希望这个梳理能让你对 NAT 中端口转换的全过程更加清晰!,它只是在内存里维护一张“内网 IP:端口 ↔ 外网 IP:端口” 的映射表。)只在主机内部被使用,路由器只是在转发时改写包头而已。:路由器收到这个发往互联网的数据包。:把修改后的包发到互联网。当互联网服务器把响应发回。

2025-07-23 22:18:52 279

原创 详细解释一下 @RestController 这个注解,帮助你全面理解它在 Spring 中的作用、原理和使用场景。

是 Spring 4 之后引入的注解,本质上是:等价于:也就是说, 是一个复合注解,标注在类上时,表示:是 Spring MVC 的核心注解,表示当前类是一个 Web 控制器。Spring 会扫描带有该注解的类,将其注册为一个 Bean,并处理其中的 HTTP 请求映射方法。2. 表示方法的返回值会被直接写入 HTTP 响应体中,不会走视图解析器。例如:返回的就是纯字符串 ,而不是去找视图。最常见的使用场景就是开发 JSON API,比如前后端分离项目,前端是 Vue、React、Angul

2025-07-09 11:54:26 427

原创 PUT请求和POST请求有什么区别?他们是不同的请求吗?我以为PUT请求只是标识作用,底层还是用POST请求,因为我之前学习的网络的时候,以为只有get和post请求

GET:获取资源POST:创建资源(或提交数据)PUT:更新资源DELETE:删除资源你学网络时如果只接触到了GET和POST,那可能是因为早期的网页和表单主要用这两个,但实际上 HTTP 规范(从 1.1 起)就已定义了完整的方法集。GET /user?GET:查 → 参数放 URL,不能有 bodyPOST:增 → 参数放 body,非幂等PUT:改 → 参数放 body,幂等DELETE:删 → 参数放 URL,幂等但不推荐放 body。

2025-07-09 11:37:41 1012

原创 Project Settings > Modules 下Language Level 设置 Java 语言版本,和整个项目使用的java编译和运行版本有什么关系?和Maven编译运行的版本有关系吗?

设置项作用举例影响控制你能用什么语法Java 11 → 可以用var只影响 IDEA 编译器和编辑器控制项目编译/运行 JDKJDK 17控制实际用哪个 JDKMavensourcetarget控制.class字节码兼容性控制编译器兼容的 JVM 版本。

2025-07-08 17:25:55 882

原创 “-javaagent:D:\...\JetBrains\IntelliJ IDEA 2023.1.4\lib\idea_rt.jar=19045:D:\Software\...“命令,IDEA 调试

名称类型说明IDEA 本身1 个进程提供界面、发送调试命令Java 程序进程1 个进程运行你写的代码JVM 中 idea_rt 线程多个线程启动 socket 服务 + 拦截断点JVM 中你的线程多个线程你写的主程序、线程等问题原因IDEA 为何用 JavaAgent?必须在 JVM 启动前介入调试逻辑,注入断点钩子IDEA 为何不直接调 JVM?JVM 无法在运行中插入调试器,需预设 agentidea_rt.jar 起了什么作用?

2025-07-08 17:08:14 889

原创 那解释一下Project Settings中Modules是什么?有什么用?应该是与我三个Maven项目之间依赖有关吧?

问题解答Modules是什么?IDEA 管理多个子项目(Maven 子模块)对应的设置中心与 Maven 项目的关系?一个 Maven 子项目对应一个 IDEA Module能否配置模块间依赖?✅ 可以,IDEA 会自动识别pom.xml中的依赖关系有什么用?控制类路径和编译依赖,确保模块能正确引用其他模块的类。

2025-07-08 16:17:54 344

原创 我在IDEA中的Project Settings下Libraries下看到了maven中的依赖包,是不是项目运行的时候,IDEA会自动在运行命令中用-cp 加入这里的所有包作为类路径?

你的问题回答说明Libraries 中的 jar 是否会加入 classpath?✅ 是,IDEA 会自动在运行命令中使用-cp加入所有依赖需要自己手动加-cp吗?❌ 不需要,IDEA 会自动处理依赖来源是哪?pom.xml中的 Maven 依赖 + 手动导入的本地 jar是否可以查看运行命令?✅ 可以在运行配置或控制台查看。

2025-07-08 16:12:22 277

原创 你的类路径(`classpath`)中没有 `java/lang` 或 `java.base` 这样的路径,那这些核心类(比如 `String`、`System`、`Object`)是从哪里来的?

问题说明为什么java.lang没在 classpath 中?因为它是 JVM 自带的核心类,由 Bootstrap ClassLoader 加载需要手动添加 JDK 类路径吗?❌ 不需要,JVM 启动时自动设置classpath 包含哪些类?只包含你的项目代码、依赖 jar、输出的.class文件属于哪个模块?Java 9+ 是java.base模块,Java 8 是rt.jar。

2025-07-08 15:45:23 381

原创 类路径(Classpath)中放的是什么?

问题回答/说明类路径中放的是.class文件吗?❌ 不是,放的是包含.class文件的根目录或.jar文件类路径可以是哪些类型?✅ 目录路径或 JAR 路径类路径可以是多个吗?✅ 可以,用(Linux/mac)或;(Windows)分隔类路径中会用到绝对路径吗?✅ 或 ❌,都可以,取决于你是用绝对路径还是相对路径配置。

2025-07-08 14:34:08 500

原创 多个 Maven 子模块下是否可以都有 com.sky 包结构?

问题答案/说明多个模块可以有相同的包名吗?✅ 可以,只要类名不冲突Maven 会自动“合并”这些类路径吗?✅ 是,它会把所有依赖模块的.class文件放入主模块的类路径中Java 是否会区分包来源?❌ 不区分包来源,只看最终类路径中是否存在唯一类模块间包结构冲突时会怎样?❌ 如果类名和包名都一样,会报错或行为不可预期,应避免这样逻辑更清晰,也避免冲突。

2025-07-08 14:24:03 685

原创 我有三个maven子项目,放到了同一个项目下,都有com.sky包结构 下面是我的一个子项目文件中导包 import com.sky.enumeration.OperationType; 为什么可以

现象原因不同子模块下相同包名的类能互相import模块 A 的pom.xml显式依赖了模块 B,Maven 加入了类路径为什么不需要?Java 是按包名组织的,不是按模块名可以多个模块有com.sky吗?✅ 可以,包名可以一样,Maven 会合并类路径。

2025-07-08 11:52:20 217

原创 $ javac -d ./bin src/**/*.java 这样编译之后,目录结构为什么没有src包了

问题原因说明编译后没有src/目录编译输出目录是根据package而不是源路径生成的如何决定.class的目录结构由源码文件中的package决定如何控制输出路径结构使用-d设定根目录,剩下的交给package结构。

2025-07-08 11:24:03 320

原创 如果我不处理异常,是不是一定要抛出异常,需要我手动throw抛出吗?

抛 IOException),你必须要么处理异常(try-catch),要么在方法签名上用 throws 抛出去。因为你调用的方法自己已经可能抛出了 IOException,你只需要告诉编译器:“我知道它可能抛异常,我要么处理、要么声明。➡️ 这是一个受检异常(Checked Exception),编译器强制你必须“处理”或“声明”。❗️你不需要自己手动用 throw 抛异常对象,只要方法调用本身会抛,它就要求你处理或声明。自己主动抛异常 ✅ 需要 throw new IOException(…

2025-07-08 09:25:12 493

原创 在java异常中,throw和throws是如何配合使用的?解释各自的作用,同时是不是由throw,方法中一定要有throws

关键字用途出现位置是否必须throw真正抛出异常对象方法体中✅ 必须跟具体异常对象throws声明可能抛出的异常类型方法签名中✅(对受检异常)❌(对非受检异常)

2025-07-07 20:40:57 396

原创 public static <K> Pair<K> create(...)为什么static后面还需要一个<K>

问题回答为什么static后要<K>?因为你要声明这是一个泛型方法K是该方法自己的泛型变量。为什么不能用类的<T>?因为static方法属于类本身,无法访问类的泛型类型参数T。<K>放在哪里?必须放在static后、返回类型Pair<K>前,语法规定。

2025-07-07 11:04:06 203

原创 Spring的AOP中,切点表达式的两种写法

问题回答为什么有些切点单独写方法?为了复用、提高可读性、方便维护为什么有些切点直接写在通知上?简单场景下更快速、简洁推荐用法?简单场景可内联,复杂或复用场景建议独立定义。

2025-07-06 21:14:33 253

原创 readAllBytes方法只能接受Path对象吗?

问题回答参数类型只能是Path类型能传File吗?❌ 不能直接传,需要.toPath()转换为什么?因为Files属于 NIO API,依赖Path。

2025-07-06 20:52:13 255

原创 1. `Files.readAllBytes(Path)` 是否自动将 `Path` 转为 `File`? 2. `Path` 是接口,那它的实现类是谁?

Path是文件路径的通用抽象,Files是处理它的工具类,不需要借助File;而Path的实际实现类是平台相关的,比如或UnixPath,由 JVM 自动决定。

2025-07-06 20:43:50 263

原创 java中Path和Paths,以及Paths.get(),Path.of()方法

这是 Java NIO 文件操作中非常关键的基础概念,下面我将给你。

2025-07-06 20:37:36 323

原创 Spring Boot 中配置属性的优先级

原话推荐修正Spring Boot 命令行参数优先级最高✅ 正确其次是 Java 系统属性✅ 正确之后是 application.yml 文件✅ 正确最后是类型⚠️ 应该说:“${}中的默认值只有在找不到任何配置时才生效,不属于 Spring Boot 的配置体系优先级”

2025-07-06 16:50:01 268

原创 ❓ 为什么在 IntelliJ IDEA 的 Program Arguments 里可以写 --server.port=8080,Spring Boot 就能识别并生效?这些不是普通的命令行字符串吗?

项目说明是什么?Spring Boot 的命令行配置参数格式是普通 args 参数吗?✅ 是,但 Spring Boot 会识别和解析能当作配置使用吗?✅ 能,等价于 yml 或 properties 配置是否影响系统属性?❌ 不会设置成 JVM 的 System Property。

2025-07-06 16:49:15 323

原创 那java中系统属性和命令行参数的区别是什么?

JVM 启动时传入的键值对参数,或者运行中程序设置的属性。

2025-07-06 15:52:48 245

原创 在类中对应的属性名称采用驼峰命名法,这里是Springboot默认设置的配对方式吗?因为在yml文件中用了“-”分隔

配置项说明yml 使用(短横线)推荐,用于分隔多个词Java 使用驼峰命名推荐,符合 Java 命名规范Spring Boot 自动映射机制✅ 会将短横线自动映射为驼峰字段生效条件通过注解绑定类。

2025-07-06 15:42:04 235

原创 Springboot中 @Value 或 @ConfigurationProperties区别是什么?

情况建议使用方式只注入 1~2 个配置项封装一组配置(如user.*配置有 List、Map、嵌套结构等希望对配置项做格式或范围校验@Validated。

2025-07-06 15:24:27 414

原创 在 Java中环境变量(Environment Variables)和系统属性(System Properties)

问题回答说明环境变量和系统属性是一个概念吗?❌ 不是。环境变量是系统级别,系统属性是 JVM 级别如何设置?环境变量:系统 shell 设置;-Dkey=val如何读取?;如果你正在开发一个 Java 项目,推荐用系统属性管理 Java 内部配置,比如日志级别、线程池大小;如果你要做部署或 Docker 容器配置,推荐用环境变量传入外部参数(如数据库密码、API密钥)。

2025-07-06 14:57:45 339

原创 Source Root(源码根目录)为什么要设置?以及它是IDEA用的吗?就是在编译期间给IDEA辅助用的?以及它是如何设置的,我可以手动设置吗?

问题解答说明Source Root 是什么?Java 包结构的起点目录,IDE/编译器用来识别packageJVM 用吗?❌ JVM 不用,它只看 classpath是 IDE 辅助用的吗?✅ 是的,IDE 编译、导入类、语法提示等都依赖它能手动设置吗?✅ 能,右键目录Maven 项目还需要手动设置吗?❌ 不需要,IDEA 会自动设置。

2025-07-06 14:40:59 345

原创 什么是source root,和工作目录的区别和联系是什么?

对象核心定义编译期间包结构的起点,影响 import 和 package工作目录程序运行时处理相对路径文件的基准目录它们完全是两个不同层面的概念,一个用于“包结构 → 编译”,一个用于“文件访问 → 运行时”,但常常出现在开发中需要同时理解、正确使用。

2025-07-06 13:14:24 229

原创 java中手动引入第三方包的步骤

项目是否使用 Maven/Gradle如何引入第三方依赖✅ 使用了 Maven/Gradle配置pom.xml或,自动下载依赖❌ 没有使用构建工具手动下载.jar→ 放到lib/→ 配置类路径。

2025-07-06 12:06:41 258

原创 Java 系统属性(System Properties)

点内容获取当前 Java 程序的工作目录来源JVM 启动时自动设置的一组系统属性存储结构Properties类对象,可以使用获取全部常见用途路径处理、跨平台兼容、用户目录定位、调试等推荐写法使用构造路径最安全跨平台。

2025-07-06 11:53:46 399

原创 char 不是 Java 中的 2 字节(16 位)吗? 为什么用 UTF-8 编码写入时,一个中文要占 3 个字节?

问题回答Java 的char是 2 字节吗?✅ 是的,UTF-16 编码单元UTF-8 中一个中文是几字节?通常是 3 字节(U+0800 ~ U+FFFF 范围)为什么 UTF-8 比char更长?因为 UTF-8 是变长编码,针对不同字符长度不同最终文件内容是字节编码还是字符?是 UTF-8 编码的字节数据,不是 Java 的char直接写入的。

2025-07-05 21:35:45 357

原创 Report report = Person.class.getAnnotation(Report.class); 为什么 Person.class 这个类对象,能够通过反射拿到一个注解的“实现类”?

步骤说明注解写在类上编译器将注解及其参数存入.class文件使用反射获取注解JVM 读取 class 文件中注解数据生成代理对象JVM 自动创建一个实现了注解接口的代理类实例使用注解参数调用实际是调用代理对象的对应方法返回注解值。

2025-07-05 18:05:33 382

原创 帮我仔细讲解一下注解中设置值,这值是如何被注解修饰的类利用到的?介绍具体内部逻辑

/ 1. 定义注解@Retention(RetentionPolicy.RUNTIME) // 关键:允许运行时反射获取@Target(ElementType.TYPE) // 说明这个注解只能用于类上// 2. 使用注解// ...注解@MyConfig被应用到类MyService上;它包含两个参数name和version,我们设置了值;这些值会在编译期间写入.class文件中,供运行时读取。源码中写注解↓编译器将注解信息写入 class 文件↓。

2025-07-05 17:39:22 401

原创 也就说ObjectOutputStream只是一个函数集合,并没有存储能力?即没办法将对象字节输出到某个地方?

点内容是否能独立保存数据?❌ 不行,它只是把对象转换成字节的“功能类”需要搭配谁使用?必须搭配子类,如数据真正保存在哪?是在你传入的底层流里,例如:内存(ByteArray)或文件。

2025-07-05 10:25:01 293

原创 解释一下ObjectOutputStream和ByteArrayOutputStream作用,以及为什么需要有一个ByteArrayOutputStream?单独用ObjectOutputStream

点内容负责把对象写成“字节”,但它不能独立使用,必须依赖一个底层输出流是内存中的“容器”输出流,用来保存写出的字节为什么需要它因为你不想写入磁盘、网络,只想把对象写入内存,再读取出来(实现深拷贝)不能单独用的本质原因它是包装流,必须包一个真正的“输出目标”流(如。

2025-07-05 10:24:35 222

原创 Java 序列化机制实现深拷贝(deep copy)

点内容为什么使用?将对象写到内存中的字节数组里,便于后续反序列化(不需要中间文件)整体实现的目标通过序列化 → 反序列化实现对象的完整深拷贝要求所有字段(包括嵌套对象)都必须实现接口优点简单通用,能处理复杂对象结构的深拷贝缺点效率较低,依赖,不能拷贝 transient 字段或非可序列化对象。

2025-07-05 10:07:30 204

PotPlayer.zip

一个非常简约的轻便的播放器,几乎可以播放所有格式的视频

2021-03-18

空空如也

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

TA关注的人

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