自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java 基于Object类和包装类的知识点

public final void wait() / wait(long) / wait(long, int) 使当前线程进入等待状态,直到被 notify() 或 notifyAll() 唤醒,或超时。Number 是 Byte, Short, Integer, Long, Float, Double 的抽象父类,提供 intValue(), longValue(), floatValue(), doubleValue() 等转换方法。默认实现为 ==(比较引用地址)。通常需要重写以提供有意义的信息。

2026-04-17 18:04:55 482

原创 Java 内部类

在 Java 中,内部类就是定义在另一个类内部的类。内部类主要分为四种:成员内部类、静态嵌套类(常被视为第四种,但严格说它不属于内部类)、局部内部类和匿名内部类。它可以访问外部类的所有成员,还能访问方法内的局部变量,但该局部变量必须是final 或事实上的不可变(在 Java 8+ 中,称为 effectively final)。· 选择建议:内部类不需要访问外部实例成员时,优先使用静态嵌套类(更省内存)。· 能否有静态成员:成员内部类、局部内部类、匿名内部类都不能定义静态成员(常量除外)。

2026-04-17 18:01:21 209

原创 Java 接口的定义重构学生管理系统

重构后的系统可以轻松应对需求变化(如从内存存储改为数据库存储),同时极大提升了代码的可测试性和可维护性。// 原来的实现:直接使用 ArrayList,业务代码与具体存储耦合。// 构造方法、getter/setter 省略。// 重构后:实现 StudentService 接口。// 通过构造方法注入具体的实现(依赖注入)// 静态方法:创建默认的内存实现。// 默认方法:检查学生是否成年。

2026-04-12 22:16:38 355

原创 Java 抽象类 知识点

初始化顺序:父类静态块 → 子类静态块 → 父类实例块 → 父类构造方法 → 子类实例块 → 子类构造方法。· 抽象类可以实现接口(使用 implements),且可以不实现接口中的方法(交由具体子类实现)。抽象类中定义骨架方法(final 防止篡改),调用一系列抽象方法或钩子方法。· 误区:抽象方法不能有主体,但可以有 {} ❌ (必须;答:可以,作为抽象类,它可以把接口方法继续声明为抽象方法,留给子类实现。· 抽象方法:使用 abstract 修饰,没有方法体(直接以分号结尾)。

2026-04-12 22:13:11 334

原创 Java 抽象类 相关知识点

抽象类可以没有抽象方法,但即使没有抽象方法,它仍然不能实例化(常用于禁止直接实例化的工具类,但这种情况更多用 final 类配合私有构造器)。· 定义模板:模板方法模式(Template Method)中,抽象类定义算法的骨架(具体方法),将一些步骤延迟到子类实现(抽象方法)。· 如果子类也是抽象类,则可以选择实现部分抽象方法,也可以完全不实现,继续将未实现的方法作为抽象方法传递给下一级子类。· 可以包含抽象方法(使用 abstract 修饰,没有方法体)和具体方法(有方法体)。

2026-03-17 18:59:47 388

原创 Java 三个修饰符 相关知识点

抽象方法不能是 private、static、final 或 synchronized(因为抽象方法需要被子类覆盖,而 private 不可见,static 属于类,final 禁止重写,synchronized 是方法实现层面的修饰,没有方法体则无意义)。final 类中不能有 abstract 方法 ❌ final 类不可被继承,而抽象方法必须靠子类实现,矛盾。abstract static 方法 ❌ 抽象方法不能是静态的(静态方法属于类,不能被覆盖,与抽象矛盾)。

2026-03-17 18:54:18 335

原创 面向对象三大特征:封装、继承、多态

在实际开发中,应该根据具体场景灵活运用这些特征,遵循面向对象设计原则,构建出高内聚、低耦合、可维护、可扩展的软件系统。public final void process() { // final防止子类修改算法结构。// 调用Rectangle的display()// 调用Circle的display()// final确保不可变。protected void saveData() { // 重写保存方式。// 调用父类构造器。// Getter方法 - 受控访问。// 隐式调用super()

2026-02-09 17:08:02 768

原创 基于多态的相关知识点(封装、继承、多态)

/ 输出"Parent"// 输出"Parent",静态方法调用取决于引用类型。System.out.println("动物发出声音");static void show() { // 隐藏,不是重写。System.out.println("汪汪汪");System.out.println("喵喵喵");// 输出"汪汪汪"virtual void show() { // 虚函数。· 方法重写/覆盖(Overriding)

2026-02-09 16:59:59 667

原创 基于继承的相关知识点

return f"这是一个形状,面积={self.area():.2f},周长={self.perimeter():.2f}"super().log(f"[{timestamp}] {message}") # 使用super()调用父类方法。print(f"渲染按钮 '{self.text}' 在({self.x}, {self.y})")# 输出: D.method() -> B.method() -> C.method() -> A.method()

2026-02-05 12:32:53 669

原创 基于继承的信息管理系统

{isinstance(student, Person)}")teacher2 = Teacher("赵副教授", 38, "女", "T002", "数学学院", "副教授")teacher = Teacher("李老师", 35, "女", "T001", "计算机学院", "副教授")teacher1 = Teacher("王教授", 45, "男", "T001", "计算机学院", "教授")student = Student("张三", 20, "男", "S001", "计算机科学", 3)

2026-02-05 12:23:15 706

原创 基于封装的专项 知识点

public record Point(int x, int y) { } // 自动生成final字段和访问器。throw new IllegalArgumentException("温度超出范围");public void executeQuery(String sql) { /* 隐藏所有细节 */ }if (temp >= -20 && temp <= 50) { // 业务规则校验。protected void internalHelper() { /* 框架扩展点 */ }

2026-01-30 21:39:18 539

原创 基于面向对象的专项 知识点

default void land() { } // Java8默认方法。// 默认public abstract。记住:面向对象的终极目标是创建高内聚、低耦合、易维护、可扩展的软件系统。class Dog extends Animal { // 继承。// 动态绑定到Dog的eat方法。void eat() { } // 可以有具体方法。// 而非 extends Engine。

2026-01-30 21:31:47 751

原创 Java 基于数组的专项 知识点

if (arr.length == 0) throw new IllegalArgumentException("数组为空");// 默认: [null, null]System.out.println("索引 " + i + ": " + nums[i]);// 默认: [0, 0, 0]

2026-01-23 16:47:51 410

原创 Java 基于函数的专项 知识点

Runnable r1 = () -> System.out.println("无参");Objects.requireNonNull(data, "数据不能为空");// 不影响原始引用。System.out.println("整数: " + num);System.out.println("小数: " + num);System.out.println("类加载时执行");System.out.println("这是一个形状");System.out.println("不能重写我");

2026-01-23 13:31:54 952

原创 Java 基于分支与循环结构 知识点

System.out.println("你猜了" + attempts + "次");List<String> fruits = Arrays.asList("苹果", "香蕉", "橙子");System.out.println("尝试次数: " + (attempts + 1));System.out.print("请输入你猜的数字(1-100): ");System.out.print("请输入1-10之间的数字: ");System.out.println("输入正确: " + number);

2026-01-15 17:25:20 1053

原创 基于Java的相关知识点

System.out.println("除零错误");System.out.println("通用异常");System.out.println("线程执行");· 方法区(Method Area):类信息、常量池。· 加载 → 验证 → 准备 → 解析 → 初始化。// 字符串拼接使用StringBuilder。· 栈内存(Stack):局部变量、方法调用。· 框架原理(Spring)// 可能抛出异常的代码。· 堆内存(Heap):对象实例。2. 面向对象编程(OOP)· AOP(面向切面编程)

2026-01-15 17:04:22 830

原创 Java IO流实现文件操作知识点

String[] fileLines = {"文件 " + (i + 1) + " 的内容", "这是第 " + (i + 1) + " 个文件"};System.out.println(" ... 还有 " + (allFiles.size() - 5) + " 个文件");System.out.println("第" + (i + 1) + "行: " + lines.get(i));System.out.println("第" + lineNumber + "行: " + line);

2025-12-28 19:00:00 939

原创 Java 多线程机制知识点

System.out.println("初始值: " + stampedRef.getReference() + ", 版本: " + stamp);System.out.println("CAS操作结果: " + success + ", 新值: " + atomicRef.get());// WAITING。System.out.println("队列大小: " + monitorPool.getQueue().size());

2025-12-28 18:30:00 790

原创 Java 异常处理机制知识点

System.out.println("目标方法抛出异常: " + targetException.getClass().getName());System.out.println("原始异常: " + e.getCause().getClass().getName());System.out.println("原始错误: " + e.getCause().getMessage());System.out.println("原因: " + e.getCause().getMessage());

2025-12-28 18:00:00 927

原创 Java Map集合知识点

System.out.println("TreeMap内存占用: ~" + (treeMapMemory/1024) + "KB");// 指定初始容量和加载因子。System.out.println("最高分的学生: " + maxKeyByValue(scores).orElse("无"));System.out.println("最低分的学生: " + minKeyByValue(scores).orElse("无"));

2025-12-28 13:35:22 790

原创 Java Set集合知识点

System.out.println("LinkedHashSet内存占用: ~" + (linkedHashSetMemory/1024) + "KB");System.out.println("HashSet内存占用: ~" + (hashSetMemory/1024) + "KB");System.out.println("TreeSet内存占用: ~" + (treeSetMemory/1024) + "KB");

2025-12-27 20:15:20 282

原创 Java List集合知识点

Java List集合知识点

2025-12-27 00:32:20 492

原创 基于异常的专项 实验结论

本次实验验证了Java异常机制在实际开发中的必要性与实用性:合理划分异常类型、设计业务化自定义异常、规范使用 try-catch-finally 流程,是提升程序稳定性、可读性与可维护性的关键手段,可为复杂项目的异常处理提供标准化实践参考。自定义异常突破了Java内置异常的通用语义限制,能精准承载业务提示(如“用户名长度不足”),既提升了异常信息的可读性,也简化了业务场景下的异常定位与处理逻辑。同时,异常捕获应遵循“就近匹配、具体优先”的原则,确保不同类型异常得到差异化处理。(2)自定义异常的业务价值。

2025-12-27 00:13:08 210

原创 Java 字符串知识点

/ true,内容相同。// 每次循环都创建新String对象。// 2. 使用String.valueof()代替toString()// StringBuilder:非线程安全,性能较高(推荐)// 5. 使用Objects.equals()避免空指针。

2025-12-27 00:12:54 770

原创 基于Map的专项 实验结论

通过实验,熟练掌握了 Map 集合的创建(如 HashMap 的实例化)、元素添加( put 方法)、查询( get 、 containsKey 、 containsValue 方法)、删除( remove 方法)以及遍历(键遍历、键值对遍历、值遍历)等操作,明确了 Map “键-值”对的存储逻辑和操作特性。针对“银行用户”这类自定义对象与 Map 结合的场景,加深了对面向对象编程(类、对象、属性、构造方法)与集合框架协同使用的理解,能够灵活运用 Map 存储复杂对象并实现业务功能。

2025-12-26 23:56:17 248

原创 Java 对象及包装类知识点

System.out.println("基本类型数组耗时: " + (endTime - startTime) + "ms");// java.lang.Object@哈希码。// 相当于 int b = a.intValue();

2025-12-26 23:53:56 498

原创 Java 核心知识点总结2

同时,Java生态中的各种框架和工具(如Spring、MyBatis等)也是Java开发者必须掌握的重要内容,它们构建在Java基础之上,共同构成了完整的Java技术栈。JVM作为Java程序的运行环境,负责字节码的解释执行和内存管理。· 基本数据类型:byte(8位)、short(16位)、int(32位)、long(64位)、float(32位)、double(64位)、char(16位)、boolean(1位)· 三大核心:Channel(通道)、Buffer(缓冲区)、Selector(选择器)

2025-12-25 00:28:04 1294

原创 Java 程序设计题

60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润 I ,求应发放奖金总数?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。(2)如果 nk ,但 n 能被 k 整除,则应打印出 k 的值,并用 n 除以 k 的商,作为新的正整数你 n ,重复执行第一步。题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

2025-12-25 00:23:10 320

原创 Java 核心知识点总结

2. 线程状态:新建( NEW )、就绪( RUNNABLE )、运行( RUNNING )、阻塞( BLOCKED )、等待( WAITING )、超时等待( TIMED_WAITING )、终止( TERMINATED )。1. 数据类型:分为基本数据类型(8种: byte 、 short 、 int 、 long 、 float 、 double 、 char 、 boolean )和引用数据类型(类、接口、数组、枚举等)。extends T 表示上限(T 及其子类),?

2025-12-25 00:22:50 389

原创 基于 IO 流实现文件操作 实验结论

在26个字母的写入与大小写转换实验中,字符流可直接读取和写入字符数据,结合 StringBuilder 与字符串方法(如 toLowerCase() )能便捷实现文本内容的拼接、转换等操作,解决了字节流处理文本时可能出现的中文乱码问题。通过“文件内容倒序写入”的自主设计实验,实现了从文件读取、集合存储、数据处理到新文件写入的完整流程,验证了IO流与集合框架结合的灵活性,也体现了IO流在实际业务中可根据需求设计个性化文件处理方案的特点。2、阐述利用IO流处理中文文件时,如何避免解决中文乱码问题。

2025-12-24 00:01:19 303

原创 Java IO流

但是如果集合中存储的是自定义类型的对象,则自顶类型的对象对应 的类也需要实现java.io.Serializable接口。Iv. 如果参与对象序列化的对象中有自定义类型的属性,则自定类型的属性对应的类也必须实现 java.io.Serializable接口,否则运行报错,为不可序列化的异常。I. 参数:代表操作文件的路径及文件名,但是如果指定的文件找不到,则系统不会默认创建,直接报错,错误信息为:java.io.FileNotFoundException: (系统找不到指定的文件。

2025-12-24 00:01:04 864

原创 基于 IO 流实现文件操作的专项实验

4、在当前project中创建 file文件夹,并准备好一个文件myfile.txt,文件中内容为 lovejava ,利用IO流进行文件读取,将读取的内容以字符形式存储在 List集合中,并将读取的内容倒序 写入到 file文件夹下的newfile.txt文件中。// 利用 IO流实现文件的 拷贝:file/a.txt ---》 file/a_copy.txt。读取文件中的内容,将读取的内容连接为一个字符串,并将所有的大写字母转变为小写字母打印输出转换的结果。// 1. 创建文件字节输入输出流对象。

2025-12-23 22:39:10 1154

原创 基于多线程机制的专项 实验结论

3、技术要点掌握:本次实验掌握了Java多线程的创建(继承 Thread 类)、启动、等待( join() 方法),以及类的封装性设计,达成了“理解多线程机制、实现线程同步”的实验目标。2、线程安全验证:通过 synchronized 关键字修饰账户的 deposit 、 withdraw 方法,避免了多线程并发操作导致的余额数据错误,验证了线程同步机制的有效性。4、环境兼容性:在环境下均能正常编译运行,验证了代码的版本兼容性。

2025-12-23 22:36:59 225

原创 Set集合专项 实验结论

在自定义对象(如 Book 、 Product )存储时,需重写这两个方法以基于业务唯一标识(如ISBN、商品名)实现去重,否则会因默认地址比较导致去重失效。LinkedHashSet 去重且保持插入顺序 性能略低于 HashSet (链表维护开销) 需去重且需按添加顺序遍历的场景(如日志去重存储)LinkedHashSet 作为 HashSet 的子类,通过链表记录插入顺序,实现了“去重+有序遍历”的特性,满足需按插入顺序操作的场景。需索引或允许重复→选List(如 ArrayList )。

2025-12-21 13:52:25 187

原创 使用List集合专项 实验结论

当需要频繁进行插入、删除操作(非首尾位置),且读取操作较少时,优先选择 LinkedList;在对List进行遍历删除操作时,若使用普通for循环需注意索引的变化(避免漏删或越界),建议使用迭代器 Iterator 的 remove() 方法来保证操作的安全性;通过本次实验进一步明确,List与Set最核心的区别在于List允许元素重复且有序、有索引,而Set元素不可重复且无序(无索引),在实际开发中需根据“是否允许重复”“是否需要有序/索引”等需求来选择合适的集合。2、其他集合(如Set)的区别认知。

2025-12-21 13:52:17 162

原创 基于字符串的专项 实验结论

本次实验围绕字符串操作展开,从基础的验证性实验到综合的设计性实验,全面掌握了Java中字符串的创建、操作、分析等核心技能,理解了字符串不可变特性对操作效率的影响(如 StringBuilder 的必要性),也掌握了正则表达式、字符属性判断、多条件逻辑组合等在字符串处理中的应用。1、单词个数统计:通过去除标点、分割字符串的方法,实现了英文句子中单词数量的统计,理解了正则表达式在字符过滤中的应用,以及字符串分割后非空元素统计的逻辑。(二)自主设计性实验结论。(一)验证性实验结论。

2025-12-21 10:53:54 336

原创 基于 Object 类及包装类的专项 实验结论

包装类虽灵活,但存在性能开销(比基本类型多占用内存),在高频计算场景(如数组遍历、循环累加)中,优先使用基本类型(int 、 double);包装类为引用类型,可存储 null (如Integer age = null 表示“年龄未录入”),弥补了基本类型( int 、 double )无法存空的缺陷;默认 equals() 比较对象内存地址(等价于 ==),无法满足“内容相等即对象相等”的业务需求(如两个用户名+电话相同的 User 对象);(二)包装类的特性与应用边界。

2025-12-21 10:53:32 512

原创 Java 基于多线程机制的专项实验

System.out.println("+++++++++++主线程========4===="+i);System.out.println("***********主线程*************"+i);System.out.println("-----------t2线程--------"+i);System.out.println("=======t线程===33===="+i);(1) 定义一个 Account 类,属性为账户名(userName)和余额(balance),类进行封装;

2025-12-12 19:44:52 707

原创 Java 多线程机制

本次更新围绕 Java 多线程机制进行深度优化,聚焦线程安全、性能调优与资源管理三大核心方向,新增多种便捷编程工具与监控能力,解决传统多线程开发中常见的死锁、资源竞争、性能瓶颈等问题,提升高并发场景下的程序稳定性与执行效率。优化 ReentrantLock 公平锁与非公平锁的切换逻辑,降低锁切换时的性能损耗,提升锁的获取与释放效率。内置 轻量级死锁检测机制,通过分析线程持有锁与等待锁的关系,实时识别死锁风险,并输出详细的线程堆栈信息。官方文档地址:[Java 多线程机制官方文档]

2025-12-12 19:42:23 386

原创 基于 Object 类及包装类的专项实验(第11题)

要求:定义 Goods 类,属性有商品编号(goodsId)、商品名称(goodsName)、价格(price),完成封装、构造方法;重写 equals 方法,商品编号相同则为相同商品;重写 toString方法展示商品信息。编写测试类,输入两个。11、编程实现商品类(Goods)的比较​。商品信息,判断是否为同一商品并打印结果。2.2 自主设计性实验。

2025-12-06 09:34:12 338

空空如也

空空如也

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

TA关注的人

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