自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java高级特性:单元测试、反射、注解、动态代理

反射绕过泛型是 Java 类型擦除机制的副作用。尽管技术上可行,但会破坏类型安全,需谨慎使用。优先使用泛型保证类型安全;如需动态类型,改用或设计多态结构。注解(Annotation)是 Java 提供的一种元数据机制,用于为程序元素(如类、方法、变量、参数等)添加额外的说明信息。这些信息本身不会直接影响程序的逻辑,但可以被编译器、开发工具或其他程序读取并利用。提供关于程序代码的元数据描述。编译器可以利用注解信息进行编译检查(如@Override)或生成辅助代码/文件(如APT)。

2025-11-13 20:52:50 1407

原创 Java-网络编程基础

无连接:UDP 不需要像 TCP 那样先建立连接,直接发送数据包。不可靠:不保证数据包一定能送达、不保证顺序、不保证不重复。:负责通信端点(发送/接收)。:负责封装数据及其目标/来源信息。发送时构造需要指定目标地址和端口。接收时构造只需指定缓冲区,接收后可通过和getPort()获取来源信息。注意receive()方法是阻塞的。注意异常处理 (

2025-11-13 15:17:39 770

原创 Java-多线程

推荐方式:优先使用Runnable接口或Executor框架,因为它们更灵活、高效。避免直接继承Thread类,除非简单测试。最佳实践:在高并发场景使用线程池(如),避免频繁创建线程;需要返回值时使用Callable或。注意点:线程安全是关键,确保共享资源使用同步机制(如或Lock特性同步代码块同步方法Lock锁锁范围代码块内部整个方法自定义范围(需手动控制)锁类型对象锁或类锁对象锁(实例方法)/类锁(静态方法)显式锁(如灵活性较高(可指定锁对象)较低最高(支持条件变量、超时等)

2025-11-12 20:31:10 1075

原创 Java-File类与IO流全解析

特性ASCIIGBKUTF-8字符范围128 个2 万+ (主要中文)14 万+ (全球字符)编码长度固定 1 字节固定 2 字节可变长度 (1-4 字节)兼容性兼容 GB2312兼容 ASCII主要用途早期英文简体中文环境现代通用标准国际标准是否 (中国标准)是 (Unicode 实现)举例A->41中->D6 D0中->E4 B8 AD编码前的字符集和解码时的字符集必须一致!否则会出现字符乱码!

2025-11-11 18:18:53 930

原创 深入解析时间复杂度:从原理到实践

系统性的:分析基本操作数量与输入规模的关系渐进式的:关注增长趋势,忽略常数因子结构化的:从内层循环向外层分析,考虑所有控制结构不仅仅是数循环个数,而是分析循环的执行次数与输入规模的关系!基本操作指的是算法中执行时间固定的操作,不随输入规模变化。O(log n)来自于每次将问题规模减半的算法基本操作是算法分析的基础单位,代表固定时间的操作时间复杂度关注的是基本操作数量随输入规模的增长趋势。

2025-11-11 09:32:37 724

原创 Java Stream流操作全解析

Stream是 Java 8 引入的一个强大的抽象概念,用于处理数据集合(尤其是Collection类型的数据)。它不同于传统的Collection(如ListSet),Stream本身不存储数据,而是对数据源(如集合、数组)进行复杂操作(如过滤、映射、排序、聚合)的管道。你可以把它想象成一条流水线,数据像水流一样通过各个处理环节。

2025-11-09 17:17:04 1326

原创 Java集合框架核心解析

List适合需要维护元素顺序、允许重复和索引访问的场景;Set适合需要元素唯一性、不关心顺序的场景。选择实现类:根据具体需求选择,如ArrayList用于频繁查询,LinkedList用于频繁插入删除,HashSet用于快速去重,TreeSet用于排序集合。遍历方式适用集合类型能否在遍历中安全删除元素特点Iterator所有Collection可以(用最基础、最通用、最安全增强for循环所有Iterable(主要是Collection不可以简洁易读forEach()(Java 8+)所有。

2025-11-09 16:43:33 1273

原创 Java-泛型

泛型(Generics)是 Java 引入的一种特性,允许你在定义。

2025-11-09 15:36:55 921

原创 Java-GUI 界面编程

用户操作组件 -> 组件(事件源)产生事件对象 -> 事件源通知所有已注册的监听器 -> 监听器调用相应的事件处理方法 -> 执行我们编写的响应代码。在注册监听器时直接创建一个没有名字的类(匿名内部类)来实现接口或继承适配器类,并同时重写事件处理方法。适配器类实现了接口的所有方法(通常是空实现)。我们只需要继承适配器类并重写我们关心的那个方法即可。在 GUI 中,用户的操作(如点击按钮、移动鼠标、输入文本)会。有5个方法),Java 提供了相应的。的子类)直接实现监听器接口。让包含组件的类(通常是。

2025-11-08 17:59:06 974

原创 Java字符串String与集合ArrayList实战指南(生成验证码实例)

这种方式通过传入字符串字面量创建新对象。将字符数组转换为字符串对象。通过字节数组和字符集编码创建字符串。结果为 (注意索引从0开始)。输出结果:示例验证验证码通常由随机生成的数字、字母(区分大小写)组成。我们可以利用 或 来构建验证码字符串。输出示例: 是 Java 集合框架中一个非常常用的类,它实现了 接口,底层基于动态数组实现。它支持高效的随机访问,但在中间插入或删除元素时效率较低(需要移动后续元素)。结合上面的两个知识点,我们可

2025-11-08 17:58:40 1080

原创 Java函数式编程实战指南(Lambda 表达式详解)

类型推断是省略参数类型的基础。单参数是省略小括号()的前提。单表达式返回值是省略大括号{}和return的前提。Java方法引用通过简化Lambda表达式,提高了代码的简洁性和可维护性。它在函数式编程中非常有用,特别是在使用StreamAPI时。静态方法引用适用于类级别的操作。实例方法引用(特定对象)适用于已有对象的操作。实例方法引用(任意对象)适用于参数化调用。构造器引用适用于对象创建。示例:// Lambda// 方法引用 (等价)// Lambda。

2025-11-06 17:03:11 1034

原创 Java类-五大核心成分解析(内部类详解)

成员内部类:适合紧密关联外部类实例的场景。静态内部类:独立于实例,适合工具类。局部内部类:临时定义在方法内,访问局部变量。匿名内部类:简洁实现接口或类,用于一次性任务。在实际开发中,选择内部类类型取决于需求:优先考虑静态内部类以减少内存开销,匿名内部类用于简化代码。注意,内部类会增加编译后的类文件数量,可能影响性能。建议根据具体场景合理使用。

2025-11-06 11:18:05 1621

原创 Java-异常处理机制

使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,

2025-11-04 19:36:37 796

原创 screen 常用指令/日志记录/Attached会话恢复

Linux的screen指令是一个终端复用工具,允许用户在一个终端窗口中创建多个会话(session),并在断开连接后重新连接。这在远程服务器管理、长时间运行任务(如下载或编译)时非常有用,能避免网络中断导致任务终止。

2025-11-04 10:45:59 546

原创 Java-面向对象编程核心

/ 属性(成员变量)// 构造器/构造方法(用于初始化)// 方法System.out.println("我叫" + name + ",今年" + age + "岁");Java 的面向对象编程通过类、对象、封装、继承和多态,使代码更易于设计、扩展和维护。这些概念是 Java 开发的基础,适用于构建复杂应用程序。实际项目中,还涉及接口、抽象类等高级特性。

2025-11-01 18:42:42 973

原创 Java方法详解和回顾

方法定义包括声明方法的结构,涉及修饰符、返回类型、方法名、参数列表等元素。修饰符(Modifiers)修饰符控制方法的访问性和行为。public(任何类可访问)、private(仅本类可访问)、protected(本包及子类可访问)、默认(无修饰符,仅本包可访问)。static(方法属于类,而非对象)、final(方法不可被重写)、abstract(方法无实现,需子类重写)。中,public和static都是修饰符。返回类型(Return Type)

2025-11-01 17:59:37 785

原创 Java基础-数组操作与内存全解析

在Java中,二维数组是一种数据结构,用于存储表格状的数据(如矩阵)。它本质上是“数组的数组”,即每个元素本身是一个一维数组。二维数组的行数和列数可以灵活定义,但索引必须从0开始。静态工具类:无需实例化,直接通过类名调用泛型支持:对对象数组操作时自动推断类型性能优化:排序/搜索等方法针对不同场景高度优化空安全:方法内部处理null输入(如返回"null"最佳实践:优先使用Arrays而非手动实现数组操作,可提升代码健壮性和可读性。// 排序// 二分查找(需先排序)// 快速填充。

2025-10-31 22:13:29 738

原创 Java基础-方法编程完全指南

以下是一个完整示例,演示如何定义和调用一个计算两个整数和的方法。

2025-10-31 21:10:56 1296

原创 Java基础题-写一个计算器

【代码】Java基础题-写一个计算器。

2025-10-31 21:10:21 123

原创 Java基础题-打印三角形/数字炸弹游戏

要求结果:打印总共5行的三角形注意理解前面说过的顺序结构!Java是按顺序执行的!先进行循环体1,输出空格,再进行循环体2,输出*Math.abs() 为求绝对值,我们把 i 看成行,j 为列。当 i>|5-j| 时,输出*

2025-10-31 09:33:49 289

原创 Java基础-break与continue

在Java中,break和continue是控制循环流程的关键字,用于改变循环的执行逻辑。

2025-10-31 09:31:31 204

原创 Java基础:控制结构详解-顺序/选择/循环(打印九九乘法表等实例)

它避免了传统for循环中索引变量的使用,减少了代码冗余和错误风险。多分支值匹配:(语句中的变量类型可以是byte/short/int/char/前面的循环不输出,后面的循环执行一次,输出一个0。增强for循环专门用于遍历数组或实现了。

2025-10-30 16:44:42 566

原创 Java基础:Scanner用户交互

检查输入流中是否还有下一个“令牌”(token)。令牌是基于分隔符(默认是空白字符)分割的字符串。例如,输入"hello world"会被分割为两个令牌:"hello"和"world"。如果您有特定场景或更多细节,我可以进一步优化解释!: 检查输入流中是否还有下一行完整的文本(以换行符。数字输入可能受系统区域设置影响(如小数点。

2025-10-30 16:17:15 382

原创 Java基础-包机制和javadoc生成文档

包机制是Java项目组织的基础,能有效管理代码结构;javadoc则通过自动化文档生成,提升API的可维护性和团队协作效率。结合使用它们,可以构建清晰、专业的Java应用。例如,在大型项目中,包结构如,配合详尽的javadoc注释,能大幅减少开发成本。

2025-10-30 09:09:39 743

原创 Java基础-运算符全面解析

短路运算:判断一半得到结果时后面的就不再运行和判断!Java中幂运算需通过。

2025-10-30 09:03:35 496

原创 常用30个高频快捷键指南

本文整理了提升效率的常用快捷键,分为四类:1)通用系统快捷键(如Ctrl+C复制、Ctrl+Z撤销);2)办公软件快捷键(如Ctrl+B加粗、F5幻灯片放映);3)浏览器快捷键(如Ctrl+T新建标签、F5刷新);4)开发工具快捷键(如Ctrl+/注释代码、F12跳转定义)。部分快捷键需在英文输入法下使用。

2025-10-30 09:02:54 278

原创 Java基础-变量定义、作用域、命名规则

即static final double PI和final static double PI一致!通过理解变量的声明、初始化、作用域和数据类型,可构建更健壮的Java程序。可以使用逗号隔开来声明多个同类型变量,但为了程序可读性不建议这样做。变量需先声明后使用,语法为:(类型可以是基本类型也可以是引用类型)static/final都是修饰符,修饰符不存在先后顺序。常量名一般使用大写字符!

2025-10-29 09:47:26 494

原创 Java基础-强制转换

自动类型转换:安全、隐式,用于小到大类型转换。强制类型转换:需显式操作,可能导致数据丢失或溢出。溢出问题:通过检查范围或使用Math类方法(如Math.min())来预防。计算后转换:先提升类型计算,再显式转换结果。在实际编程中,始终测试边界值(如)以确保可靠性。通过理解这些概念,可以编写更健壮的Java代码。tips:编写代码遇到 L/l 时尽量使用大写L,小写l易误读为数字1!

2025-10-29 09:32:39 911

原创 java基础-数据类型扩展

整数进制:灵活使用二进制、八进制等表示。浮点数:银行业务用BigDecimal,避免==比较,改用容差法。字符:本质是Unicode数字,可通过类型转换操作。转义字符:处理特殊符号。布尔值:基本类型用==,对象类型用equals()。这些扩展知识能提升代码健壮性,尤其在金融和国际化场景中。建议多实践代码示例巩固理解。

2025-10-29 09:16:01 676

原创 Java基础-数据类型

Java数据类型分为基本类型和引用类型。基本类型包括8种:byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(2字节)和boolean(1位)。存储单位换算为:1B=8b,1KB=1024B,1MB=1024KB,1GB=1024MB。引用类型存储对象引用,大小由JVM决定。使用时应根据数据范围选择合适类型,注意类型转换和内存管理,基本类型存储在栈内存而引用类型存储在堆内存。

2025-10-29 08:57:40 601

原创 JAVA基础-标识符和关键字

标识符是程序员自定义的名称,用于命名变量、方法、类、接口等元素。命名规则必须以字母(A-Z或a-z)、下划线(_)或美元符号($)开头。后续字符可以是以下任意组合:字母、数字(0-9)、下划线或美元符号。(注意不能使用#)不能使用Java关键字(如int、class)。区分大小写(例如,$myVar$ 和 $MyVar$ 被视为不同)。长度无限制,但建议简洁且有描述性(如 $studentName$)。注:可以使用中文命名但不建议!可能会报错!有效示例。

2025-10-29 08:57:07 851

原创 IntelliJIDEA注释技巧全解析

设置注释。

2025-10-28 10:40:57 356

原创 IntelliJIDEA 2025新建Java项目全过程

我们正在使用IntelliJ IDEA,这是一个强大的Java集成开发环境(IDE)。新建项目并配置是开发的第一步。我将分步骤说明如何新建一个Java项目并进行基本配置。注意:这里以IntelliJ IDEA 最新2025版本为例,不同版本界面可能略有不同,但步骤类似。

2025-10-28 10:28:14 1039

原创 如何进入cmd以及DOS常用命令技巧

DOS(Disk Operating System)是早期个人计算机常用的命令行操作系统,其命令主要用于文件管理、目录操作和系统维护。以下是一些常用的DOS命令,所有命令在Windows命令提示符(CMD)中通常兼容。

2025-10-28 09:51:17 1588

原创 Markdown语法全解析:从入门到精通

Markdown语法摘要 Markdown是一种轻量级标记语言,核心语法包括: 标题:用#数量表示层级 文本格式:粗体、斜体、删除线、代码 列表:- 无序列表 1.有序列表 链接/图片:文本 代码块:```语言名 表格:|列1|列2| 数学公式:$行内$ $$独立$$ 其他:---水平线 >引用块 特点: 语法简单易学 支持代码、表格等复杂格式 需注意空格和缩进规则 适合快速创建格式化文档

2025-10-28 09:22:47 232

空空如也

空空如也

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

TA关注的人

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