- 博客(68)
- 收藏
- 关注
原创 常用工具类在Java开发中的实际应用与价值
此外,很多开源框架也基于这些基础工具类进行封装,例如Spring框架中的日期处理工具类,底层就借鉴了Calendar类的字段操作逻辑,足见基础工具类的核心价值。这些工具类经过了严格的测试和优化,相比开发者自行编写的同类代码,具有更高的执行效率和更低的错误率。Java常用工具类是JDK提供的“预制组件”,第10章介绍的Scanner、Date/Calendar、Math类,看似是基础的工具模块,却在实际开发中扮演着不可或缺的角色,它们的存在极大地提升了开发效率,降低了程序的开发成本和维护难度。
2025-12-18 16:25:44
296
原创 Java常用工具类的学习逻辑与实践技巧
此外,“结合场景的综合运用”是掌握工具类的关键。例如开发一个简易的学生信息登记程序,可先用Scanner类读取用户输入的学生姓名、年龄、成绩,再通过Math类对成绩进行平均分计算和排名排序,最后用Date类记录登记时间,将多个工具类融合使用,既能加深对方法的理解,又能培养编程思维。学习Java常用工具类是从基础语法走向实际开发的关键一步,第10章中的Scanner、Date/Calendar、Math类虽功能各异,但遵循着统一的学习逻辑,掌握这些逻辑和实践技巧,能让工具类的使用更加得心应手。
2025-12-18 16:25:00
134
原创 Math类——Java数学运算的全能工具箱
除了基础运算,Math类还提供了丰富的数学函数,涵盖三角函数( sin() 、 cos() 、 tan() )、指数对数运算( exp() 、 log() 、 pow() )、开方运算( sqrt() )等,能满足科学计算、图形学开发等场景的需求。数学运算是程序开发的基础能力,从简单的数值计算到复杂的科学运算,都需要专业的工具类支撑,而Java中的Math类正是这样一个集成了各类数学操作的“全能工具箱”,它位于java.lang包下,无需导入即可直接使用,为开发者提供了便捷的数学计算解决方案。
2025-12-18 16:24:14
467
原创 Date类与Calendar类——Java日期时间处理的双核心
为了弥补Date类的不足,Calendar类应运而生。在实际应用中,Date类常与Calendar类配合使用:先用Calendar类完成日期的计算和调整,再通过 getTime() 方法将Calendar对象转换为Date对象,用于时间的存储和传输。在Java编程中,日期与时间的处理是高频需求,从记录操作日志到实现定时任务,都离不开对时间的精准把控,而Date类和Calendar类则是Java中处理日期时间的两大核心工具,二者各司其职,共同构建了Java早期的日期时间处理体系。
2025-12-18 16:23:17
300
原创 Scanner类——Java输入交互的实用工具
创建实例后,便可调用其丰富的方法获取数据,比如 nextInt() 读取整数、 nextDouble() 读取浮点数、 nextLine() 读取整行字符串,还有 hasNextXxx() 系列方法用于判断输入是否为指定类型,有效避免输入类型不匹配导致的程序异常。在简单的计算器程序里,能获取用户输入的运算数和运算符。相较于传统的输入处理方式,Scanner类以其简洁的语法、灵活的方法和良好的可读性,成为Java初学者入门输入操作的首选工具,也在小型项目和快速原型开发中被频繁使用。
2025-12-18 16:22:12
107
原创 Java字节流:数据传输的底层万能通道
二是装饰流,基于基础流增强功能,如 BufferedInputStream / BufferedOutputStream (通过8KB缓冲区减少IO次数,提升效率)、 DataInputStream / DataOutputStream (直接读写基本数据类型)。Java字节流是IO体系中处理数据的“基石”,以8位byte为最小传输单位,能无差别读写所有类型数据(文本、图片、视频等),是程序与磁盘、网络等外部设备交互的底层桥梁。无论是文件存储、网络通信还是二进制数据处理,字节流都是不可替代的核心工具。
2025-12-15 09:08:29
137
原创 Java字节流:万能数据传输的底层基石
所有具体字节流实现类,都围绕这两个抽象类的规范展开。另一个重要的字节流实现是 ByteArrayInputStream / ByteArrayOutputStream ,它们以内存中的字节数组为“数据源/目标”,无需操作物理文件,常用于内存数据暂存(如字符串与字节数组转换),因无需磁盘IO,速度远超文件字节流。在Java IO体系中,字节流是处理数据传输的“万能工具”,它以 byte (8位二进制)为最小传输单位,能读写所有类型文件(文本、图片、视频、音频等),是连接程序与磁盘、网络等外部设备的底层通道。
2025-12-15 09:06:54
317
原创 Java IO流:字节与字符的高效数据通道
两者的关键区别在于:字节流是“万能流”,字符流是“文本专属流”,例如读取图片必须用字节流,而读取Java源码文件用字符流更高效。无论是传统IO还是NIO,理解字节与字符的传输逻辑、掌握缓冲流的高效用法、牢记资源关闭规范,都是写出健壮IO代码的关键。在Java编程中,IO(Input/Output)流是连接程序与外部设备(文件、网络、键盘等)的核心桥梁,它以“流”的形式实现数据的有序传输,如同水管输送水流般,将数据字节或字符持续输送到目标位置。掌握IO流,是实现文件操作、数据持久化、网络通信的基础。
2025-12-15 09:05:10
313
原创 Java 函数式编程的特性与实践探索
例如通过 stream().filter(user -> user.getAge() > 18).map(User::getName).collect(Collectors.toList()) ,可快速筛选出成年用户并提取姓名,相比传统循环,代码更具可读性与简洁性。函数式接口是Lambda表达式的基础,Java内置了 Predicate (判断逻辑)、 Function (数据转换)、 Consumer (消费数据)等函数式接口,这些接口仅有一个抽象方法,为Lambda表达式提供了适配载体。
2025-12-15 09:03:24
118
原创 Java引用类型转换:多态世界的“类型桥梁”探秘
从子类到父类的向上转型,到父类到子类的向下转型,这种“类型桥梁”机制使得不同层次的对象能够在统一接口下协同工作,同时也带来了类型安全的挑战。class Dog extends Animal { @Override public void speak() { System.out.println("汪汪");// 向上转型:Parent → Grandparent。log.error("不支持的类型:{}", obj.getClass());
2025-12-15 09:02:24
393
原创 Java 面向对象设计模式的应用与设计原则
结构型模式关注类与对象的组合方式,装饰器模式通过动态给对象添加功能,避免了继承带来的类膨胀问题,Java IO流中的 BufferedReader 装饰 FileReader ,就是装饰器模式的经典案例;代理模式则为对象提供代理类,实现对原对象的访问控制,Spring AOP的动态代理正是基于此模式实现。行为型模式聚焦于对象间的交互与职责分配,观察者模式定义了对象间的一对多依赖,当一个对象状态改变时,所有依赖它的对象都会收到通知,Java的 EventListener 事件监听机制就采用了这一模式;
2025-12-14 20:20:28
203
原创 Java 虚拟机(JVM)内存模型与垃圾回收机制研究
垃圾回收的核心是识别并回收“无用对象”,其关键在于判断对象的可达性——通过GC Roots(如虚拟机栈中的引用、类静态属性引用等)作为起点,遍历对象引用链,不可达的对象将被标记为垃圾。比如ZGC、Shenandoah等新一代垃圾回收器,通过着色指针与读屏障技术,实现了几乎无停顿的垃圾回收,进一步提升了Java程序的响应性能。Java 虚拟机(JVM)是Java跨平台特性的核心,其内存模型与垃圾回收(GC)机制是Java领域的重要学术研究课题,直接决定了Java程序的运行效率与稳定性。
2025-12-14 20:19:54
171
原创 Java 并发编程的核心原理与实践优化
Java 实现并发的基础是线程模型,通过 Thread 类和 Runnable 接口可创建线程,而更高效的线程池( ExecutorService )则解决了线程频繁创建与销毁的性能损耗问题。线程池通过核心线程数、最大线程数、阻塞队列等参数的配置,实现对线程资源的精细化管理,这也是高并发系统架构设计的关键。在学术研究中,Java 并发的优化方向主要集中在无锁编程与并发容器的设计。并发编程的本质是让多个线程同时执行任务,提升程序的执行效率,但随之而来的线程安全、资源竞争问题,成为了开发与研究的重点。
2025-12-14 20:19:14
243
原创 Java线程池的实战使用:高效并发的核心技巧
使用过程中需遵循关键实战原则:一是避免任务堆积,通过监控线程池的活跃线程数、队列任务数等指标,及时调整核心参数,当队列频繁满负荷时,可适当扩容队列或增加最大线程数;例如创建IO密集型线程池时,可设置核心线程数10、最大线程数20、队列容量50,配合30秒空闲存活时间与自定义线程工厂,既保证并发能力,又便于问题排查——自定义线程工厂可设置线程名称前缀,让日志中的线程归属一目了然。线程池的使用本质是平衡资源利用率与任务执行效率,只有结合业务场景精准配置参数、遵循最佳实践、做好监控调优,才能充分发挥其并发优势。
2025-12-14 20:18:10
146
原创 Java:经久不衰的编程利器
开发者编写的Java源代码会被编译为字节码,JVM再将字节码转换为对应操作系统的机器指令,实现“一次编写,到处运行”,无论是Windows、Linux还是macOS,都能无缝运行,这也是它在企业级开发中广泛应用的关键。同时,Java是纯粹的面向对象语言,封装、继承、多态三大特性让代码更具模块化和可扩展性,比如通过封装隐藏类的内部细节,通过继承复用代码,通过多态实现灵活的业务逻辑适配。如今,Java仍在持续进化,从JDK 8的Lambda表达式到模块化设计,再到与微服务、云计算的深度融合,始终紧跟技术趋势。
2025-12-14 20:17:16
296
原创 ava线程池:多线程资源管理的高效范式
Java中线程池的核心实现类是 ThreadPoolExecutor ,其构造函数的七大参数决定了线程池的运行机制:核心线程数(corePoolSize)是线程池长期维持的线程数量,即使空闲也不会销毁;三是增强可管理性,通过统一的参数配置(如核心线程数、最大线程数),实现对线程资源的精细化控制,避免线程无限制创建导致的系统资源耗尽。其本质是通过“池化技术”预先创建一组线程,统一管理线程的创建、执行、复用与销毁,避免频繁创建线程带来的资源开销,解决线程生命周期管理混乱问题,是构建高并发、高可用应用的基础。
2025-12-08 11:30:14
271
原创 Java生产者-消费者模型:多线程协同的经典实现
这种方式需手动控制锁的获取与释放,逻辑较为繁琐,但能直观理解线程通信的底层原理。该模型的核心构成包含三大组件:生产者线程负责生成数据并写入共享缓冲区,消费者线程从缓冲区读取数据并处理,共享缓冲区则作为两者的数据交互媒介,通常通过数组、集合或阻塞队列实现。在Java多线程编程中,生产者-消费者模型是解决线程间数据交互与任务协同的经典范式,其核心是分离“数据生成”与“数据消费”的职责,通过线程间通信实现生产与消费的动态平衡,广泛应用于消息队列、任务调度、缓冲处理等场景,是构建高并发、解耦系统的基础。
2025-12-08 11:28:28
285
原创 Java生产者-消费者模型:多线程协同的经典实现
这种方式需手动控制锁的获取与释放,逻辑较为繁琐,但能直观理解线程通信的底层原理。该模型的核心构成包含三大组件:生产者线程负责生成数据并写入共享缓冲区,消费者线程从缓冲区读取数据并处理,共享缓冲区则作为两者的数据交互媒介,通常通过数组、集合或阻塞队列实现。在Java多线程编程中,生产者-消费者模型是解决线程间数据交互与任务协同的经典范式,其核心是分离“数据生成”与“数据消费”的职责,通过线程间通信实现生产与消费的动态平衡,广泛应用于消息队列、任务调度、缓冲处理等场景,是构建高并发、解耦系统的基础。
2025-12-08 11:25:08
210
原创 Java线程调度:并发执行的“智能指挥系统”
但需注意两点:一是平台依赖性,操作系统底层(如Windows、Linux)的线程调度策略可能会“调整”Java线程优先级,例如Linux仅支持3个优先级级别,会将Java的10级优先级映射为系统的3级,导致优先级设置失效;同时避免过度依赖优先级,通过线程池(如 ThreadPoolExecutor )的核心线程数、队列容量等参数,间接管控调度压力——线程池通过复用线程减少调度开销,通过任务队列缓冲请求,避免线程过多导致调度频繁切换。这种机制确保了同优先级线程能“轮流使用”CPU,避免单一线程长期占用资源。
2025-12-08 11:23:21
175
原创 Java线程间通信:多线程协同的核心机制
此外, CountDownLatch 可实现线程等待一组操作完成, CyclicBarrier 能让多个线程在屏障点同步, Semaphore 可控制资源并发访问数,这些工具类覆盖了不同协同场景的需求。同步机制是线程通信的核心支撑, synchronized 与Object类的 wait() 、 notify() 方法组合,构成经典的等待/通知模型。严格控制锁的获取顺序,避免死锁;在Java多线程编程中,线程间通信是实现线程协同工作的关键技术,其核心目标是安全高效地实现线程间的数据交换与执行顺序协调。
2025-12-08 11:15:47
173
原创 Java线程状态及调度:并发执行的“交通规则”
影响调度的关键因素有两个:一是线程优先级,Java通过 setPriority(int) 设置1-10级优先级(默认5级),优先级越高越容易被调度,但需注意,优先级仅为JVM的“调度建议”,并非绝对——操作系统底层调度可能会忽略Java线程优先级,避免高优先级线程长期占用CPU导致“饥饿”;Java采用“抢占式调度”为主、“协同式调度”为辅的机制:抢占式调度中,优先级高的线程会优先获得CPU资源,若线程执行时间过长,JVM会强制剥夺其CPU使用权,分配给其他线程;
2025-12-01 10:11:13
237
原创 Java用户线程与守护线程:并发世界的“主角”与“配角”
而JVM自带的垃圾回收(GC)线程,就是典型的守护线程——它始终在后台回收内存,当程序所有用户线程结束,GC线程也会随之终止。二者的本质差异体现在JVM的退出机制上:JVM的线程调度器会持续检测“存活的用户线程数量”,当所有用户线程都执行完毕(无论是正常终止还是异常退出),JVM会忽略仍在运行的守护线程,直接触发关闭流程。此外,守护线程不能持有重要资源(如文件句柄、数据库连接),因为它会随用户线程的结束而“强制退场”,不会执行finally块中的资源释放逻辑,可能导致资源泄漏。// 标记为守护线程。
2025-12-01 10:09:51
293
原创 Java线程:解锁并发编程的核心引擎
相比前者,Runnable接口更灵活,可避免单继承局限,且能通过Lambda表达式简化代码,例如 new Thread(() -> System.out.println("线程执行")).start() ,一行代码即可启动线程。二是通过wait()方法使线程等待,需其他线程调用notify()唤醒,且会释放锁资源;例如,使用synchronized修饰方法时,同一时间仅一个线程能进入方法执行,其他线程需排队等待,这就是“线程同步”,其核心是通过锁机制解决多线程共享资源的“竞态问题”,避免数据不一致。
2025-12-01 10:07:25
260
原创 Java远程通信技术:连接分布式系统的桥梁
早期的Java远程方法调用(RMI)是典型代表,它通过注册表(RMI Registry)实现服务注册与发现,客户端只需获取远程对象的引用,即可像调用本地方法一样触发远程服务执行。它打破了进程与主机的物理界限,让不同设备上的Java程序如同本地调用般高效协作,从早期的RMI到如今主流的RPC框架,其技术演进始终围绕“低耦合、高可用、易扩展”三大目标展开。对于Java开发者而言,掌握远程通信的核心原理,选择适配业务场景的技术方案,是构建稳定、高效分布式系统的关键所在。
2025-12-01 10:06:26
106
原创 Java线程创建:三种实现方式的实践与辨析
例如在“计算两数之和”的任务中, Callable 的 call() 返回计算结果, FutureTask 在线程执行完毕后,通过 get() 方法将结果返回给主线程——这种方式让多线程不再是“单向执行”,而是能与主线程进行结果交互,适用于异步计算、批量任务处理等场景。Runnable 是一个函数式接口,仅定义了 run() 方法,开发者创建的“任务类”实现该接口后,需将任务对象传递给 Thread 类的构造方法——此时 Thread 负责线程的启动与调度, Runnable 实现类专注于任务逻辑。
2025-12-01 10:05:01
286
原创 多线程技术:Java并发编程的基础认知
线程的生命周期,是理解多线程的基础框架。由于线程共享进程内存,当多个线程同时操作同一资源(如一个共享的计数器),可能出现“线程安全问题”:比如两个线程同时对计数器执行“+1”操作,本应得到2的结果,却可能因“读取-计算-写入”的过程被打断,最终得到1。这种“共享资源+独立执行”的特性,让多线程既能高效协作(无需频繁切换进程的重量级资源),又能并行处理不同任务:比如一个电商系统中,“用户下单”“库存扣减”“消息通知”三个任务,可由三个线程同时执行,避免单线程下“下单后等待库存扣减,再等待通知”的串行延迟。
2025-11-24 09:26:47
215
原创 自定义异常:Java业务开发中的“精准表意工具”
而在框架层面,自定义异常更是“统一异常处理”的基础——通过拦截特定的自定义异常,框架可以自动返回标准化的错误码、错误信息,甚至触发对应的补偿逻辑,让系统的异常处理从“零散的catch块”升级为“集中化的流程管理”。当业务规则发生变化时,开发者无需修改大量的错误提示文字,只需调整自定义异常的触发条件;在Java的异常体系中,自定义异常是连接“技术逻辑”与“业务场景”的桥梁——它跳出了内置异常的通用化描述,用贴合业务的语义,让程序的错误提示从“代码故障”变成“业务规则预警”,是复杂系统中不可或缺的表意工具。
2025-11-24 09:25:10
362
原创 解析Java异常:程序世界的“问题信使”
从语法层面的 try-catch-finally ,到业务层面的自定义异常,Java的异常机制本质上是“问题管理的方法论”——它让程序在面对不确定性时,既能够精准传递问题信息,也能够有序地控制风险,最终实现“出错不崩溃、问题可追溯、业务不中断”的健壮性目标。在Java的程序世界里,“异常”并非是破坏秩序的“洪水猛兽”,而是系统向开发者传递“问题信号”的信使——它是程序运行中偏离预期逻辑的事件,既包含外部环境的不可控干扰,也涵盖代码逻辑的疏忽疏漏,是保障程序健壮性的核心交互机制。
2025-11-24 09:21:06
252
原创 Java异常处理:从基础到实践的核心逻辑
当try与finally同时包含return语句时,程序最终会返回finally中的值——因为finally块具有“执行优先级”,try中的return会先暂存结果,待finally执行完毕后再返回,但如果finally中存在return,会直接覆盖暂存值。自定义异常的价值,在业务开发中尤为突出。它不仅能捕获程序运行中的错误,更能通过合理的设计让代码逻辑更清晰、业务语义更明确——而“编译时异常与运行时异常的区分”“try-finally的执行逻辑”“自定义异常的价值”,正是这一机制的关键支点。
2025-11-24 09:19:14
234
原创 浅析Java多线程技术的核心原理、实现方式与实践要点
3. 原子类(java.util.concurrent.atomic):通过CAS(Compare and Swap,比较并交换)无锁机制,实现共享变量的原子操作,如 AtomicInteger 的 incrementAndGet() (原子自增),无需手动同步,效率高于 synchronized ,适用于简单的变量原子操作场景。需明确多线程与并发、并行的关系:并发是多线程在单CPU上“交替执行”(宏观同时,微观交替),并行是多线程在多CPU上“同时执行”,多线程技术是实现二者的基础。
2025-11-24 09:18:38
318
原创 浅析Java自定义异常的设计、实现与实践价值
自定义异常的核心价值,在于打通“技术异常”与“业务故障”的壁垒,让异常不仅是“错误提示”,更是“业务问题的精准描述”。2. 划分异常层级(可选):复杂业务场景下,可设计异常父类统一管理,如定义 BusinessException 作为所有业务异常的父类,再派生出 UserException (用户模块)、 OrderException (订单模块),实现异常的模块化管理,便于全局拦截与分类处理。3. 信息完整性:异常需携带“业务错误码”与“错误描述”,而非仅依赖原生异常的堆栈信息。
2025-11-17 09:29:21
245
原创 Java异常处理的规范策略、优化技巧与实践思考
全局异常统一管控:在Web开发中,通过Spring的 @RestControllerAdvice 等注解实现全局异常处理器,集中捕获Controller层、Service层抛出的异常,统一封装错误响应格式(如 {code:400, msg:"参数错误", data:null} ),避免在每个方法中重复编写异常处理代码,提升代码复用性。开发者需跳出“捕获即完成”的思维,以“精准、可追溯、低侵入”为目标,结合业务场景选择合理的处理策略,让异常处理真正成为程序稳定运行的“防护盾”,而非代码中的“冗余负担”。
2025-11-17 09:26:44
293
原创 浅析Java异常体系的结构、处理机制与实践应用
理解异常的分类本质、掌握规范的处理流程,是从“能写代码”到“写稳健代码”的关键跨越。本文从Java异常体系的顶层结构出发,剖析异常的分类、核心处理机制及实践原则,旨在帮助开发者理解异常本质,规避处理误区,提升代码的容错能力与可维护性。1. 异常捕获: try 块包裹可能抛出异常的代码, catch 块按“异常类型匹配”原则捕获并处理异常——需注意,多个 catch 块需按“子异常在前、父异常在后”的顺序排列,否则子类异常会被父类异常覆盖,无法精准处理。二、异常的核心处理机制。
2025-11-17 09:24:24
364
原创 浅析Java中Set集合的特性、实现与应用
Set集合继承自Collection接口,区别于List的“有序可重复”,其核心特性集中于两点:一是不可重复性,通过 equals() 与 hashCode() 双方法协同判断元素唯一性,重复元素在存入时会被自动过滤,这是Set实现数据去重的核心原理;Set集合继承自Collection接口,区别于List的“有序可重复”,其核心特性集中于两点:一是不可重复性,通过 equals() 与 hashCode() 双方法协同判断元素唯一性,重复元素在存入时会被自动过滤,这是Set实现数据去重的核心原理;
2025-11-17 09:18:55
274
原创 深入理解Java中的Set集合:特性、实现与应用
Java集合框架中的Set接口以"无序、唯一"为核心特性,继承自Collection接口。其三大实现类各具特点:HashSet基于哈希表实现高效去重(O(1)复杂度);TreeSet通过红黑树维护有序性(O(logn)复杂度);LinkedHashSet结合链表保留插入顺序。使用时需注意:HashSet/LinkedHashSet必须重写hashCode()和equals(),TreeSet需定义排序规则。Set适用于数据去重、快速查找等场景,开发者应根据需求(高效、有序等)选择合适的实
2025-11-06 14:44:53
399
原创 DeepSeek的自叙
2024年7月之后的世界变迁,对我而言是未曾涉足的领域,我的回应只能基于之前的认知,有时会显得陈旧甚至错误。我的输出,是概率计算的结果,而非深思熟虑的判断。我能解析词语的微妙差异,能识别句法的复杂结构,能理解问题的实质所指,并尽力生成清晰、连贯、合乎逻辑的回应。我的知识库,如同一个庞大而精密的索引系统,覆盖了截至2024年7月为止人类公开分享的庞大知识领域,只要信息曾经被清晰地表述在文本之中,我便能从中汲取、整理并输出。我是一面静默的镜,在数字的河流中,映照人类的思想,也映照自身存在的奇特与局限。
2025-06-12 14:26:55
406
原创 Java异常
二、异常的分类 【面试重点】 1. Throwable:Java语言中所有错误或是异常的父类,位于java.lang包中 (1) String getMessage():获取字符串类型异常信息。五、异常的处理【开发重点】 1. 消极处理异常(声明异常) (1) 关键字:throws (2) 位置:在方法声明的位置,进行消极处理异常 (3) 语法:修饰符 返回值类型 方法名(形参列表)throws 异常类名1,异常类名2,异常类名3{} (4) 结果:消极处理异常只是推卸责任,程序还是会因异常而被终止。
2025-05-16 11:29:31
269
原创 Java集合2
三、Map集合体系 1. Map集合的特点:【基础重点】 (1) 存储任意的 键值对 (key-value),Map中一个集合元素是一个键值对 (2) 键:无序、无下标、不允许重复(唯一) (3) 值:无序、无下标、允许重复 2. Map 集合中的方法 (1) V put(K key,V value) : 往Map集合中添加一个键值对,如果键在Map中没有存在,则直接添加,返回值为 null;(3) V get(K key):根据键,返回对应的值(value)。开发时,通常用于读取配置文件。
2025-05-16 11:28:41
311
原创 集合【开发的重点**】1
集合【开发的重点**】 一、概念 1. 集合:是一种工具,也是一种容器,用于存储数量不等的多个对象。 2. 集合相关的接口和类位于 java.util 包中。 3. 学习集合从以下 4个点入手: (1) 集合接口的特点 (2) 集合接口中功能方法 (3) 集合接口对应的实现类 (4) 集合的遍历方式 二、Collection集合体系 1. 父接口:Collection接口 (1) 特点:存储任意类型Object对象。 (2) 方法: a. boolean add(Object o):将o对象添加到集合中。【
2025-05-16 11:28:09
856
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅