📄🦌🙌🐟🏖️
日志记录
Where there is a where there is a way
随机文章
按住 Shift 横向滚动
热门文章
按住 Shift 横向滚动
JavaStream流详解

JavaStream流详解

Stream流是Java 8引入的声明式、函数式数据处理工具,用于高效操作集合、数组等数据源。其三大核心特点:非存储、不可变、延迟执行。使用分为三步:获取流、中间操作(如filter、map、limit、distinct、concat、peek等)、终端操作(如forEach、count、collect、reduce等)。中间操作返回新流,支持链式调用;终端操作触发计算并产生结果。并行流(parallelStream)利用ForkJoinPool多线程处理大数据,适合CPU密集型、无状态操作,但需注意线程安全和数据量。方法引用(如类名::静态方法、对象::成员方法、类名::new)可简化Lambda表达式,前提是符合函数式接口要求。Collector(如toList、groupingBy、joining)用于灵活收集流中数据。

java集合API

java集合API

## 集合框架摘要 集合解决了数组长度固定、类型单一、缺乏操作方法的局限。Java集合主要分为 **Collection(单列)** 和 **Map(双列)** 两大体系。 - **Collection** 分为 **List**(有序、可重复、有索引)和 **Set**(无序、不重复、无索引)。 - **ArrayList**:基于动态数组,查询快(O(1)),增删慢(尾部除外),默认容量10,扩容1.5倍。 - **LinkedList**:基于双向链表,头尾操作快,中间增删高效,随机访问慢。 - **HashSet**:基于哈希表(数组+链表/红黑树),依赖 hashCode 和 equals 去重。 - **LinkedHashSet**:在 HashSet 基础上维护双链表保证插入顺序。 - **TreeSet**:基于红黑树,自动排序(Comparable 或 Comparator)。 - **Map** 存储键值对,键唯一,值可重复。 - **HashMap**:哈希表结构,键无序;**LinkedHashMap**:有序;**TreeMap**:键可排序。 - 遍历方式:键找值、键值对 Entry、Lambda(forEach)。 - **通用遍历**:迭代器、增强 for、Lambda。List 额外支持普通 for。 - **其他**:可变参数简化方法调用;Collections 提供排序、打乱等工具;不可变集合(List.of、Set.of、Map.of)禁止修改。

java常用API.md

java常用API.md

本文总结了Java基础编程中常用的核心类,涵盖**数据输入**(Scanner)、**字符串处理**(String不可变、StringBuilder可变、StringBuffer线程安全、StringJoiner简化拼接)、**数学工具**(Math)、**系统操作**(System、Runtime)、**对象基础**(Object、Objects)、**大数运算**(BigInteger、BigDecimal精确小数计算)、**日期时间**(JDK7的Date/Calendar/SimpleDateFormat及JDK8的LocalDateTime、Instant、DateTimeFormatter等不可变API)、**包装类**(自动装箱拆箱、Integer缓存)、**数组工具**(Arrays排序/二分查找)以及**唯一标识**(UUID)。重点强调:String对象不可修改,StringBuilder/StringBuffer提升字符串效率;BigDecimal解决浮点精度问题;JDK8时间类线程安全且功能更强大;包装类支持自动类型转换;Arrays的sort可自定义比较器。这些工具类为Java开发提供了高效、安全的编程基础。

Java面向对象基础

Java面向对象基础

本文介绍了Java面向对象编程的核心概念。面向对象通过“类”描述对象共同特征,“对象”是具体实例,类包含成员变量、方法和构造器。四大特性包括:**封装**(用private隐藏细节,通过getter/setter暴露接口)、**继承**(用extends实现代码复用,子类可重写父类方法)、**多态**(父类引用指向子类对象,调用重写方法时表现不同行为)、**抽象**(抽象类与接口定义规范,强制子类实现特定方法)。此外还涉及**static**(类级别共享)、**final**(不可变常量)、**权限修饰符**(控制访问范围)、**内部类**(逻辑分组与隐藏实现)、**Lambda**(简化函数式接口匿名内部类)、**枚举**(类型安全常量集)及**泛型**(编译时类型检查与通配符限定)。这些特性共同提升代码的复用性、安全性与可维护性。

java基本语法.md

java基本语法.md

本文介绍了Java基础知识的核心内容,包括注释(单行、多行、文档注释)、关键字(如class)、字面量(整数、小数、字符串、字符、布尔、空类型)及特殊字符。变量是存储数据的空间,需定义数据类型和变量名,分为局部变量和成员变量。基本数据类型有byte、short、int、long、float、double、char、boolean,引用数据类型需new创建。标识符命名遵循驼峰规则。运算符包括算术、自增自减、赋值、关系、逻辑、三元等,需注意类型转换和字符串拼接。流程控制有if、switch、循环(for、while、do-while)及break/continue。数组是同类型数据的容器,有静态和动态初始化。方法是最小执行单元,支持重载,值传递时基本类型不影响实参,引用类型影响实参。

结构型模式

结构型模式

结构型模式用于组织类或对象以形成更大的结构,分为类结构型(继承)和对象结构型(组合/聚合),后者耦合度更低、更灵活。主要包括七种模式:**代理模式**为对象提供替身以控制访问(如JDK动态代理、CGLIB);**适配器模式**将不兼容接口转换成客户期望的接口,使类能协同工作;**装饰者模式**动态地为对象添加新功能,避免继承爆炸;**桥接模式**将抽象与实现分离,使二者可独立变化;**外观模式**为子系统提供统一的高层接口,简化调用;**组合模式**将对象组织成树形结构,使单个与组合对象一致处理;**享元模式**通过共享内部状态减少对象创建,节约内存。这些模式广泛应用于框架、系统集成及性能优化场景。

创建者模式

创建者模式

本文介绍了创建型设计模式的核心思想——将对象的创建与使用分离以降低耦合度。具体阐述了五种模式:**单例模式**确保类只有一个实例,提供全局访问点,分为饿汉式(类加载时创建)和懒汉式(首次使用时创建),并讨论了双重检查锁、静态内部类、枚举等实现方式及反射/序列化破坏问题的解决;**工厂方法模式**通过定义创建对象的接口,让子类决定实例化哪个产品类,并扩展了注册表、反射、Spring Bean等工厂实现;**抽象工厂模式**用于创建一组相关产品(产品族),保证客户端始终使用同一族产品,适用于跨平台界面或游戏装备等场景;**原型模式**通过克隆现有对象快速创建新对象,避免复杂构造过程,支持浅克隆和深克隆;**建造者模式**将复杂对象的构造与表示分离,通过链式调用灵活构建对象,尤其适合多参数场景,Lombok的@Builder可简化实现。

设计模式相关内容介绍

设计模式相关内容介绍

设计模式是软件设计中可复用的经验总结,源于建筑领域,1995年GOF四人组出版了《设计模式》一书,收录23种经典模式,分为**创建型**(如单例、工厂)、**结构型**(如代理、适配器)和**行为型**(如策略、观察者)三类。 UML类图用于描述系统静态结构,展示类及其关系,包括关联、聚合、组合、依赖、继承和实现等。 软件设计六大原则旨在提高可维护性和扩展性: - **开闭原则**:对扩展开放,对修改关闭,多用接口和抽象类。 - **里氏代换原则**:子类可扩展父类功能,但不重写已有方法。 - **依赖倒转原则**:面向抽象编程,高层与低层模块都依赖抽象。 - **接口隔离原则**:接口应小而专,避免客户端依赖不必要的方法。 - **迪米特法则**:只与直接朋友通信,减少耦合。 - **合成复用原则**:优先用组合/聚合,其次才用继承。

© 2026 日志记录