- 博客(72)
- 资源 (12)
- 收藏
- 关注
原创 SpringBoot跨域请求全面解析:从基础到高级实战(史上最全)
跨域请求是指在Web开发中,当一个网页的资源试图访问不同于当前页面来源(协议、域名、端口任一不同)的资源时,浏览器出于安全考虑实施的同源策略限制。现代Web应用普遍采用前后端分离架构,跨域解决方案成为必要。常见的跨域解决方案包括CORS、JSONP、代理服务器等,其中CORS是主流方案。SpringBoot提供了多种实现CORS的方式,包括注解方式(@CrossOrigin)和全局配置(WebMvcConfigurer),通过HTTP头部字段进行通信控制,确保跨域请求的安全性和灵活性。
2025-05-13 07:00:00
813
原创 SpringBoot 数据校验与表单处理:从入门到精通(万字长文)
在现代Web应用开发中,数据验证是保证系统安全性和数据完整性的第一道防线。没有经过验证的用户输入可能导致各种安全问题,如SQL注入、XSS攻击,或者简单的业务逻辑错误。数据验证的主要目的包括:确保数据的完整性和准确性防止恶意输入导致的安全问题提供清晰的错误反馈改善用户体验保证业务规则的执行SpringBoot提供了强大的数据验证机制,主要通过Java Bean Validation API(JSR-380)实现,该规范目前最新的实现是Hibernate Validator。
2025-05-13 07:00:00
1185
原创 Java设计模式之代理模式:从入门到精通(保姆级教程)
代理模式是一种结构型设计模式,通过在客户端和目标对象之间引入代理对象来控制对目标对象的访问。代理模式的核心角色包括抽象主题(Subject)、真实主题(RealSubject)和代理(Proxy)。代理模式的主要类型有静态代理、动态代理、虚拟代理、保护代理、远程代理和智能引用代理。静态代理需要手动创建代理类,适用于编译时确定的场景,而动态代理则在运行时动态生成代理类,更具灵活性。代理模式的优点在于职责清晰、扩展性好和访问控制,但静态代理的缺点是类数量增加,且接口变化时需同步修改代理类。动态代理通过java.
2025-05-12 15:22:05
98
原创 Java设计模式之装饰器模式:从基础到高级的全面解析(万字解析)
装饰器模式是一种结构型设计模式,允许在不改变对象结构的情况下动态地添加新功能。它通过创建一个装饰类来包装原有类,保持方法签名的完整性,同时提供额外功能。装饰器模式的核心思想是通过组合而非继承来扩展对象功能,具有高灵活性和动态性。其结构包括抽象组件、具体组件、抽象装饰类和具体装饰类。与继承相比,装饰器模式更灵活,可以在运行时动态添加或移除功能,但可能增加系统复杂度。实现步骤包括定义抽象组件接口、创建具体组件类、定义抽象装饰器类和实现具体装饰器类。装饰器模式适用于需要动态、透明地扩展功能的场景,符合开闭原则,但
2025-05-12 15:20:38
107
原创 Java设计模式之适配器模式:从入门到精通
适配器模式是Java中常用的结构型设计模式,用于解决接口不兼容的问题,使原本无法协同工作的类能够一起工作。适配器模式通过将类的接口转换为客户期望的接口,分为类适配器和对象适配器两种实现方式。类适配器通过继承实现,灵活性较低;对象适配器通过组合实现,更符合合成复用原则,推荐使用。适配器模式的核心在于接口转换和功能复用,遵循开闭原则、单一职责原则和合成复用原则。典型使用场景包括系统升级兼容、第三方库集成、接口标准化、遗留系统集成和接口版本过渡。Java I/O库中大量使用了适配器模式,如InputStreamR
2025-05-12 15:18:59
137
原创 Spring Boot整合FreeMarker全面指南:从基础到高级实战
FreeMarker是一款基于Java的模板引擎,广泛用于生成HTML页面及其他文本输出。其核心优势包括轻量级、强大的表达式支持、高效的静态文本处理、模板继承和国际化支持。Spring Boot与FreeMarker的整合简单高效,只需添加依赖并进行基础配置即可使用。FreeMarker的基础语法涵盖变量输出、表达式处理、常用指令(如if-else、list、include)以及内置函数和日期处理。Spring Boot通过自动配置简化了FreeMarker的集成,开发者也可以通过自定义配置满足更复杂的需求
2025-05-12 08:00:00
895
原创 FreeMarker 语法全面详解
FreeMarker 是一种功能强大的模板引擎,其语法简洁且灵活。本文从基础到高级全面解析了 FreeMarker 的语法体系,涵盖静态文本、FTL 标签和插值等基础语法结构,并详细介绍了注释语法。插值部分讲解了基本插值、操作符及其优先级,以及特殊变量的使用。指令部分则深入探讨了条件判断、循环、变量定义、模板包含、宏和函数等常用指令,通过大量示例展示了如何在实际应用中灵活运用这些功能。无论是初学者还是有经验的开发者,都能从中获得实用的技巧和深入的理解。
2025-05-12 08:00:00
487
原创 Spring Boot整合Thymeleaf模板开发:从入门到精通
Thymeleaf是一个现代化的服务器端Java模板引擎,适用于Web和独立环境,支持HTML、XML、JavaScript、CSS等多种文件类型。其核心特点包括自然模板、与Spring框架的无缝集成、丰富的表达式语言、模块化设计以及国际化支持。与其他模板引擎如JSP、Freemarker和Velocity相比,Thymeleaf在自然模板、HTML5支持和静态原型方面具有优势。Thymeleaf的核心概念包括模板、表达式、处理器和方言。在Spring Boot中集成Thymeleaf只需添加相关依赖,并进
2025-05-11 08:00:00
1002
原创 Thymeleaf 语法全面详解:从入门到精通(史上最全)
Thymeleaf 是一个功能强大的服务器端 Java 模板引擎,支持多种文件类型,如 HTML、XML、JavaScript 和 CSS。其语法丰富,涵盖了变量表达式、选择表达式、消息表达式、链接表达式和片段表达式等多种表达式类型。Thymeleaf 还支持字面量、文本操作、算术运算、布尔运算和条件运算等基本操作。核心属性如 th:text、th:utext、th:value 和 th:with 用于设置文本内容、表单值和局部变量。条件属性如 th:if、th:unless 和 th:switch 用于条
2025-05-11 08:00:00
701
原创 SpringBoot异步处理@Async深度解析:从基础到高阶实战
异步编程通过非阻塞的方式提高系统吞吐量和用户体验,适用于IO密集型和长时间任务。Java中实现异步编程的方式包括传统Thread、Future模式、CompletableFuture和Spring的@Async注解。@Async注解的使用需要在Spring Boot主类或配置类上添加@EnableAsync,并创建异步服务类。异步方法必须为public,且同类调用无效。Spring默认使用SimpleAsyncTaskExecutor,但生产环境推荐自定义线程池配置,
2025-05-10 08:00:00
617
原创 SpringBoot Web开发完全指南:从基础到高级实战
SpringBoot是Pivotal团队基于Spring框架推出的全新框架,旨在简化Spring应用的初始搭建和开发过程。其核心优势包括自动配置、起步依赖、命令行界面和生产级监控功能。与传统Spring相比,SpringBoot采用约定优于配置的方式,自动管理依赖,并内置服务器,支持直接运行可执行JAR文件。创建SpringBoot项目可通过Spring Initializr、IDE或命令行完成,基础代码结构包括主启动类、控制器层、服务层和数据访问层。
2025-05-10 08:00:00
1500
原创 Java设计模式之建造者模式:从入门到精通
建造者模式是一种创建型设计模式,用于将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。该模式通过定义抽象建造者接口和具体建造者类,逐步构建复杂对象,并由指挥者控制构建流程。经典实现包括产品类、抽象建造者、具体建造者和指挥者四个角色,适用于构建过程复杂多变的场景。此外,静态内部类实现(链式调用)是Java中常见的变体,通过链式调用设置属性,简化了代码结构,适用于属性较多的对象创建。建造者模式的优点在于构建过程清晰,能够创建不同表示的对象,但缺点是需要创建多个类,代码量较大。
2025-05-09 13:38:16
173
原创 Java设计模式之原型模式详解:从入门到精通
文章摘要: 原型模式是一种创建型设计模式,通过复制现有对象来创建新对象,适用于创建成本较高的场景。其核心概念包括原型、克隆、浅拷贝和深拷贝。Java中通过Cloneable接口和clone()方法实现,浅拷贝仅复制对象本身,深拷贝则复制对象及其所有引用对象。文章以试卷复印为例,展示了原型模式的具体实现,并介绍了原型管理器用于集中管理多种原型。该模式在需要高效创建相似对象时具有显著优势,同时支持灵活的对象复制策略。
2025-05-09 13:37:17
254
原创 Java设计模式之抽象工厂模式:从入门到精通
抽象工厂模式是一种创建型设计模式,用于创建一系列相关或相互依赖的对象,而无需指定具体类。它通过定义抽象工厂接口和具体工厂类,将对象的创建与使用分离,确保客户端代码与具体实现解耦。该模式适用于多平台应用开发、多数据库支持、国际化等场景,能够保证产品族的一致性,并易于扩展。然而,它也可能增加系统复杂度,且扩展产品等级较为困难。与其他创建型模式相比,抽象工厂模式更适合处理多个相关产品的创建。通过定义抽象产品、具体产品、抽象工厂和具体工厂,客户端可以灵活地创建和使用不同风格的产品,如快餐店中的健康套餐和经典套餐。
2025-05-09 13:33:22
207
原创 Java设计模式之工厂方法模式:从入门到精通
工厂方法模式是一种创建型设计模式,通过定义一个创建对象的接口,将具体实例化的过程延迟到子类中,从而实现对象的创建与使用的分离。该模式的核心思想是降低代码耦合度,提高可维护性和可扩展性。模式结构包括产品接口(Product)、具体产品类(ConcreteProduct)、工厂接口(Creator)和具体工厂类(ConcreteCreator)。基本实现步骤包括定义产品接口、创建具体产品类、定义工厂接口、实现具体工厂类以及客户端通过工厂接口创建产品。代码示例展示了电子产品工厂的实现,包括产品接口、具体产品类、工
2025-05-09 13:33:01
187
原创 Java设计模式之单例模式:从入门到精通
单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供全局访问点。其核心特点包括唯一性、全局访问、自行创建和严格控制。单例模式常用于配置管理、日志记录、数据库连接池等场景。实现方式主要有饿汉式和懒汉式。饿汉式在类加载时即创建实例,保证线程安全但可能浪费资源;懒汉式在首次调用时创建实例,延迟加载但多线程环境下不安全。通过私有化构造函数、创建私有静态实例和提供公开访问方法,单例模式确保了类的唯一实例和全局访问。
2025-05-09 13:32:49
173
原创 Java设计模式全面详解:从基础到高级的23种模式简介
设计模式是软件设计中解决常见问题的典型方案,分为创建型、结构型和行为型三大类。创建型模式主要处理对象创建机制,包括单例模式、工厂方法模式、抽象工厂模式和建造者模式等。单例模式确保一个类只有一个实例,工厂方法模式通过子类决定实例化哪个类,抽象工厂模式创建相关对象的家族,而建造者模式则将复杂对象的构建与表示分离。这些模式通过预定义的解决方案,提高了代码的可维护性和可扩展性。
2025-05-09 10:19:26
223
原创 Spring Boot 打包与部署全面指南:从基础到高级实践
作为Java开发者,掌握Spring Boot应用的打包与部署是必备技能。本文将全面系统地介绍Spring Boot应用的打包与部署方式,从基础到高级,涵盖各种场景和需求。</</</</</</</</</</本文全面介绍了Spring Boot应用的打包与部署,从基础的JAR/WAR打包到高级的云原生部署,涵盖了各种场景和最佳实践。打包选择:根据场景选择JAR(云原生)或WAR(传统部署)部署方式:从简单命令行到容器化、Kubernetes集群部署性能优化。
2025-05-09 08:00:00
2043
原创 Spring Boot 3.x 新特性详解:从基础到高级实战
特性说明优势JDK 17+ 基线最低要求Java 17利用现代Java特性如record、文本块等从javax迁移到jakarta命名空间符合最新企业标准改进的GraalVM支持更好的原生镜像支持更快的启动速度和更低的内存占用增强的Micrometer集成改进的指标收集更好的可观测性新的Problem Details API标准化的错误响应格式更好的API错误处理自动配置改进更智能的条件配置更精简的运行时代码步骤1:创建自动配置类/**
2025-05-09 08:00:00
784
原创 Spring Boot集成Log4j详解:从入门到精通
追踪程序执行流程诊断和调试问题监控系统运行状态记录用户操作行为// 简单的日志记录示例logger.info("开始创建订单,订单ID:" + order.getId());try {// 业务逻辑logger.debug("订单处理中...");logger.error("创建订单失败", e);logger.info("订单创建完成");特性Log4j2Logback性能高中低配置方式XML/GroovyProperties异步日志支持支持。
2025-05-08 09:00:00
783
原创 Spring Boot集成SLF4j详解:从基础到高级实践
在软件开发中,日志记录是至关重要的组成部分。用户下单失败时,你需要知道具体原因系统性能出现瓶颈时,你需要追踪耗时操作生产环境出现问题时,你需要排查错误根源如果没有良好的日志系统,就像在黑暗中摸索,无法快速定位和解决问题。(推荐)为什么推荐使用?因为它支持Spring Boot的Profile特性,可以根据不同环境加载不同配置。属性说明示例值必要性name属性名LOG_HOME必填value属性值./logs必填scope作用域可选统一使用SLF4j API。
2025-05-08 08:00:00
3522
原创 Spring Boot集成Logback终极指南:从基础到高级配置
Logback是一个可靠、通用且快速的Java日志框架,作为Log4j的继承者,由Log4j创始人设计。它由三个模块组成:为什么选择Logback?Spring Boot默认使用Logback作为日志框架,当你使用或时,已经自动引入了Logback依赖。1.3 基本日志使用示例二、Logback配置文件详解2.1 配置文件加载顺序Spring Boot会按以下顺序查找Logback配置文件:为什么推荐使用logback-spring.xml?一个完整的Logback配置文件通常包含以下部分:三、
2025-05-07 09:00:00
1417
原创 Spring Boot自动配置原理:从入门到精通
自动配置是Spring Boot的核心特性之一,它能够根据项目中添加的jar依赖自动配置Spring应用程序。例如,如果在classpath下发现了H2数据库的jar包,Spring Boot会自动配置一个内存数据库。通俗理解:就像你去餐厅吃饭,服务员会根据你点的菜(依赖)自动为你准备好相应的餐具(配置),而不需要你一一说明需要什么餐具。创建autoconfigure模块包含自动配置代码在META-INF/spring.factories中定义自动配置类创建starter模块。
2025-05-07 09:00:00
676
原创 Spring Boot日志配置与管理:从入门到精通
日志是应用程序运行时记录的事件、状态和信息的集合,用于跟踪应用程序的运行状况、调试问题和监控系统行为。通俗理解:就像飞机的黑匣子,记录着系统运行的所有关键信息,当出现问题时可以回放查看。Spring Boot默认使用Logback作为日志框架,并通过自动配置。简单使用示例:2.2 日志级别详解级别数值说明使用场景TRACE0最详细的跟踪信息开发阶段深度调试DEBUG1调试信息开发阶段问题排查INFO2运行重要信息生产环境常规监控WARN3潜
2025-05-06 09:00:00
1310
原创 Spring Boot启动过程全面解析:从入门到精通
Spring Boot是一个基于Spring框架的快速开发脚手架,它通过"约定优于配置"的原则简化了Spring应用的初始搭建和开发过程。@Component@Value("${restaurant.name}") // 读取配置项@Value("${restaurant.tables:10}") // 带默认值创建自动配置类:@Bean创建文件:添加配置元数据(用于IDE提示):},阶段回调方式执行时机典型用途初始化Bean初始化完成后资源加载、数据预热启动后。
2025-05-06 09:00:00
1039
原创 SpringBoot核心注解详解:从基础到高级实战
SpringBoot通过一系列注解简化了Spring应用的初始搭建和开发过程。分类主要注解作用描述启动类注解核心启动注解,组合了多个基础注解配置相关定义配置类和Bean,注入属性值组件扫描控制组件扫描路径依赖注入实现依赖注入MVC相关Web MVC开发相关数据相关数据访问和事务控制条件装配@Conditional系列根据条件装配Bean高级特性异步、定时任务、缓存等// 定义条件:只在周末营业@Override// 使用自定义条件@Bean。
2025-05-05 10:00:00
857
原创 Spring Boot配置文件详解:从入门到精通
Spring Boot配置文件是应用程序的核心配置管理工具,它允许开发者在不修改代码的情况下调整应用行为。文件类型优点缺点适用场景简单直观,键值对形式不支持复杂数据结构简单配置层次清晰,支持复杂结构缩进敏感,格式要求严格复杂配置# 自定义配置Spring Boot的配置文件系统提供了强大而灵活的配置管理能力。基础配置的使用方法多环境配置的实现自定义配置的定义和使用高级配置技巧如条件配置、配置加密配置最佳实践和常见问题解决方案实战案例和配置可视化工具关键点记忆表格。
2025-05-05 10:00:00
1505
原创 SpringBoot简介详解:从入门到精通
Spring Boot通过其"约定优于配置"的理念,极大地简化了Spring应用的开发流程。从简单的单体应用到复杂的微服务架构,Spring Boot都能提供良好的支持。掌握Spring Boot不仅能提高开发效率,还能更好地理解现代Java应用开发的最佳实践。学习路线建议先掌握核心特性(自动配置、起步依赖)练习常用组件集成(数据库、缓存、消息队列)深入理解运行原理(自动配置实现、条件装配)学习性能优化和监控探索微服务相关生态(Spring Cloud)
2025-05-04 10:00:00
1488
原创 从零开始搭建第一个Spring Boot应用:从入门到精通
Spring Boot是Spring框架的一个扩展,它简化了基于Spring的应用程序的初始搭建和开发过程。通过自动配置和约定优于配置的原则,Spring Boot让开发者能够快速启动和运行项目。通俗理解:想象你要开一家咖啡店。传统Spring就像是从零开始—你需要自己选购咖啡机、磨豆机、设计店面、招聘员工等。而Spring Boot则像是加盟一家知名咖啡连锁店—总部已经为你准备好了标准化的设备、装修方案和运营流程,你只需要按需调整即可快速开业。起步依赖功能日常生活类比Web开发支持。
2025-05-04 10:00:00
1022
原创 Java Optional 类:从入门到实战
/ 安全转换类型// 集合非空检查// 链式检查多个Optional?// 使用示例// 使用示例return a;})Optional 是 Java 8 引入的强大工具,用于更优雅地处理可能缺失的值。减少 NPE 风险使代码更清晰表达意图支持函数式编程风格强制调用方处理空值情况过度使用导致代码复杂化作为字段或参数使用在性能关键路径上滥用替代必要的业务逻辑检查。
2025-05-03 10:00:00
1021
原创 Java泛型终极指南:从基础到高级应用
泛型(Generics)是Java SE 5.0引入的一个重要特性,它允许在定义类、接口和方法时使用类型参数(Type Parameters)。泛型的本质是参数化类型,即所操作的数据类型被指定为一个参数。专业解释:泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。通俗理解:就像方法有参数一样,泛型让类型也可以作为"参数"传递。
2025-05-03 10:00:00
776
原创 Java 8+ Lambda表达式终极指南:从入门到精通
Lambda表达式是Java 8引入的一种简洁的匿名函数表示方法。它允许你将函数作为方法参数传递,或者将代码作为数据处理。专业解释:Lambda表达式是函数式接口的一个实例,它实现了函数式接口中唯一的抽象方法。通俗理解:就像快餐店的点餐单,你不用告诉厨师怎么做汉堡(实现细节),只需要说"我要一个芝士汉堡"(Lambda表达式),厨师就知道该怎么做。Stream是Java 8中处理集合的关键抽象概念,它可以让你以声明式的方式处理数据。Stream vs 集合特性集合Stream存储存储数据。
2025-05-02 10:00:00
644
原创 Java JVM原理与性能调优:从基础到高级应用
优先理解业务:不同应用类型(Web/计算/批处理)需要不同策略数据驱动决策:基于监控数据而非猜测进行调优循序渐进:每次只调整一个参数并观察效果权衡取舍:吞吐量 vs 延迟 vs 内存占用。
2025-05-02 10:00:00
1716
原创 Java反射机制终极指南:从基础到高级应用
专业定义:反射是Java语言的一种能力,它允许程序在运行时(Runtime)获取类的完整结构信息(包括类名、方法、属性、构造方法等),并能动态调用对象的方法和访问/修改属性值,即使这些方法和属性在编译时是私有的。通俗理解:想象你有一个密封的盒子(类),正常情况下你只能通过盒子上的按钮(公共方法)来操作它。而反射就像是一把万能钥匙,可以打开盒子查看里面的所有零件(私有属性和方法),甚至可以直接摆弄它们。优点缺点极高的灵活性性能开销大实现动态功能破坏封装性简化框架设计安全隐患访问不可见成员。
2025-05-01 10:00:00
620
原创 Java注解终极指南:从基础到高级应用
专业解释:注解(Annotation)是Java 5引入的一种元数据形式,它提供了一种向代码添加结构化元数据的方法,这些元数据可以被编译器、开发工具或运行时环境读取和处理。通俗理解:注解就像是代码的"便利贴",你可以在代码上贴这些"便利贴"来告诉编译器、框架或其他工具一些额外的信息,这些信息可以用来改变它们处理代码的方式。专业解释:开发者根据需求定义的注解类型,使用@interface关键字声明,可以包含成员变量和默认值。关键特点使用@interface关键字定义。
2025-05-01 10:00:00
840
原创 Java异常处理全面指南:从基础到高级实践
异常(Exception)是程序在执行过程中发生的意外事件,它会打断正常的指令流。在Java中,异常是一个对象,它封装了错误事件的信息。通俗理解:就像生活中的意外情况,比如你正开车去上班(正常流程),突然爆胎了(异常),你需要停下来处理这个意外情况。// 自定义异常类// 使用自定义异常"余额不足,缺少: " + (amount - balance),Java内置异常无法准确描述你的问题需要携带额外的错误信息希望对特定业务错误进行特殊处理需要统一异常处理逻辑。
2025-04-30 08:46:50
723
原创 Java多线程终极指南:从基础到高级应用
/ 自定义线程池2, // 核心线程数4, // 最大线程数60, // 空闲时间new ArrayBlockingQueue<>(2), // 任务队列容量2new ThreadPoolExecutor.CallerRunsPolicy() // 拒绝策略// 提交10个任务i <= 10;i++) {System.out.println("执行任务 " + taskId + ",线程: " + Thread.currentThread().getName());try {
2025-04-30 08:41:15
1141
原创 Java IO流与NIO终极指南:从基础到高级应用
IO(Input/Output)流是Java中用于处理输入输出的核心机制,它像水流一样将数据从源头(如文件、网络连接等)传输到目的地。Java IO流主要分为字节流和字符流两大类。通俗理解:想象IO流就像水管,数据就是水流。字节流是原始的水流(二进制数据),字符流则是经过处理的可直接饮用的水(文本数据)。Java IO和NIO提供了丰富的API来处理各种输入输出需求。传统IO简单易用,适合大多数常规场景;NIO则提供了更高的性能和灵活性,特别适合高并发和大数据量处理。
2025-04-30 08:39:22
681
原创 JavaScript性能优化实战:从基础到高级的全面指南
JavaScript性能优化是指通过各种技术手段减少代码执行时间、降低内存占用、提高响应速度的过程。减少页面加载时间提高代码执行效率降低内存消耗改善用户体验重排(Reflow): 当DOM的变化影响了元素的几何属性(如宽高、位置),浏览器需要重新计算元素的几何属性,并重新构建渲染树。重绘(Repaint): 当元素的外观属性(如颜色、背景)发生变化,但不影响布局时,浏览器只需重绘受影响的部分。
2025-04-29 16:24:11
926
原创 Java集合框架终极指南:从基础到高级应用
Java集合框架(Java Collections Framework)是Java语言中用于存储和操作数据集合的一组接口和类。它提供了一套标准化的工具来处理各种数据结构,如列表、集合、队列和映射等。List:有序可重复集合,关注索引和顺序ArrayList:随机访问快,插入删除慢LinkedList:插入删除快,随机访问慢Vector:线程安全但性能低Set:无序不重复集合,关注唯一性HashSet:快速查找,无序:保持插入顺序TreeSet:自动排序Map:键值对映射HashMap。
2025-04-29 12:00:00
1220
Java基础到高级知识、面向对象等关键技术学习资料
2025-05-09
Everything1.4.1.986.rar
2020-08-27
小恐龙公文助手1.0.8.3破解版.exe
2019-08-23
Redis.jar包
2018-08-08
Linux基础详解
2018-08-08
Tomcat7.0.65-window64位
2018-06-14
java web开发常用第三方控件以及jar包
2017-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人