自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 资源 (3)
  • 收藏
  • 关注

原创 java的一些注解作用整理

注解按功能可分为基础 Java、Spring 核心、Web、数据校验、事务、持久层、Lombok等类别,不同类别服务于后端开发的不同场景;(Web)、@Service@Autowired(IoC)、(事务)、@Valid@NotBlank(参数校验)、@Mapper(MyBatis);使用注解的注意事项:①仅对 public 方法生效,且需配置事务管理器;② 参数校验需配合@Valid@Validated触发;③ Lombok 注解需 IDE 插件支持,避免编译报错。

2026-01-06 08:54:22 63

原创 Kaggle平台上的经典项目

## 项目简介预测泰坦尼克号乘客的生存率,这是Kaggle最著名的入门项目。```python# 泰坦尼克号生存预测完整实现# 1. 数据加载和探索print("训练集形状:", train_df.shape)print("测试集形状:", test_df.shape)print("\n训练集列名:", train_df.columns.tolist())print("\n训练集信息:")print("\n缺失值统计:")

2026-01-03 08:44:03 88

原创 scikit-learn中三个经典算法的实现示例

``python# 生成示例数据X = 2 * np.random.rand(100, 1) # 100个样本,1个特征y = 4 + 3 * X + np.random.randn(100, 1) # y = 4 + 3x + 噪声# 划分训练集和测试集# 创建并训练模型# 预测# 评估模型print(f"线性回归结果:")print(f"系数 (斜率): {lin_reg.coef_[0][0]:.4f}")

2026-01-03 08:33:36 865

原创 使用Git自带的SSH协议搭建git服务器

bashbashbashbashbash复制显示的公钥内容(以 `ssh-rsa` 开头)bash方法A:通过ssh-copy-id(推荐)```bash# 在客户端执行ssh-copy-id git@your-server-ip# 输入git用户的密码```方法B:手动添加```bash# 在客户端将公钥复制到服务器ssh git@your-server-ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub# 输

2025-12-29 19:41:00 1033

原创 Hilt 注入完整指南:从集成到核心场景实践

Hilt 是 Google 基于 Dagger 封装的 Android 专属依赖注入(DI)框架,简化了传统 Dagger 的模板代码,适配 Android 组件生命周期,是目前 Android 官方推荐的 DI 方案。实际开发中,建议先从基础的 Repository/ViewModel 注入入手,再逐步扩展到第三方库、自定义作用域等进阶场景。的依赖(如两个 Retrofit 实例:一个用于用户接口,一个用于支付接口),需用。标记模块内的方法,提供无法通过构造函数注入的依赖(如第三方库)

2025-12-28 10:00:42 612

原创 Jetpack Compose 实践入门:从环境搭建到待办列表实现

希望通过本文的实践的,能帮助大家快速上手 Compose,感受现代化 UI 开发的便捷。Compose 采用「基于 Modifier 的布局系统」,通过 Column(垂直布局)、Row(水平布局)、Box(层叠布局)等基础布局容器,结合 Modifier 的属性(如 padding、margin、size、weight 等),实现复杂的 UI 布局。而 Compose 采用声明式 UI,开发者只需描述「状态对应的 UI 样子」,当状态发生变化时,Compose 会自动重新执行可组合函数,更新 UI。

2025-12-26 17:51:34 717

原创 Spring Boot深度解析:从理论内核到实战落地

Spring Boot的成功在于其深刻的设计哲学和精妙的工程实现:### 核心思想回顾:1. **约定优于配置**:通过智能默认值减少决策成本2. **起步即奔跑**:快速构建生产就绪的应用3. **生产就绪**:内置健康检查、指标、监控等4. **无代码生成**:运行时通过条件化配置实现智能决策### 最佳实践总结:1. **配置管理**:- 使用Profile分离环境配置- 外部化敏感信息- 版本化配置文件2. **性能优化**:- 合理使用懒加载。

2025-12-10 09:37:33 112 1

原创 Spring Security 安全框架的实践

## 1. 添加依赖```xml-- 可选:OAuth2支持 -->-- JWT支持 -->```

2025-12-10 09:33:56 72

原创 Java微服务开发:理论与实践深度解析

1. **渐进式演进**:从单体逐步拆分,避免一步到位2. **契约先行**:定义清晰的API契约,保持向后兼容3. **自治团队**:每个服务由独立团队全权负责4. **自动化一切**:CI/CD、测试、部署、监控全自动化5. **防御性编程**:假设依赖会失败,设计要有弹性6. **可观测性**:指标、日志、追踪三位一体7. **安全左移**:安全考虑融入设计阶段Java微服务开发是一个系统工程,需要平衡技术深度与业务需求。

2025-12-10 09:25:21 63

原创 Android项目中MVVM架构实践

Model:数据层,负责数据获取、存储和处理View:UI层,负责展示数据和接收用户输入ViewModel:连接Model和View的桥梁,负责处理业务逻辑。

2025-12-06 10:32:58 1029

原创 Android源码的模块说明

├── art/ # Android运行时。├── cts/ # 兼容性测试套件。├── kernel/ # Linux内核。├── sdk/ # 软件开发工具包。│ ├── adb/ # Android调试桥。├── make/ # Makefile系统。

2025-11-29 11:33:16 783

原创 解析工厂模式:解耦与复用的设计智慧

最后,便于实现对象创建的复杂逻辑。“手机工厂”“电脑工厂”“平板工厂”作为具体工厂类,分别实现了抽象工厂的方法,专门负责创建“手机”“电脑”“平板”对象。但其缺点也较为明显:工厂类承担了所有产品的创建逻辑,一旦产品类型大幅增加,工厂类会变得臃肿复杂,违背“单一职责原则”,同时新增产品时需要修改工厂类的判断逻辑,违背“开闭原则”。它对工厂类进行了抽象,引入“抽象工厂类”和“具体工厂类”的层级结构:抽象工厂类定义创建产品的接口,每个具体产品对应一个专属的具体工厂类,由具体工厂类负责实例化对应的具体产品。

2025-10-30 09:07:22 747

原创 Android Studio 代码注释模板设置指南

File → Settings → Editor → Live Templates,点击 + 新建模板组(如 CustomTemplates),再在组内新建模板。methodParameters().collect { it + " " + it.type.name() }.join(", ")(自动获取参数名 + 类型)${DESCRIPTION}:类描述(需手动输入),${USER}:系统用户名,${DATE}/${TIME}:创建时间(自动填充)。Template Text 注释模板(见下方示例)

2025-10-27 23:47:26 628

原创 单例模式:设计模式中的“独一无二“之道

单例模式是一把"双刃剑":用得好,可简化代码、节省资源、保证数据一致性;用得不好,则可能导致线程安全问题、测试困难、代码耦合度高等问题。使用单例模式的核心原则是:**只对真正需要"唯一实例"的类使用单例**。例如,资源管理器、全局配置等场景适合单例;而业务对象(如用户、订单)则应避免设计为单例。在实现方式的选择上,需根据场景权衡:- 简单场景可选饿汉式或静态内部类;- 高并发场景优先考虑双重检查锁;- 安全性要求极高的场景推荐枚举单例。

2025-10-27 20:14:26 663

原创 OpenCV 4.1.2 SDK 静态库作用与功能详解

每个静态库都有明确的功能定位:core 和 imgproc 构建基础能力,imgcodecs 和 videoio 负责数据 IO,features2d 和 calib3d 支撑特征与三维视觉,ml 和 objdetect 提供智能分析能力,而其他辅助库则扩展了特殊场景的应用。核心基础库是 OpenCV 所有功能的支撑,提供数据结构、内存管理、数学计算等底层能力,是其他模块依赖的核心。此类库提供图像特征点的检测、描述与匹配能力,是目标识别、图像拼接、立体视觉等高级功能的核心。

2025-10-27 20:07:46 818

原创 RxJava在Android开发中的实战指南

例如,在传统的异步编程中,我们可能需要使用回调函数来处理网络请求的结果,而在 RxJava 中,我们可以将网络请求封装成一个 Observable 对象,通过订阅这个对象来获取请求结果,并且可以在这个过程中对数据进行各种处理。这种基于事件驱动的编程模型,使得代码的逻辑更加清晰,也更易于维护和扩展。操作符则更加灵活,它可以将被观察者发送的每一个事件转换为一个新的 Observable,然后将这些新的 Observable 发射的数据合并后放进一个单独的 Observable 中发射出去,实现一对多的转换。

2025-10-26 22:09:47 338

原创 MVVM架构:从原理到实践的全维度解析

与MVC中的View不同,MVVM中的View是“被动的”——它不包含任何业务逻辑,也不直接操作Model,仅负责两件事:一是通过数据绑定机制关联ViewModel中的数据,将数据状态实时展示给用户;Model是应用的“数据层”,负责管理应用的核心数据资源和业务逻辑,是整个架构的基础。例如在一个电商APP中,Model会封装“获取商品列表”“提交订单”等接口调用逻辑,以及“计算商品折扣后价格”的业务规则,当ViewModel需要数据时,直接调用Model的方法即可,无需关心数据的具体来源和处理细节。

2025-10-26 05:55:29 946

原创 SharedPreferences的使用方法

SharedPreferences 本身不能直接修改数据,需通过 edit() 方法获取 Editor 编辑器,调用 putXxx() 方法存储数据,最后用 apply() 或 commit() 提交。String username = sp.getString("username", "未知用户");// 默认值 "未知用户"String token = encryptedSp.getString("token", "");editor.putString("username", "张三");

2025-10-23 23:58:39 847

原创 C++智能指针使用指南:告别内存泄漏的利器

为解决这一痛点,C++11标准正式引入智能指针(Smart Pointer),其核心机制是“RAII(资源获取即初始化)”——将内存资源与智能指针对象的生命周期绑定,当智能指针对象销毁时,自动释放所管理的内存。反之,智能指针释放内存后,原始指针也会变为野指针。开发中应尽量避免原始指针与智能指针混用,若必须使用原始指针(如调用C风格接口),需确保原始指针仅作为“临时访问工具”,不参与内存释放。在深入具体智能指针的使用前,需先明确智能指针的底层逻辑——RAII机制是其实现内存自动管理的核心。

2025-10-22 09:56:38 63

原创 android在sd卡中可以mkdir, 但是不可以createNewFile

优先适配分区存储,使用公共目录或应用私有目录创建文件。确保权限申请完整(静态 + 动态)。严格遵循 “先创建目录,再创建文件” 的流程,且路径需通过系统 API 获取。

2025-10-21 21:30:49 670

原创 Android访问OTG文件全解析:从连接到操作的完整指南Android系统访问U盘的实现机制与操作指南

本文详细解析了Android设备通过OTG技术访问U盘文件的实现方法。从硬件要求看,设备需支持OTG功能并使用适配转接线;系统层面需Android 3.1以上版本。操作上提供两种方案:系统文件管理器可实现基础文件传输,第三方应用支持批量处理等进阶功能。开发者可通过USBManager和StorageManager API实现深度集成。常见问题包括设备不识别(检查连接/供电)、文件无法读取(确认格式兼容性)和传输中断(避免直接拔插)等。建议选择正规配件、安全移除设备并合理格式化U盘,以保障稳定访问。随着And

2025-10-21 08:10:49 2495

原创 Android UI适配问题:从原理到实践的全面解析

不同于iOS相对统一的设备生态,Android阵营涵盖了从入门级到旗舰级的海量设备,屏幕尺寸从3.5英寸的功能机到100英寸的智能电视,分辨率从480×800到2K、4K甚至8K,屏幕密度更是从ldpi到xxxhdpi形成完整梯度。屏幕密度指单位面积内的像素数量,单位为DPI(dots per inch),Android系统将屏幕密度划分为ldpi(120)、mdpi(160)、hdpi(240)、xhdpi(320)、xxhdpi(480)、xxxhdpi(640)等多个等级。

2025-10-20 08:12:34 660

原创 SVG图片转化为Android Asset Vector矢量图的完整指南

因此,转化的核心是“将SVG的图形信息适配为Android支持的Vector Drawable语法”,确保转化后图形不失真且能在各Android版本正常显示。打开Android Studio → 进入“File” → “Settings”(Windows)/“Preferences”(Mac) → 选择“Plugins” → 在搜索框输入“SVG2VectorDrawable” → 点击“Install” → 重启IDE完成安装。点击“Path”右侧的文件夹图标,选择本地要转化的SVG文件。

2025-10-19 09:56:34 829

原创 Android 约束布局(ConstraintLayout)的权重机制:用法与对比解析

ConstraintLayout通过"链权重"机制实现类似LinearLayout的权重分配功能。核心步骤:1)创建双向约束链;2)设置链模式为weighted;3)给子控件设置layout_constraintHorizontal_weight/vertical_weight属性。关键差异:ConstraintLayout权重需基于链结构,支持多方向权重共存,且必须将控件宽/高设为0dp。相比LinearLayout,它避免了嵌套,更适合复杂布局,但实现稍复杂。典型应用场景是需要在同一

2025-10-18 17:11:19 1150

原创 Android 中 Padding 与 Margin 的深度解析:从概念到实战区分

Android布局中Padding与Margin的核心区别(摘要) Padding和Margin是控制控件间距的两个关键属性,但作用对象和效果截然不同:1)Padding是内边距,控制控件内容与边缘的距离,会扩大控件实际大小;2)Margin是外边距,控制控件与其他元素的距离,不影响控件自身。典型区别:Padding影响控件背景范围,Margin产生外部空白区域。使用场景:优化内部排版用Padding(如文字间距),调整外部布局用Margin(如控件间距)。常见误区包括混淆二者作用范围、叠加父容器Paddi

2025-10-17 19:04:45 1138

原创 Android 中 gravity 与 layout_gravity 的深度解析:从概念到实践

本文详细解析Android布局中gravity与layout_gravity的核心区别: 作用对象:gravity控制子元素在控件内部的排列("内部对齐"),layout_gravity控制控件自身在父容器中的位置("外部对齐") 取值限制:layout_gravity受父容器类型影响(如LinearLayout水平/垂直布局时部分方向失效) 典型场景: 文字/子控件居中用gravity 控件在父容器靠右/底部用layout_gravity 避坑指南: 文字对齐必须用

2025-10-16 21:52:45 911

原创 Android 中 RecyclerView 与 ListView 的深度对比:从设计到实践

Android开发中,RecyclerView和ListView是两种核心列表组件。ListView作为早期控件,采用固定模板设计,简单易用但功能有限;RecyclerView通过模块化解耦,将布局、装饰、动画等功能分离为可替换组件,提供更灵活的扩展能力。性能方面,RecyclerView采用强制ViewHolder模式、三级缓存和预加载机制,显著优化了列表滑动体验。功能扩展上,RecyclerView原生支持滑动操作、自定义动画等高级特性。建议新项目优先选择RecyclerView,仅在对低版本兼容性要求

2025-10-15 20:32:43 1072

原创 在windows 10下使用dosbox和nasm搭建汇编编程环境

本文简要介绍DOS汇编环境搭建方法:1.从官网下载安装DOSBox模拟器;2.下载指定版本NASM汇编器(推荐2.03.01版);3.初始化DOS环境,包括挂载DOS目录和切换驱动器。若遇到下载问题,可联系获取安装包。全文提供了具体的下载链接和基本操作指令,适合初学者快速搭建汇编开发环境。

2025-10-10 09:19:20 302

原创 定时器更新界面,线程报错

在javafx框架下使用线程更新UI的时候,出现无法正常更新UI。

2024-06-09 09:21:52 523

原创 加载视频文件出现错误

加载视频文件出现错误

2024-06-08 14:50:20 549

原创 =与==的优先级

在做消息队列的时候,发现发送者发送除了字符,但是接收者始终无法接收到,而且通过日志观察message id始终是0.

2024-06-07 09:20:55 441

原创 进程通信和线程使用

本文从进程和线程两个方面给出了进程通信集中方式的初步实现和线程的定义和使用。

2024-06-07 09:09:40 283

原创 事件驱动和动画

本文从交互逻辑和动画两个方面讲述了javafx环境下的逻辑交互层的实现和动画的集中绘制方法。

2024-06-06 10:31:39 404

原创 概率分析和随机算法

本文以雇佣问题,生日悖论和球与箱子问题入手,着重讲述如何使用概率方法分析随机算法。

2024-06-06 10:08:36 615

原创 父子进程之间无法修改共享变量count

父子进程之间无法修改共享变量count

2024-06-05 09:45:05 466

原创 进程同步的基本元素

本文从进程同步的一些基本元素:临界资源,临界区,信号量和管程机制,并且结合代码和伪码。来阐述一些概念。

2024-06-05 09:25:12 333

原创 加载图片异常

JavaFX在加载图片的时候,出现异常。

2024-06-04 09:37:16 463

原创 JavaFX的使用-UI

本文就Java布局基础知识,24点游戏、数学基本图形的绘制和表盘的设计几个方面,简单介绍了一下javafx的使用方法。

2024-06-04 09:31:55 431

原创 前驱图,程序执行和进程状态

本文从进程的执行,进程的定义和进程的状态三个方面通过程序来阐述了一些概念。

2024-06-03 09:40:30 435

原创 如何在vs code中安装JavaFX

vscode中添加javafx的方法

2024-06-03 08:57:26 1539

操作系统基础知识课程PPT

讲解详细的操作系统知识,让你更加深入的去学习了解操作系统基础知识

2011-04-22

C程序设计-谭浩强课后代码

C程序设计-谭浩强课后代码

2024-05-09

严蔚敏主编的数据结构参考答案

严蔚敏主编的数据结构参考答案,让你可以有所参考,更便于学习

2011-04-22

编译原理的习题答案详解

大学编译原理的习题答案,让你在熟悉课本的同时可以参考答案进行练习

2011-04-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除