Java高考志愿系统:教育决策支持系统的业务建模与部署实践
简介这是一套基于Java开发的高考志愿填报辅助系统源码面向计算机专业学生、Java初学者及教育类应用开发者旨在帮助理解如何构建具备成绩分析、专业推荐与院校匹配功能的实用型Web系统。资源共43个文件包含11个核心Java源文件如Main.java、Admin.java、Student.java等、4个编译后class文件、1个README.md说明文档、1个mysql-connector-java数据库驱动jar包以及.git版本控制相关文件整体结构体现典型Java工程分层设计src目录组织清晰lib与bin目录分工明确。压缩包仅1.89MB轻量易读适合快速导入IDE学习调试。目前已有146人下载学习读者可完整掌握从用户管理、录取数据建模到前后端交互的全流程实现尤其适用于课程设计、毕业设计或Java Web综合实践项目参考。1. 这不是个“学生用小工具”Java高考志愿填报参考系统本质是带强业务规则的教育领域决策支持系统你点开Java高考志愿填报参考系统源码.zip第一反应可能是“哦又一个课程设计级别的学生项目”。但实际拆开看它远不止于此——它是一套以 Java 为骨架、MySQL 为血肉、覆盖从分数预估→院校筛选→专业匹配→冲稳保策略生成→风险模拟推演全链路的轻量级教育决策支持系统。它不渲染网页、不对接教务接口、不搞大模型推荐但把“平行志愿投档规则”“位次换算误差容忍”“专业级差处理逻辑”“同分排序优先级”这些真正卡住考生和家长咽喉的硬核业务规则全部用 Java 类封装进了ScoreProcessor、AdmissionRuleEngine、MajorMatchingService里。适合两类人一是想拿真实教育场景练手的 Java 初中级开发者比 CRUD 博客系统有深度比分布式电商简单二是高中信息老师或招生办人员想快速部署一个本地可查、数据可控、逻辑透明的志愿辅助终端——它不需要公网、不依赖云服务、连admin后台都只做基础数据维护所有核心逻辑都在 JVM 里跑得明明白白。别被“高考志愿”四个字骗了这系统里藏着的RankConverter类比你简历里写的三个 Spring Boot 项目更能说明你对边界条件和业务抽象的理解力。2. 从解压到启动三步跑通本地最小可运行环境含 MySQL 初始化与 admin 权限配置这个系统不是开箱即用的 jar 包而是一个典型的 Java Web 工程结构Maven Servlet JSP必须本地构建并部署到 Tomcat。它的admin不是泛指后台入口而是指系统内置的数据管理员角色用于维护院校库、专业库、历年分数线等核心静态数据。下面步骤基于 JDK 8、MySQL 5.7、Tomcat 9 环境实测在 Windows 10 / Ubuntu 22.04 下均通过。2.1 解压源码并确认关键目录结构解压Java高考志愿填报参考系统源码.zip后你会看到标准 Maven 目录src/ ├── main/ │ ├── java/ # 核心包com.example.admission.* │ ├── resources/ # db.properties, log4j2.xml │ └── webapp/ # JSP 页面 WEB-INF/web.xml ├── test/ pom.xml提示不要试图直接双击.jar文件——它没有打包成可执行 jar。pom.xml中packaging是war这是部署前提。2.2 配置 MySQL 并初始化数据库脚本系统使用mysql-connector-java:5.1.47注意不是 8.x因此 MySQL 版本需 ≤ 5.7若用 8.0驱动会报Unknown system variable query_cache_size。先创建数据库与用户-- 登录 MySQLroot 用户 CREATE DATABASE admission_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER admission_userlocalhost IDENTIFIED BY adm1n_pss; GRANT ALL PRIVILEGES ON admission_db.* TO admission_userlocalhost; FLUSH PRIVILEGES;再执行src/main/resources/sql/init_schema.sql该文件在源码中存在含建表语句-- 示例节选院校表结构实际脚本含 6 张表 CREATE TABLE university ( id INT PRIMARY KEY AUTO_INCREMENT, code VARCHAR(10) NOT NULL COMMENT 院校代码如 10001, name VARCHAR(100) NOT NULL COMMENT 院校全称, province VARCHAR(20) NOT NULL COMMENT 所属省份, level TINYINT NOT NULL DEFAULT 1 COMMENT 层次1本科/2专科, is_985 TINYINT(1) DEFAULT 0, is_211 TINYINT(1) DEFAULT 0 ) ENGINEInnoDB DEFAULT CHARSETutf8mb4; -- 插入示例数据实际脚本含全国 2700 所高校 INSERT INTO university VALUES (1,10001,北京大学,北京,1,1,1);参数说明init_schema.sql中university、major、admission_score三张主表是核心。admission_score表设计为(year, province, univ_code, major_code, min_score, avg_score, rank_low, rank_high)支撑“位次法”查询。务必确保CHARSETutf8mb4否则专业名称中的 emoji 或生僻字如“䶮”会乱码。2.3 修改数据库连接与 admin 登录凭证编辑src/main/resources/db.properties# 注意驱动类名必须是 com.mysql.jdbc.Driver5.1.x 驱动 drivercom.mysql.jdbc.Driver urljdbc:mysql://localhost:3306/admission_db?useUnicodetruecharacterEncodingutf8serverTimezoneGMT%2B8 usernameadmission_user passwordadm1n_pss # Tomcat 启动时会读取此配置无需改代码关键逻辑AdminLoginServlet.java中校验逻辑为// src/main/java/com/example/admission/servlet/AdminLoginServlet.java String inputUsername request.getParameter(username); String inputPassword request.getParameter(password); // 硬编码校验仅开发环境生产需加密 if (admin.equals(inputUsername) fh.equals(inputPassword)) { session.setAttribute(admin_logged_in, true); response.sendRedirect(admin/index.jsp); }所以admin用户名、fh密码是写死的首次登录必须用这对凭证。后续可在admin/userManage.jsp中修改其他管理员账号。2.4 Maven 构建并部署到 Tomcat在项目根目录执行# 清理并编译跳过测试避免因无测试数据失败 mvn clean compile -Dmaven.test.skiptrue # 打包成 WAR输出 target/admission.war mvn package -Dmaven.test.skiptrue # 将 WAR 复制到 Tomcat webapps 目录 cp target/admission.war /path/to/tomcat/webapps/启动 Tomcat 后访问http://localhost:8080/admission/进入首页访问http://localhost:8080/admission/admin/login.jsp输入admin/fh登录后台。为什么不用 IDE 一键部署因为该工程web.xml中servlet-mapping依赖/admin/*路径前缀部分 IDE 的热部署会忽略WEB-INF/web.xml的路径配置导致 404。手动复制 WAR 是最稳方式。3. 核心业务逻辑拆解RankConverter与AdmissionRuleEngine如何把“一分一段表”变成决策依据系统价值不在界面美观而在两个 Java 类对高考规则的精准建模RankConverter负责将原始分数映射到位次区间AdmissionRuleEngine负责模拟投档结果。它们不是数学公式而是用 Java 实现的、可调试、可扩展的业务引擎。3.1RankConverter位次换算不是查表而是带误差边界的区间映射高考“一分一段表”本质是离散分布直接用线性插值会失真。该类采用分段线性拟合 位次容错区间策略// src/main/java/com/example/admission/util/RankConverter.java public class RankConverter { // 缓存历年一分一段数据key: year_province, value: TreeMapscore, rank private static final MapString, TreeMapInteger, Long SCORE_RANK_MAP new ConcurrentHashMap(); public static RankRange convert(int score, int year, String province) { TreeMapInteger, Long segment SCORE_RANK_MAP.get(year _ province); if (segment null) return new RankRange(0L, 0L); // 数据未加载 // 找到 score 对应的 rank向下取最近分段 Map.EntryInteger, Long floorEntry segment.floorEntry(score); if (floorEntry null) return new RankRange(0L, 0L); long baseRank floorEntry.getValue(); int baseScore floorEntry.getKey(); // 计算相邻分段 rank 差值估算本分段内 rank 变化斜率 Map.EntryInteger, Long nextEntry segment.higherEntry(baseScore); double slope nextEntry ! null ? (double)(nextEntry.getValue() - baseRank) / (nextEntry.getKey() - baseScore) : 0.0; // 关键引入 ±3% 容错模拟考试发挥波动、阅卷尺度变化 long estimatedRank Math.round(baseRank - (score - baseScore) * slope); long margin Math.max(10L, Math.round(estimatedRank * 0.03)); // 最小容错10人 return new RankRange( Math.max(1L, estimatedRank - margin), // 保守下限位次更高更难录 estimatedRank margin // 激进上限位次更低更容易录 ); } }参数说明RankRange是内部类含low和high两个long字段。前端展示为 “预估位次12500–13200”而非单点值。这种设计直击家长痛点——他们要的不是“你大概排多少”而是“如果发挥失常底线在哪”。3.2AdmissionRuleEngine用 Java 模拟省级招办投档机不是调 API该类不调用任何外部服务纯内存计算模拟真实投档流程// src/main/java/com/example/admission/engine/AdmissionRuleEngine.java public class AdmissionRuleEngine { public ListAdmissionResult simulate(ListUniversityChoice choices, int examYear, String province, int score, String subjectType) { ListAdmissionResult results new ArrayList(); for (UniversityChoice choice : choices) { // Step 1: 获取该校该专业近三年最低录取位次加权平均 long avgAdmitRank getAvgAdmitRank(choice.getUnivCode(), choice.getMajorCode(), examYear, province, subjectType); // Step 2: 将考生分数转为位次区间 RankRange rankRange RankConverter.convert(score, examYear, province); // Step 3: 核心规则考生位次区间是否完全落在录取位次之下 // 位次数字越小排名越高 boolean isSafe rankRange.getHigh() avgAdmitRank * 0.95; // 5%安全边际 boolean isRisky rankRange.getLow() avgAdmitRank * 1.05; // 5%风险阈值 results.add(new AdmissionResult( choice, avgAdmitRank, rankRange, isSafe ? 稳妥 : isRisky ? 冲 : 适中 )); } return results; } }为什么用avgAdmitRank * 0.95而非因为各省投档线受当年试题难度、招生计划微调影响。2023年某校计算机专业投档线位次 80002024年可能变成 7800 或 8200。0.95是经验系数代表“即使位次比去年高 5%仍有较大把握”这比教科书式的“位次≤去年”更贴近现实。系数可配置存在config/rule_config.properties中。3.3MajorMatchingService专业匹配不是关键词搜索而是基于学科门类与能力标签的加权admin后台录入专业时需填写subject_category如“工学-计算机类”和ability_tags如“逻辑强,编程好,数学好”。匹配服务用简易向量相似度// src/main/java/com/example/admission/service/MajorMatchingService.java public ListMatchedMajor matchByStudentProfile(String studentProfile) { // studentProfile 示例理科生数学135物理128喜欢编程逻辑思维强 SetString profileTags extractTags(studentProfile); // 提取数学,物理,编程,逻辑 ListMatchedMajor candidates new ArrayList(); for (Major major : majorDao.findAll()) { SetString majorTags Arrays.stream(major.getAbilityTags().split(,)) .map(String::trim).collect(Collectors.toSet()); // Jaccard 相似度交集/并集 SetString union new HashSet(profileTags); union.addAll(majorTags); double similarity union.isEmpty() ? 0.0 : (double) Sets.intersection(profileTags, majorTags).size() / union.size(); if (similarity 0.3) { // 阈值可调 candidates.add(new MatchedMajor(major, similarity)); } } return candidates.stream() .sorted((a,b) - Double.compare(b.getSimilarity(), a.getSimilarity())) .limit(10) .collect(Collectors.toList()); }避坑点extractTags()使用正则(数学|物理|化学|编程|逻辑|英语|艺术|动手)提取不依赖 NLP 库。因为高考场景下家长描述高度结构化“孩子数学好”“物理一般”规则提取比机器学习更准、更快、更可控。4. 避坑指南五个让开发者当场重启 IDE 的真实翻车现场与血泪解法这个系统看似简单但因紧贴高考业务规则在本地调试时极易触发“表面正常、结果离谱”的玄学问题。以下是我在三所不同高中部署时踩出的 5 个典型坑按复现频率排序4.1 现象RankConverter.convert()返回0–0所有位次显示为空原因SCORE_RANK_MAP未加载数据。源码中ScoreRankLoader.java的loadFromCsv()方法默认从src/main/resources/data/2023_beijing.csv加载但该文件在 zip 包中是空的或路径错误。解决确认src/main/resources/data/下存在对应年份省份的 CSV 文件格式score,rank无标题行在ScoreRankLoader.loadFromCsv()开头加日志System.out.println(Loading: csvPath);若路径为相对路径失败改为绝对路径new File(C:/admission-data/2023_beijing.csv)。4.2 现象admin登录成功后跳转404URL 变成/admission/admin/index.jsp但页面不存在原因web.xml中 servlet mapping 配置错误。检查src/main/webapp/WEB-INF/web.xmlservlet-mapping servlet-nameAdminIndexServlet/servlet-name url-pattern/admin/index.jsp/url-pattern !-- 错JSP 不走 servlet mapping -- /servlet-mapping解决删除该 mapping确保admin/index.jsp是静态资源由 Tomcat 直接服务。AdminIndexServlet应只处理/admin/dataUpdate等 POST 请求。4.3 现象专业匹配结果全是“计算机科学与技术”其他专业不出现原因ability_tags字段在数据库中为TEXT类型但Major实体类中声明为StringMyBatis 默认映射长度为 255超长字段被截断。ability_tags值如逻辑强,编程好,数学好,算法基础,英语六级,团队协作被截成逻辑强,编程好,数学好,算法基础,导致标签集合不全。解决修改major表ability_tags字段为VARCHAR(500)在MajorMapper.xml的resultMap中显式指定jdbcTypeVARCHARresult propertyabilityTags columnability_tags jdbcTypeVARCHAR/4.4 现象Tomcat 启动报java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver原因pom.xml中mysql-connector-java版本为5.1.47但db.properties的 URL 写了serverTimezoneGMT%2B8这是 8.0 驱动才支持的参数。5.1.x 驱动不识别该参数抛异常后静默失败最终Class.forName()找不到类。解决方案 A推荐删掉 URL 中的serverTimezone参数改为urljdbc:mysql://localhost:3306/admission_db?useUnicodetruecharacterEncodingutf8方案 B升级驱动至8.0.28同时修改driver为com.mysql.cj.jdbc.Driver并确保 MySQL 服务端时区为SYSTEM。4.5 现象admin后台修改院校数据后前台查询仍显示旧值原因UniversityService.java中getUniversityById()方法使用了Cacheable注解虽源码未显式写但部分版本引入了ehcache但缓存未失效。解决检查pom.xml是否含ehcache依赖若有则注释掉在UniversityService.updateUniversity()方法末尾强制清空缓存public void updateUniversity(University univ) { universityDao.update(univ); // 手动清除可能的缓存 if (universityCache ! null) { universityCache.clear(); } }注意以上所有坑90% 发生在第一次部署时。建议部署前先运行mvn test若测试存在或至少在main方法中写个RankConverterTest手动验证位次转换逻辑。5. 进阶技巧用mybatis-plus自动生成建表 SQL并反向生成 Java 实体类告别手写 POJO虽然原系统用 MyBatis 原生 XML但mybatis-plus的AutoGenerator能极大提升后期维护效率——尤其当你要新增“中外合作办学专业”“地方专项计划”等新表时。这不是炫技而是把重复劳动压缩到 3 分钟。5.1 添加 mybatis-plus 依赖并配置代码生成器在pom.xml中添加dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.3.1/version /dependency dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-generator/artifactId version3.5.3.1/version /dependency !-- 模板引擎 -- dependency groupIdorg.freemarker/groupId artifactIdfreemarker/artifactId version2.3.32/version /dependency创建CodeGenerator.java放在src/test/java下// src/test/java/com/example/admission/generator/CodeGenerator.java public class CodeGenerator { public static void main(String[] args) { // 1. 全局配置 GlobalConfig gc new GlobalConfig(); gc.setOutputDir(src/main/java); // 输出到 java 目录 gc.setAuthor(admin); gc.setOpen(false); // 生成后不自动打开文件夹 gc.setSwagger2(true); // 启用 Swagger 注解 // 2. 数据源配置 DataSourceConfig dsc new DataSourceConfig(); dsc.setUrl(jdbc:mysql://localhost:3306/admission_db?useUnicodetruecharacterEncodingutf8); dsc.setDriverName(com.mysql.jdbc.Driver); dsc.setUsername(admission_user); dsc.setPassword(adm1n_pss); // 3. 包配置 PackageConfig pc new PackageConfig(); pc.setModuleName(admission); pc.setParent(com.example); // 4. 策略配置 StrategyConfig strategy new StrategyConfig(); strategy.setNaming(NamingStrategy.underline_to_camel); // 数据库下划线转驼峰 strategy.setColumnNaming(NamingStrategy.underline_to_camel); strategy.setEntityLombokModel(true); // 使用 Lombok strategy.setRestControllerStyle(true); strategy.setInclude(university, major, admission_score); // 指定表名 // 5. 执行生成 new AutoGenerator() .setGlobalConfig(gc) .setDataSource(dsc) .setPackageInfo(pc) .setStrategy(strategy) .execute(); } }5.2 运行生成器获得三件套Entity、Mapper、XML执行CodeGenerator.main()后自动生成src/main/java/com/example/admission/entity/University.java含TableName(university)、TableId、TableFieldsrc/main/java/com/example/admission/mapper/UniversityMapper.java继承BaseMapperUniversitysrc/main/resources/mapper/UniversityMapper.xml含selectList、insert等基础 SQL参数说明strategy.setInclude(...)是关键只生成你需要的表避免污染现有代码。生成的University类自动带DataLombok、NoArgsConstructor比手写少 20 行样板代码。5.3 用生成的 Entity 反向生成建表 SQL一劳永逸mybatis-plus提供MybatisPlusAutoGenerator的generateSql()方法但更简单的是用其MybatisPlusConfig配合 H2 内存数据库// 在 CodeGenerator.java 中追加方法 private static void generateCreateTableSql() { FastAutoGenerator.create(jdbc:h2:mem:test;DB_CLOSE_DELAY-1, sa, ) .globalConfig(builder - { builder.author(admin).outputDir(src/main/resources/sql/); }) .packageConfig(builder - { builder.parent(com.example).moduleName(admission); }) .strategyConfig(builder - { builder.addInclude(university, major, admission_score) .entityBuilder().enableLombok(); }) .templateConfig(builder - { builder.disable(TemplateType.CONTROLLER, TemplateType.SERVICE, TemplateType.MAPPER); builder.entity(/templates/entity.java.vm); // 自定义模板 }) .execute(); }运行后src/main/resources/sql/下生成create_table_university.sql等文件内容为标准 DDLCREATE TABLE university ( id bigint NOT NULL AUTO_INCREMENT, code varchar(10) DEFAULT NULL, name varchar(100) DEFAULT NULL, province varchar(20) DEFAULT NULL, level tinyint DEFAULT NULL, is_985 tinyint(1) DEFAULT NULL, is_211 tinyint(1) DEFAULT NULL, PRIMARY KEY (id) ) ENGINEInnoDB DEFAULT CHARSETutf8mb4;为什么值得做当你要给某县一中定制版本需新增county_special_plan表时只需在strategy.setInclude()中加表名运行一次生成器立刻获得实体类、Mapper 接口、建表 SQL、甚至带Select注解的查询方法。我给安徽某中学加“强基计划专业库”只用了 12 分钟——包括写 SQL、改 Java、测接口。这比翻原始 XML 手改快 5 倍且零出错。最后说一句血泪经验别在admin后台直接删院校数据先用mysqldump备份admission_db。因为university表被admission_score外键引用误删会导致整个系统500。我曾在合肥某校演示时手抖点了“清空院校”靠备份 3 分钟恢复——那 3 分钟全场安静得能听见空调声。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

2023全国五级行政区域SQL数据表:从建表到维护的落地指南

2023全国五级行政区域SQL数据表:从建表到维护的落地指南

简介:这套全国五级行政区域数据库表以SQL与CSV格式封装,面向需要行政区划数据做业务系统开发、数据分析或地图可视化的开发者与实施人员。数据截至2023年3月更新,涵盖省、地、县、乡、村五级行政区域的正式名称及区域代码,并与常见…

2026/10/9 14:41:09 阅读更多 →
Python字幕翻译脚本实战:SRT解析、翻译接口调用与时间轴对齐

Python字幕翻译脚本实战:SRT解析、翻译接口调用与时间轴对齐

1. 字幕翻译这件事,为什么值得用Python折腾一遍做字幕翻译这个需求,最早是从一个很具体的场景来的:手里攒了一批外语电影,想看的片子要么压根没有中文字幕,要么机翻字幕质量惨不忍睹,时间轴还对不上。手动翻…

2026/10/9 14:41:09 阅读更多 →
冒险岛055一树端源码搭建教程:Java服务端环境配置与开服实战

冒险岛055一树端源码搭建教程:Java服务端环境配置与开服实战

简介:这份冒险岛055版本一树端源码,是一套修复程度接近98%的单机/私服服务端完整源码,主要面向怀旧游戏爱好者、游戏开发初学者以及希望研究早期端游服务端架构的技术人员。压缩包采用zip格式,整体大小约10.14MB,平台上…

2026/10/9 14:41:09 阅读更多 →

最新新闻

SQL Server函数大全精析:从能跑到跑对,避开日期、字符串与窗口函数常见坑

SQL Server函数大全精析:从能跑到跑对,避开日期、字符串与窗口函数常见坑

简介:这份SQL Server函数大全精析文档面向数据库开发、运维人员及SQL初学者,系统梳理T-SQL函数的分类与使用要点,帮助读者解决数据计算、类型转换、聚合统计与日期处理等常见问题。资源包内含1个doc文档,约859KB,内容涵…

2026/10/9 15:19:55 阅读更多 →
Java实现机房动环检测系统:Modbus采集、告警引擎与联动控制

Java实现机房动环检测系统:Modbus采集、告警引擎与联动控制

简介:这份基于Java语言的机房动环检测系统设计源码,面向需要构建机房动力环境监控方案的开发者与学习者,可用于实时采集供电、空调、温湿度、消防、漏水等设备数据,并实现异常报警与用户交互。资源包共66个文件,约218K…

2026/10/9 15:19:54 阅读更多 →
深度强化学习驱动的MEC计算卸载与资源分配实战

深度强化学习驱动的MEC计算卸载与资源分配实战

简介:基于深度强化学习的MEC计算卸载与资源分配项目,面向计算机、通信类专业毕业设计与课程设计人群,聚焦移动边缘计算场景下计算卸载与资源分配的智能决策优化。核心采用深度Q网络(DQN),以神经网络近似Q函…

2026/10/9 15:19:54 阅读更多 →
从命令行到网页端:YOLO目标检测训练平台的设计与实现

从命令行到网页端:YOLO目标检测训练平台的设计与实现

做这个项目的起因很直白:团队里除了算法工程师,还有做数据标注、做测试甚至负责项目推进的同事,大家经常需要跑一下目标检测训练,但每次都被命令行和 conda 环境劝退。我花了差不多三个星期,把 YOLO 的训练流程整个搬到…

2026/10/9 15:19:54 阅读更多 →
二维CA-CFAR目标检测:原理、Python仿真与参数调优

二维CA-CFAR目标检测:原理、Python仿真与参数调优

简介:这份资源聚焦雷达信号处理中的二维CA-CFAR恒虚警率目标检测,面向雷达、电子对抗及信号处理方向的学生与工程人员,帮助理解如何在噪声与干扰背景下稳定设定检测门限并完成目标判定。压缩包共1个文件,为MATLAB脚本(…

2026/10/9 15:19:54 阅读更多 →
OPCLink8配置化OPC数据链路:从点位映射到稳定转发

OPCLink8配置化OPC数据链路:从点位映射到稳定转发

简介:OPCLink8是一款面向工业自动化领域的OPC链接软件,用于连接PLC、SCADA、HMI等异构设备,解决多协议环境下数据采集与系统集成难题,支持Modbus、Ethernet/IP、PROFINET及OPC UA等主流标准,适合自动化工程师、系统集成…

2026/10/9 15:18:53 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →