java
文章平均质量分 69
java
星空下的DeppBing
行动清单(6 个月)
基础强化:TypeScript 进阶、深入 React/Vue 源码、掌握浏览器渲染原理与性能调优工具。
方向选择:锁定 1 个核心方向(如跨端→Flutter+Wasm;AI→TensorFlow.js+LangChain)。
全栈扩展:学习 Node.js+MongoDB,搭建 BFF 层,实践微前端 / CI/CD。
AI 融合:用 Copilot X 辅助开发,落地 1 个 AI 小应用(如智能搜索 / 工单回复)。
项目验证:做 1 个完整项目(如 3D 可视化大屏 / 跨端电商小程序),沉淀技术博客与开源代码。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java Spring(IOC、AOP)学习路线记录
本文系统介绍了Spring框架的核心概念IOC和AOP,并提供了学习路径建议。IOC通过容器管理对象创建和依赖注入,实现松耦合;AOP则将横切关注点(如日志、事务)模块化。推荐结合官方文档、《Spring实战》和视频教程学习,建议从基础配置开始,逐步深入理解原理和代理机制,最终过渡到SpringBoot。文章还列举了常见面试题作为学习检验,强调理解思想重于机械使用。掌握这些核心概念将为后续学习Spring生态打下坚实基础。原创 2025-10-14 08:30:00 · 1154 阅读 · 0 评论 -
MyBatis CRUD操作终极指南 → MyBatis CRUD 操作详解(完整版手册)→ MyBatis CRUD 项目参考
《MyBatis CRUD操作完全手册》摘要: 本手册系统讲解MyBatis的增删改查操作,包含核心概念(SqlSessionFactory、Mapper映射)、四种基础操作(查询/插入/更新/删除)的完整写法和接口简写方式,重点覆盖动态SQL、参数传递、事务管理和性能优化。特别说明#{}与${}的安全差异,提供自增主键获取、批量操作、逻辑删除等实战方案,并附SpringBoot整合示例(含目录结构、实体类、Mapper接口/XML、Service层及事务控制)。注意事项强调SQL注入防护、条件限制避免全表原创 2025-08-25 08:00:00 · 1293 阅读 · 0 评论 -
MyBatis占位符#{}与${}对比指南
摘要:MyBatis中#{}和${}占位符核心区别在于安全性和处理方式。#{}采用预编译机制,能防止SQL注入并自动处理类型转换,适用于常规CRUD操作;${}是直接文本替换,存在SQL注入风险,仅限用于动态表名/列名等场景。最佳实践建议:默认使用#{}确保安全,仅在必须使用动态SQL元素时才谨慎使用${},并严格控制输入来源以避免注入风险。两者可组合使用,如动态表名配合安全参数查询。原创 2025-08-21 15:06:42 · 439 阅读 · 0 评论 -
HikariCP vs Druid 的性能对比
《HikariCP与Druid连接池性能对比分析》摘要:测试对比显示,HikariCP在连接获取速度(纳秒级)和吞吐量(比Druid高20%-40%)方面表现更优,内存占用更低,适合追求极致性能的微服务场景;Druid功能更全面,内置SQL监控、统计等特性,适合需要深度监控的大数据量系统。JMH基准测试表明,HikariCP处理速度更快,而Druid因额外监控功能导致CPU占用略高。实际应用中可混合使用:业务层采用HikariCP保障性能,管理系统使用Druid实现监控。原创 2025-08-27 08:30:00 · 303 阅读 · 0 评论 -
Java 数据库连接池
数据库连接池是Java程序高效访问数据库的关键技术,通过预先创建和管理连接解决频繁创建/销毁的开销问题。主流实现包括HikariCP(性能最佳,SpringBoot默认)、Druid(带监控功能)等。核心参数包括最大连接数、最小空闲连接等。配置示例展示了HikariCP和Druid的基础用法,SpringBoot中只需简单配置即可自动集成HikariCP。建议单体项目用HikariCP,需要监控选Druid,合理使用连接池可显著提升数据库访问性能和稳定性。原创 2025-08-27 09:30:00 · 428 阅读 · 0 评论 -
MyBatis 的配置与使用,以及它与原生 JDBC 在项目开发中的不同点和优势
MyBatis是一个半自动ORM框架,通过XML或注解管理SQL语句,自动完成参数和结果映射,相比JDBC减少了重复代码。它可以独立使用或与SpringBoot集成,提供SQL与代码分离、自动映射对象等优势,适合SQL复杂、需要性能优化的项目。配置步骤包括添加依赖、设置数据源、定义实体类和Mapper接口,支持XML和注解两种SQL编写方式。与JDBC相比,MyBatis简化了开发流程,提高了可维护性,同时保留了SQL的灵活性。原创 2025-08-26 08:30:00 · 970 阅读 · 0 评论 -
ORM 框架(Object-Relational Mapping,对象关系映射),包括 是什么、解决什么问题、常见框架、优缺点、使用场景。
ORM框架实现对象与关系型数据库的映射,通过操作对象完成数据库CRUD,避免手写SQL。主流框架包括Java的Hibernate/MyBatis、Node的TypeORM、Python的SQLAlchemy等。优势是开发效率高、面向对象、可移植性强,但存在性能损耗、学习曲线陡峭等问题。适用于常规业务系统,不推荐用于需要极致性能或复杂SQL的场景。最佳实践是结合ORM与原生SQL,平衡效率与灵活性。原创 2025-08-20 14:34:09 · 796 阅读 · 0 评论 -
MySQL 的 DDL / DML / DQL / DCL 做一次系统梳理:概念区别→常用语法→特点与注意点→实战小例子→常见面试/坑点速记
本文系统梳理了MySQL四大类SQL语句:DDL(定义/修改数据库结构,如CREATE/ALTER)、DML(操作数据,如INSERT/UPDATE)、DQL(查询数据,如SELECT)和DCL(权限控制,如GRANT)。重点对比了DELETEvsTRUNCATE、INSERT冲突处理等核心操作,强调事务控制、索引优化和安全规范。通过典型SQL示例(含8.0+窗口函数/CTE)和实战脚本,提供从表结构设计到查询优化的全流程指导,并总结"短事务、最小权限、最左前缀索引"等关键原则。原创 2025-08-16 18:45:00 · 1224 阅读 · 0 评论 -
Java 常用 API,涵盖 字符串、数学、数组、集合工具类以及 包装类和自动装箱拆箱,这是 Java 基础进阶必备内容
本文总结了Java常用工具类的核心功能和方法。String类为不可变字符串,提供length()、substring()等方法;StringBuilder/StringBuffer用于高效修改字符串。Math类提供数学运算方法如max()、pow()等。Arrays类处理数组操作,包括sort()、binarySearch()等。Collections类支持集合操作如排序、反转等。此外,介绍了包装类与自动装箱拆箱机制,将基本类型转换为对象以支持泛型使用。这些工具类为Java开发提供了便捷的字符串处理、数学计原创 2025-08-19 12:30:00 · 412 阅读 · 0 评论 -
Java 面向对象(OOP)中的方法重载(Overload)与方法重写(Override),理解多态和类设计的重要基础
方法重载和重写是Java中两个重要概念。方法重载指在同一个类中定义多个同名方法,但参数列表不同(类型、个数或顺序),返回类型可以不同,发生在编译时。方法重写是子类重新定义父类方法,需保持相同方法签名和返回类型(或协变类型),访问权限不能缩小,用于实现多态,发生在运行时。主要区别:重载在同一类中,重写在继承关系中;重载参数不同,重写参数相同;重载编译时决定,重写运行时多态。重载适用于功能相似但参数不同的场景,重写用于修改父类行为实现多态。原创 2025-08-19 09:15:00 · 279 阅读 · 0 评论 -
Java 面向对象(OOP)中的 this 和 super 关键字,这是类与对象、继承、多态 的进阶点
Java中的this和super关键字用于对象引用和继承关系。this指向当前对象,用于访问本类属性/方法(特别是解决变量名冲突)和调用本类构造方法(构造器重载)。super指向父类对象,用于访问被覆盖的父类属性/方法和调用父类构造方法(必须是子类构造方法的第一行)。关键区别在于:this操作当前类,super操作父类。示例展示了通过this和super分别访问子类和父类的同名属性/方法,以及构造方法的调用顺序。这两个关键字在继承体系中实现精确的成员访问和初始化控制。原创 2025-08-19 08:15:00 · 351 阅读 · 0 评论 -
Java 面向对象核心三大特性:封装、继承、多态(OOP),这是 Java 进阶的核心基础
本文介绍了面向对象编程的三大特性:封装、继承和多态。封装通过私有化属性和提供getter/setter方法实现数据保护;继承使用extends关键字让子类复用父类代码;多态则通过方法重写和父类引用指向子类对象,实现同一方法在不同子类中的不同行为。这些特性共同提高了代码的安全性、可维护性和扩展性,是面向对象编程的核心思想。原创 2025-08-18 11:00:00 · 197 阅读 · 0 评论 -
Java 面向对象基础(OOP) 的核心概念:类与对象以及构造方法,Java 入门到进阶的关键基础
本文介绍了面向对象编程(OOP)的核心概念和Java中的实现方式。主要内容包括:OOP三大特征(封装、继承、多态);类与对象的定义与使用,类作为对象模板,对象是类的实例;构造方法的作用与使用,包括默认构造方法、自定义构造方法及其重载;this关键字的用途(引用当前对象和调用其他构造方法)。文章通过代码示例展示了Person类的定义、对象创建和构造方法调用过程,帮助理解Java面向对象编程的基本原理。原创 2025-08-18 09:00:00 · 180 阅读 · 0 评论 -
Java 基础语法 - 数组及常见操作(温习),适合入门阶段打基础
Java数组是一种存储相同类型元素的有序集合,具有固定长度和连续内存空间的特点。摘要介绍了数组的基本操作:声明创建(如int[] arr = {1,2,3})、元素访问(通过索引)、常见操作(遍历、排序、查找、拷贝等)以及多维数组的使用。数组优点包括快速索引访问和内存连续性,缺点是长度不可变且插入/删除效率低。对于需要动态长度的场景,建议使用ArrayList等集合类替代。原创 2025-08-18 08:00:00 · 241 阅读 · 0 评论 -
Java 基础语法 - 流程控制 完整学习笔记,包含语法、执行逻辑、注意点和示例代码
Java流程控制包括顺序结构、选择结构和循环结构。选择结构通过if/switch实现条件分支:if使用布尔条件判断,switch支持多种数据类型并可防止case穿透。循环结构包含for、while和do-while三种形式:for适合已知循环次数,while先判断后执行,do-while至少执行一次。循环控制关键字break用于终止循环,continue跳过当前迭代,return直接结束方法。Java14后switch支持箭头语法简化代码。注意避免死循环,合理使用控制语句实现程序逻辑。原创 2025-08-17 08:15:00 · 296 阅读 · 0 评论 -
Java 基础语法 - 数据类型、变量、运算符 系统化地整理,做到既适合入门又有一定深度
Java基础知识摘要: Java是强类型语言,数据类型分为基本类型(8种,如int、double)和引用类型(类、接口等)。变量需声明类型,分为成员变量、静态变量和局部变量,常量用final修饰。运算符包括算术、赋值、比较、逻辑和位运算,其中算术运算符支持自增/减,逻辑运算符具有短路特性,三元运算符实现条件判断。运算符优先级需注意,如()优先级最高,赋值运算最低。引用类型变量存储对象地址而非对象本身。原创 2025-08-17 08:00:00 · 337 阅读 · 0 评论 -
IntelliJ IDEA的.iml文件作用
IntelliJ IDEA的.iml文件是模块配置文件,主要功能包括:1)记录模块结构(源码目录、测试目录等);2)存储依赖关系(JDK版本、第三方库);3)定义编译输出路径。该文件是IDEA专用配置,Maven项目中内容较简洁(依赖信息主要在pom.xml),非Maven项目则需完整记录所有配置。若文件丢失,Maven/Gradle项目可重新导入生成,普通Java项目需手动重建配置。建议不将.iml文件纳入版本控制。原创 2025-08-16 08:30:00 · 647 阅读 · 0 评论 -
Java 基础阶段 实战项目 学生成绩管理系统(控制台版)项目全篇注释,项目学习入门更快捷方便
【摘要】本文介绍了一个基于Java控制台的学生成绩管理系统,具备完整的CRUD功能和数据持久化能力。系统支持学生信息管理(添加/删除)、成绩录入/修改/删除、统计分析(学生个人成绩统计/班级科目统计)等功能,采用CSV文件(grades.csv)实现数据存储。核心类包括App(主程序)、GradeBook(成绩簿)和CsvStorage(CSV存储),通过菜单驱动交互,支持UTF-8编码的CSV文件自动加载与保存。系统采用模块化设计,包含异常处理和输入验证,适合教学场景使用。原创 2025-08-15 08:44:26 · 313 阅读 · 0 评论 -
java学习路线
本文系统梳理了Java学习路径,分为五个阶段:1.基础阶段:掌握语法、面向对象、I/O等核心概念;2.进阶阶段:深入集合框架、多线程、Java8+新特性;3.JavaWeb开发:学习数据库、Servlet、Spring框架等Web开发技术;4.分布式架构:涵盖微服务、缓存、消息队列等企业级技术;5.实战面试:强化算法、设计模式及项目部署能力。每个阶段都包含详细的知识点和推荐实战项目,如学生管理系统、电商购物车、秒杀系统等,形成从基础到企业级应用的完整学习闭环。原创 2025-08-13 08:28:51 · 749 阅读 · 0 评论 -
TCP与UDP:核心协议解析与应用场景
TCP与UDP协议对比分析 摘要:TCP和UDP是两种主要的传输层协议。TCP提供可靠的、面向连接的字节流传输,适用于HTTP、文件传输等场景,通过三次握手建立连接,具有流量控制、拥塞控制等机制,但存在头部开销大、延迟高等缺点。UDP则是无连接的、面向报文且不可靠的协议,适用于实时音视频、游戏等低延迟场景,具有简单高效的特点,但需要应用层处理可靠性问题。Java中分别通过Socket/DatagramSocket实现TCP/UDP通信,使用时需注意粘包、超时设置等问题。实际应用中,应根据业务需求在可靠性和实原创 2025-08-14 08:45:00 · 992 阅读 · 0 评论 -
网络架构与编程三要素解析
网络通信架构与Java实现概述 网络架构主要分为客户端-服务器(C/S)和点对点(P2P)两种模式。C/S架构集中管理,适合Web服务、数据库等场景;P2P去中心化,适合文件共享、区块链等应用。网络编程核心三要素为地址(IP/DNS)、端口和协议,其中协议选择需考虑可靠性(TCP)、实时性(UDP)或应用层需求(HTTP/WebSocket等)。 Java提供丰富的网络API: TCP:通过Socket/ServerSocket实现可靠流式通信,需处理消息边界问题 UDP:使用DatagramSocket实原创 2025-08-14 08:30:00 · 851 阅读 · 0 评论 -
Java多线程创建方式全解析
本文系统介绍了Java多线程编程的核心知识。主要内容包括:1)多线程概念与作用,解释线程作为程序执行最小单元的功能;2)四种线程创建方式,包括继承Thread类、实现Runnable/Callable接口及线程池,提供全写和简写示例;3)线程同步机制,详细说明synchronized、ReentrantLock、volatile等解决方案;4)线程池优化建议,推荐使用ThreadPoolExecutor并给出配置参数;5)并发与并行概念区分。文章还通过Mermaid思维导图梳理了知识体系,并强调线程安全问题原创 2025-08-14 08:30:00 · 838 阅读 · 0 评论 -
java io流,io流是什么;应用场景;io流分类,以及使用分类场景;io流字节输入输出流,io字符输入输出流;不同输入输出流使用,使用场景;缓冲流
Java I/O流是处理数据传输的核心工具,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer)。字节流适用于二进制文件(如图片、音视频),字符流专为文本文件设计。核心类包括FileInputStream/FileOutputStream(基础文件读写)、BufferedReader/BufferedWriter(缓冲提高性能)和Data/Object流(处理特殊数据类型)。缓冲流通过减少I/O次数显著提升效率,而选择依据是文件类型(文本/二进制)和大小。NI原创 2025-08-13 10:15:00 · 1034 阅读 · 0 评论 -
file IO 字符集
Java文件I/O必须关注字符集以避免乱码问题,编码(字符→字节)和解码(字节→字符)过程需保持一致。推荐使用UTF-8字符集,支持多语言且跨平台。在Java中可通过字符流(Reader/Writer)、缓冲流或NIO方式(Files类)指定字符集,其中NIO方式最为简洁。需注意不显式指定字符集会导致平台编码差异问题,读取编码需与写入编码一致。最佳实践包括始终显式指定UTF-8字符集、优先使用NIO方法,并避免依赖默认编码的FileReader/FileWriter。检测文件编码可使用juniversalc原创 2025-08-12 09:15:00 · 347 阅读 · 0 评论 -
Java 存储与读取数据方案 —— File I/O 篇
摘要:Java文件I/O操作分为传统I/O和NIO两种方式。传统I/O通过流实现,包括处理二进制数据的字节流(InputStream/OutputStream)、处理文本的字符流(Reader/Writer),以及提升性能的缓冲流(BufferedXxx)。NIO采用缓冲区+通道模式,适合高性能和大文件操作。关键类包括File(文件管理)、数据流(DataInputStream/DataOutputStream)和对象流(ObjectInputStream/ObjectOutputStream)。实际应用中原创 2025-08-13 08:00:00 · 360 阅读 · 0 评论 -
Java Stream 流篇 —— 函数链式编程
Java8 Stream流是函数式编程风格的集合处理方式,通过声明式链式操作简化数据处理。其核心流程包括:获取数据源、中间操作(过滤、转换等惰性操作)和终止操作(触发执行并输出结果)。与传统循环相比,Stream代码更简洁(如filter().map().collect()链式调用),支持并行处理且可读性更高。典型应用包括数据过滤、排序、去重和聚合计算,但需注意流只能使用一次,并行流需谨慎使用。Stream通过方法链和函数式编程显著提升了Java集合处理的开发效率和代码质量。原创 2025-08-11 09:51:27 · 904 阅读 · 0 评论 -
java stream篇,stream是什么,有什么作用场景;怎么获取创建stream;stream提供的常用方法有哪些;stream终极方法和收集stream流;总结stream;
摘要:Java 8引入的Stream是一种对数据源进行声明式处理的工具,位于java.util.stream包中。它支持链式编程和并行处理,提供过滤、转换、排序等丰富操作方式。Stream的特点包括:不存储数据、延迟执行、一次性使用、支持并行处理且不改变原集合。创建方式多样,包括从集合、数组、Stream.of()等方法创建。操作分为中间操作(如filter、map)和终结操作(如forEach、collect)。常用收集器Collectors可将结果转换为集合或Map。使用时需注意避免无限流和线程安全问题原创 2025-08-12 17:30:00 · 527 阅读 · 0 评论 -
java map集合,体系特点常用方法;遍历方式,键值对;遍历方式-lambda;综合案例和map集合实现类
Java Map集合体系详解:Map是存储键值对的接口,主要实现类包括无序的HashMap、有序的LinkedHashMap、排序的TreeMap,以及线程安全的Hashtable和ConcurrentHashMap。Map的特点包括键唯一值可重复、无索引访问、对null值的不同支持策略。常用方法有put、get、remove等,遍历方式包括键遍历、值遍历、entrySet遍历等。底层实现上,HashMap采用数组+链表+红黑树结构,TreeMap基于红黑树实现排序。线程安全场景推荐使用Concurrent原创 2025-08-12 12:30:00 · 333 阅读 · 0 评论 -
java Set集合,不同特点和相同点;注意点有哪些;已经每一个的底层实现原理,以及不同的对比
Java Set集合(HashSet、LinkedHashSet、TreeSet)都是不允许重复元素、无索引且线程不安全的集合。主要区别在于:HashSet无序,基于HashMap实现,操作效率O(1);LinkedHashSet维护插入顺序,基于LinkedHashMap;TreeSet有序(自然/比较器排序),基于TreeMap实现红黑树结构,操作效率O(logn)。HashSet和LinkedHashSet允许一个null元素,TreeSet不允许。使用Set时需注意重写equals()和hashCo原创 2025-08-12 07:45:00 · 430 阅读 · 0 评论 -
java集合,常用的有哪些以及功能和分类;常用方式,哪些遍历方式;并发修改问题以及不同的解决方式;collection集合,list集合,set集合;共同功能和特有功能
Java集合框架(JCF)是存储和操作数据的容器类库,主要分为Collection和Map两大体系。Collection包含三大子接口:List(有序可重复,如ArrayList、LinkedList)、Set(无序不可重复,如HashSet、TreeSet)和Queue(队列)。各集合类型具有通用方法(add/remove等)和特有功能,支持多种遍历方式。需要注意并发修改问题和泛型使用,基本类型需用包装类。集合框架提供了丰富的实现类满足不同场景需求,如线程安全的Vector、有序的TreeSet等。原创 2025-08-11 08:15:00 · 483 阅读 · 0 评论 -
java泛型篇,泛型作用,泛型本质和原理,泛型中E,T,K,V缩写通常代表什么,泛型类,自定义泛型类,泛型接口,自定义泛型接口,泛型接口详解,泛型方法,通配符,上下限,泛型支持的类型,包装类作用,包装
java泛型篇,泛型作用,泛型本质和原理,泛型中E,T,K,V缩写通常代表什么,泛型类,自定义泛型类,泛型接口,自定义泛型接口,泛型接口详解,泛型方法,通配符,上下限,泛型支持的类型,包装类作用,包装类有哪些,包装类自动装箱,包装类自动拆箱,包装类具备的常用功能。包装类部分:1)实现基本类型对象化;2)八大基本类型对应包装类;3)自动装箱/拆箱机制;4)常用工具方法如parseXxx、valueOf等。二者配合解决Java泛型不支持基本类型的问题。原创 2025-08-11 12:30:00 · 1144 阅读 · 0 评论 -
java异常篇,异常作用,异常处理,自定义一个异常
Java异常处理机制详解 摘要:Java异常处理机制通过统一方式管理程序运行中的错误情况,包括受检异常(必须处理)和非受检异常(可选处理)。异常体系以Throwable为基类,分为Error(不可处理)和Exception(可处理)。主要处理方式包括try-catch捕获、finally资源释放、try-with-resources自动关闭资源以及throws声明异常。开发人员可自定义异常(继承Exception或RuntimeException)来满足特定需求。异常处理能提高代码可读性,分离正常与异常流程原创 2025-08-11 09:45:00 · 446 阅读 · 0 评论 -
java多次for循环,跳出到指定for循环,或者直接跳出for循环 Java中退出多层循环的4种方法:1️⃣标签+break:通过outer标签直接跳出指定外层循环,适合快速退出嵌套循环;2️⃣标
Java中退出多层循环的4种方法:1️⃣标签+break:通过outer标签直接跳出指定外层循环,适合快速退出嵌套循环;2️⃣标签+continue:跳到外层循环下一轮;3️⃣return:直接退出整个方法,最简洁但会终止后续执行;4️⃣标志变量:用布尔值控制循环,可读性高但代码稍繁琐。标签法简单直接但可读性受影响,return适合不需后续处理的场景,标志变量适合复杂逻辑。原创 2025-08-08 08:42:11 · 748 阅读 · 0 评论 -
java中不同的创建字符串的方式有什么相同点和不同点
本文介绍了Java中创建字符串的四种方式及其区别:1)字符串字面量直接存入常量池复用对象;2)new String()在堆中创建新对象;3)StringBuilder/valueOf()动态拼接生成新字符串;4)intern()方法可强制放入常量池。关键区别在于内存分配和对象复用:字面量方式最高效,new方式每次新建对象,StringBuilder适合拼接,intern()用于优化内存但性能有损耗。实践表明,常规场景推荐使用字面量方式,需要动态拼接时用StringBuilder,特殊需求才考虑new或int原创 2025-08-11 09:15:00 · 409 阅读 · 0 评论 -
Java 函数式编程进阶:方法引用详解(含静态方法、实例方法、构造器引用) 方法引用是Lambda表达式的简写形式,用于直接引用已有方法,提升代码简洁性。主要包括四种类型:静态方法引用(Class
方法引用摘要(150字) 方法引用是Lambda表达式的简写形式,用于直接引用已有方法,提升代码简洁性。主要包括四种类型: 静态方法引用(Class::staticMethod):如Utils::compare替代(a,b) -> Utils.compare(a,b) 实例方法引用(obj::method):如printer::print替代s -> printer.print(s) 类型方法引用(Class::method):如String::compareToIgnoreCase,首参作为调原创 2025-08-10 10:00:00 · 357 阅读 · 0 评论 -
JavaScript 的箭头函数(Arrow Function) 先于 Java 的函数式编程发布
JavaScript箭头函数(2015年ES6)比Java的Lambda表达式(2014年Java8)稍晚引入,但JavaScript早在2000年前就具备函数式特性(一等公民、闭包、高阶函数等),而Java直到Java8才支持函数式编程。从语法发布时间看Java稍早,但从函数式编程思想来看JavaScript更早拥有完整的函数式特性基础。原创 2025-08-08 13:30:00 · 323 阅读 · 0 评论 -
Java -》 Functional Programming: Mastering the Use, Benefits, and Precautions of Lambda Expressions
本文介绍了Java中Lambda表达式的核心要点。Lambda是一种匿名函数实现方式,能够简化函数式接口的写法,基本语法为(参数)->表达式。主要应用于多线程、集合操作等场景,支持参数类型推断、单参数省略括号等语法简化规则。使用需注意:仅适用于单抽象方法接口、无法修改外部变量、不能抛出未声明的异常。Lambda的优势包括提升代码简洁性、开发效率,支持行为参数化,并能与Stream API完美配合。合理运用Lambda可使Java代码更现代优雅,特别推荐在Stream操作和回调场景中使用。原创 2025-08-10 10:30:00 · 791 阅读 · 0 评论 -
Java 匿名内部类 使用场景,解决哪些问题
匿名内部类在Java中常用于临时实现接口或抽象类,避免单独创建类文件。主要应用场景包括:1)快速实现Comparator等接口进行临时比较;2)GUI事件监听器实现;3)创建线程任务体;4)策略模式中临时实现策略对象。其特点是代码简洁,适用于一次性使用场景,但可读性较差,在Java 8后多被Lambda表达式替代。原创 2025-08-10 08:00:00 · 494 阅读 · 0 评论 -
Java 匿名内部类 从冗长到优雅
本文对比了Java中匿名内部类和Lambda表达式的演进与使用。传统匿名内部类语法冗长但功能完整,适用于复杂场景。Java8引入的Lambda表达式极大简化了函数式接口的实现,代码更简洁高效。方法引用则进一步精简特定场景的写法。文章指出,在Java8+中应优先使用Lambda,保留匿名内部类用于需要多方法实现、访问this等特殊场景,并提供了事件监听等实际案例,清晰展示了从匿名类到Lambda的演进路线和使用建议。原创 2025-08-10 08:00:00 · 511 阅读 · 0 评论 -
Java篇 -》 匿名内部类 与 局部内部类
本文介绍了Java中匿名内部类和局部内部类的特点及使用场景。匿名内部类是没有名字的内部类,通常用于快速实现接口或抽象类,只能创建一次实例,多用于事件监听、线程处理等场景。局部内部类定义在方法内部,作用域限定在方法中,可以多次使用。两者都能访问final或等效final的局部变量。文中对比了两者的区别,并指出Java8后可用Lambda表达式简化匿名类的写法。在实际应用中,临时性需求适合匿名类,方法内复杂逻辑适合局部类,而简单接口实现推荐使用Lambda表达式。原创 2025-08-10 08:30:00 · 493 阅读 · 0 评论
分享