加载中

Java

文章分类

浏览该分类下的所有文章

237 篇文章 20

AI对话机器人技术实现文档

实现基于 Web 的 AI 对话机器人,嵌入博客文章页面,提供文章上下文的智能问答。核心功能包括打字机逐字显示、生成过程暂停/继续、对话历史本地持久化、快捷预设问题及响应式布局。前端采用原生 HTML5、CSS3、JavaScript,配合 Marked.js 解析 Markdown、Highlight.js 代码高亮、Font Awesome 图标;后端通过 RESTful API 调用 AI 服务,数据存储使用 LocalStorage。系统划分为界面层、交互层、数据层和服务层,采用状态机管理 idle、thinking、generating、paused 等状态。针对打字机与 Markdown 同步、暂停状态持久化、多状态切换不一致等难点,分别实现增量渲染、保存暂停标记和统一状态变量等解决方案。

为博客每日一句添加音频播放功能

为博客底部的“每日一句”添加英文音频播放功能。通过有道词典每日一句API获取 voice URL,后端实现 `/api/daily-quote/voice` 代理接口解决 CORS,前端加入圆形播放按钮、CSS 动画和播放状态反馈,使用 HTML5 Audio 管理播放、暂停及结束事件,并处理 DOM 加载时机和移动端样式适配。实现后,点击按钮即可播放或暂停音频,播放中按钮呈粉色脉冲动画,兼容 PC 与移动端,提升访客的英语学习体验。

使用自定义图片作为Emoji表情的技术实现

本文介绍在 Web 项目中实现自定义图片 Emoji 的完整方案。通过在 static/img/emoji/ 目录统一存放 PNG 表情,并使用有意义的英文/拼音命名,定义路径前缀和文件名列表。核心 JavaScript 包括正则(\[:([a-zA-Z0-9_\-@]+):\])将 [:表情名:] 转为 <img>,动态生成表情面板 HTML,点击表情插入编辑器,并在提交前将 <img> 再转回代码保存。配套 CSS 设定内联表情与面板样式,HTML 提供按钮与面板结构,交互逻辑实现面板显隐及点击冒泡控制。文末提供懒加载、最近使用记录、分类展示等进阶优化,强调纯文本存储、可扩展性和跨平台兼容的优势。

博客侧边栏热门文章与最新文章功能实现详解

本文详细阐述在 Spring Boot + Thymeleaf 项目中实现博客侧边栏的热门文章和最新文章功能。通过只查询必要字段、使用 @Cacheable 缓存一次性获取数据,控制器利用 Java 8 Stream 按浏览量降序取前5篇作为热门、直接取前3篇作为最新。前端采用 Thymeleaf 渲染列表,CSS 使用 sticky 定位实现左侧固定,媒体查询在 PC 端显示、移动端隐藏,并为排名前三提供特殊颜色、截断超长标题等视觉效果。整体实现兼顾性能、响应式布局和用户体验。

博客文章分享卡片功能设计与实现

本文介绍在个人博客中实现分享卡片的完整方案。首先阐述功能需求:点击弹出包含标题、摘要、时间、作者和二维码的卡片,并支持保存为图片且自适应PC、移动端。随后给出技术实现细节:HTML Overlay结构、Canvas 绘制流程、手写文本自动换行函数、使用 qrcode.js 生成二维码并绘制到画布。接着说明 UI 设计要点,包括配色、字体、层次布局;以及获取文章信息、图片下载的代码实现。最后通过媒体查询实现响应式,采用2 倍缩放、异步二维码生成等优化手段,确保高清渲染和性能。全文展示了从需求分析、视觉设计到代码实现的全链路,解决了文本换行、二维码绘制和多端适配等关键难点,最终交付一个体验流畅的分享卡片功能。

视觉盛宴:手把手教你实现一个现代化的弹幕墙

本文手把手阐述弹幕墙的完整实现方案,采用玻璃拟态+多主题视觉设计,基于轨道管理的流畅滚动与防重叠算法,提供全屏切换、速度调节、暂停播放等交互,并通过 transform、will-change、对象池等手段实现响应式布局与性能优化,最终打造兼具美感、流畅性和适配性的现代弹幕墙。

Spring Boot博客系统集成AI智能摘要功能实战

本文示例了在 Spring Boot 博客系统中集成 AI 智能摘要的完整实现。通过在后端定义 AiSummaryService 接口并实现调用 OpenAI 兼容的 AI 接口(如智谱 AI、Moonshot、GPT‑4 等),在 controller 中提供 /api/ai-summary 接口,返回去除 HTML 的纯文本摘要。前端使用 Thymeleaf 页面与 JavaScript,调用该 API 后用打字机动画逐字展示摘要,并在 AI 服务不可用时回退到本地关键词或首段摘要。配置文件中可灵活设置 API 地址、模型、密钥、max‑tokens 等参数,实现前后端分离、可配置的 AI 摘要功能。

双层缓存+响应式设计:博客每日一句功能完美落地教程

本文详解在博客底部实现“每日一句”功能的完整方案。后端使用 Spring Boot 提供 `/api/daily-quote` 接口,通过 RestTemplate 调用有道词典 API,解析 JSON 并将当天结果缓存在 ConcurrentHashMap 中,提供异常降级备用句子。前端采用原生 HTML、CSS3 与 JavaScript,使用 localStorage 实现客户端日缓存,避免重复请求;通过 `white-space`、`text-overflow` 与 `.expanded` 类实现长句折叠展开;并基于媒体查询对桌面、平板、手机三类设备进行响应式适配。整体采用双层缓存(服务端+客户端)和响应式设计,实现高可用、低请求、良好用户体验的每日双语句子展示。

使用Java代码制作二维码(超级简单)

本文介绍使用 Java 生成二维码的流程,推荐开源 ZXing 并给出 Maven 依赖。四步完成:配置字符集、容错、边距等 EncodeHintType;使用 QRCodeWriter 编码为 BitMatrix;用 MatrixToImageWriter 输出 PNG;可通过 Graphics2D 添加 Logo、定制颜色。提供 QRCodeService 封装及 Spring Boot 控制器实时返回图片示例,并列出乱码、识别率、性能等注意事项和典型应用场景。掌握后即可快速生成、定制并部署二维码。

Math.abs()竟然返回了负数?

Math.abs() 在普通整数上返回非负值,但对 `Integer.MIN_VALUE` 会返回同样的负数。原因是 int 采用补码表示,最小值 `-2³¹` 的相反数 `2³¹` 超出 int 最大范围,产生溢出并循环回原值。Java 规范已将此列为特例,非 bug。使用时需检查该边界,或改用 long、BigInteger、Math.addExact 等安全方法,避免溢出风险。

打牌记账-使用手册

打牌记账是一款免注册、跨平台的实时多人记账工具,支持创建最多8人房间并可加密。用户通过浏览器或二维码进入房间,输入昵称即可记账,系统自动计算盈亏并提供一键结算、历史记录等功能。支持麻将、斗地主等棋牌场景,房主可设置4‑6位密码,密码采用 BCrypt 加密存储。提供房间邀请、昵称修改、记录查询等操作,并解答常见问题,确保数据实时同步、永久保存。

打牌记账-技术文档

本项目为多人打牌记账小程序,解决传统纸笔记账易错、不同步、查询不便的问题。目标是实现实时同步、最多8人协作、数据持久化、跨平台访问及简洁易用。技术选型采用 Spring Boot、MyBatis‑Plus、MySQL、WebSocket、Thymeleaf、Fastjson2、BCrypt 与 Maven,前端使用原生 HTML5/CSS3/JS。系统分为客户端、应用服务层(REST + WebSocket)和数据存储层,采用 UUID 生成 8 位房间码、乐观锁控制房间人数、事务确保用户加入、房主自动判定等核心业务实现,确保记账操作实时推送、可靠持久并支持历史查询。