自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

努力小王的博客

おうしん 一定要去外面的世界看看

  • 博客(170)
  • 收藏
  • 关注

原创 从 Java 到 Kotlin:全面理解现代 JVM 语言生态

本文系统介绍了JVM(Java虚拟机)的核心概念及现代JVM语言生态。主要内容包括:1. JVM本质上是Java程序的运行环境,负责将字节码转换为机器码;2. Java通过"一次编译,到处运行"的跨平台特性,依赖不同平台的JVM实现;3. 现代JVM采用JIT编译等技术实现高性能;4. JVM生态已发展出多种语言(Java/Kotlin/Scala等),各具特色;5. Kotlin因其简洁语法、空安全等特性在Android开发中占据主导;6. JVM核心组成包括类加载器、运行时数据区、执

2026-07-29 20:22:33 322

原创 Kotlin Multiplatform day07

新手建议使用JetBrains官方KMP网页向导创建项目,避免Android Studio的配置问题。Windows用户勾选Desktop和Android平台,跳过iOS。下载生成的项目后解压,通过run-desktop.bat运行桌面程序,点击按钮可显示跨平台效果(如"Hello, Java21!")。后续可修改共享代码体验多端同步更新,或配置Android模拟器运行移动端。该方法简化了初始配置,快速验证KMP跨平台能力。(149字)

2026-07-08 21:48:17 281

原创 Kotlin Multiplatform day05

本文介绍了Kotlin中的几个核心概念:1. Lambda表达式:允许将代码块作为值存储和传递,如val square = {x: Int -> x*x};2. 高阶函数:支持将函数作为参数传递,如fun calc(a:Int, b:Int, op:(Int,Int)->Int);3. 集合链式操作:演示了filter、sortedBy、map等方法的组合使用,如筛选及格学生并按分数排序;4. 接口:通过interface定义契约,不同类实现相同接口提供不同实现。这些特性使Kotlin代码更灵活

2026-07-08 21:14:52 271

原创 Kotlin Multiplatform day06

本文介绍了Kotlin协程(Coroutines)的基本用法。协程用于处理耗时操作(如网络请求、文件读写等),避免阻塞主线程。主要内容包括:1)顺序执行与并发执行的对比;2)使用async/await实现并发任务并获取结果;3)用launch启动不需要返回值后台协程;4)演示协程的非阻塞特性。通过示例展示了协程如何提高程序效率,所有耗时操作总时间从串行的2000毫秒优化为并发的1000毫秒。关键点包括suspend函数声明、runBlocking协程构建器,以及delay的非阻塞特性。

2026-07-08 21:14:20 252

原创 Kotlin Multiplatform day04

本文介绍了Kotlin中面向对象编程的三个核心概念: 类与对象:类作为模板定义属性和方法,对象是类的实例。Kotlin创建对象无需new关键字,构造函数参数可自动转为属性(val只读/var可变)。 数据类:通过data class简化纯数据类的实现,自动生成toString()、equals()和copy()等方法,特别适合存储用户、商品等数据结构。 继承体系:使用open关键字允许类/方法被继承和重写,子类通过:ParentClass()语法继承父类,override重写父类方法,实现共性复用与个性扩展

2026-07-08 21:11:29 262

原创 Kotlin Multiplatform day03

本文介绍了Kotlin中的集合和空安全特性。主要内容包括: List集合操作:使用listOf创建只读列表,mutableListOf创建可变列表,支持增删改查,下标从0开始 函数式操作:filter筛选元素、map转换元素,支持链式调用 Map键值对:使用mapOf创建,通过键访问值 空安全特性:通过?声明可空类型,使用?.安全调用、?:提供默认值等方式避免空指针异常 示例展示了集合的各种操作和空安全处理方式,强调了Kotlin在防止空指针异常方面的优势 文章还包含一个练习题:从年龄列表中筛选出成年人并统

2026-07-07 17:32:56 276

原创 Kotlin Multiplatform day2

Kotlin编程基础:条件判断、循环与函数 本课讲解了Kotlin的三大核心语法结构: 条件判断:if/else支持返回值特性,when语句优雅处理多分支(支持范围判断和多重条件) 循环结构:for循环支持..、until、downTo等区间操作符,while需注意终止条件 函数定义:使用fun关键字,支持返回值类型声明、默认参数和具名参数调用 特别亮点:Kotlin的if表达式可直接赋值,when语句比传统switch更强大,函数参数设计灵活。课程通过成绩判断、日期转换等实例演示语法应用,最后建议练习实现

2026-07-07 16:42:27 269

原创 Kotlin Multiplatform day1

这篇文章介绍了Kotlin编程语言的基础知识,包括: 程序结构:fun main()是程序入口,println()和print()用于输出内容 变量声明:val用于不可变变量,var用于可变变量 字符串模板:使用$符号嵌入变量或表达式 基本数据类型:Int、Double、Boolean、Char、String 类型推断:Kotlin可以自动推断变量类型 文章还包含一个练习题:如果将val name改为var name并修改其值,程序可以正常运行;而val声明的变量不能被修改。这是Kotlin的一个重要特性,

2026-07-07 16:40:58 265

原创 Git + Gerrit 第九课:cherry-pick 挑选提交

摘要 Git的cherry-pick命令用于将特定提交复制到当前分支,适合将bug修复同步到release分支而不合并整个分支。与merge不同,cherry-pick会生成新的commit ID且只复制指定提交。使用时需注意:1)执行前确认目标分支;2)可能产生冲突需手动解决后用--continue;3)Gerrit中跨分支cherry-pick会创建新Change。关键命令包括cherry-pick、--continue/--abort和冲突解决流程。该功能特别适用于多版本维护时选择性同步修复提交的场景

2026-06-05 15:30:49 401

原创 WPF 面试题 + 参考答案,偏 C# 桌面端开发高频。

WPF是微软推出的.NET桌面UI框架,基于XAML和C#开发,支持数据绑定、MVVM架构和丰富界面效果,相比WinForms更适合复杂界面开发。核心概念包括:XAML声明式UI、数据绑定机制、MVVM模式、依赖属性、资源系统和布局容器。关键优化手段涉及异步处理、虚拟化技术和性能调优。典型应用场景是桌面管理系统开发,通过分离界面与逻辑、使用INotifyPropertyChanged和ObservableCollection实现数据同步,采用Command处理业务操作。面试重点考察XAML、Binding、

2026-05-31 23:07:34 476

原创 C# 桌面端开发工程师面试题 + 参考答案

本文整理了一套C#桌面端开发工程师面试题及参考答案,内容涵盖以下核心知识点: C#基础 值类型与引用类型的区别(存储方式、赋值行为、默认值等) 装箱拆箱机制及性能影响 class与struct的关键差异 参数传递方式(ref/out/in) 委托与事件的关系及应用场景 泛型的优势(类型安全、性能提升等) 桌面开发技术 WinForms与WPF的核心区别(架构、数据绑定等) UI线程限制与跨线程访问解决方案 WPF核心机制:数据绑定、MVVM模式、INotifyPropertyChanged 依赖属性和Com

2026-05-31 14:15:22 311

原创 Git + Gerrit 第八课:reset 与 revert 撤销提交

本文摘要:本节重点讲解Git撤销操作的三种场景(工作区、暂存区、已提交),着重分析已提交内容的撤销方法。核心对比了reset(--soft保留暂存、--mixed保留工作区、--hard彻底丢弃)和revert(新增反向提交)的区别与应用场景:reset会重写历史,适合本地未推送的提交;revert保留历史,适合已共享的提交。特别强调reset --hard的高风险性,并介绍了Gerrit工作流中的撤销策略。通过实战演示不同撤销命令的效果,最后总结关键原则:本地整理用reset,团队协作用revert。

2026-05-31 10:51:03 376

原创 Git + Gerrit 第七课:stash 临时保存工作区修改

Git stash 实用指南摘要 本文全面介绍 Git stash 命令的使用场景和操作方法。stash 用于临时保存未完成的代码修改,主要适用于需要切换分支但工作区不干净的情况。关键知识点包括: 基本用法:git stash push/pop/apply 实现暂存和恢复 重要参数:-u 保存未跟踪文件,-m 添加说明信息 常用命令: git stash list 查看暂存列表 git stash show 查看修改内容 git stash drop 删除指定暂存 使用场景: 紧急修复时保存当前工作进度 G

2026-05-30 15:56:09 229

原创 Git + Gerrit 第六课:commit --amend、Patch Set 与 Change-Id

本文介绍了Gerrit工作流中git commit --amend的核心用法。主要内容包括: amend的作用是修改最近一次提交,而非创建新提交,适合用于Gerrit评审修改 Gerrit中的关键概念:Change(评审单)、PatchSet(修改版本)、Change-Id(唯一标识) 正确的Gerrit工作流程:首次提交后,通过amend修改并保留Change-Id来更新同一Change 常用命令:git commit --amend --no-edit、git push origin HEAD:refs

2026-05-30 15:22:02 423

原创 Git + Gerrit 第五课:rebase 变基与提交历史整理

文章摘要 本文系统介绍了Git中rebase命令的核心概念与使用方法。主要内容包括:1) rebase的本质是将本地提交移动到目标分支最新位置,形成线性历史;2) 与merge的区别在于rebase不会产生合并提交且会重写提交历史;3) Gerrit工作流推荐使用rebase保持提交清晰;4) 详细说明rebase冲突解决流程(--continue/--abort)及注意事项;5) 强调仅对本地分支使用rebase,公共分支禁止随意rebase。文章通过图示对比、命令示例和实战练习,帮助读者掌握这个Git核

2026-05-28 17:32:14 510

原创 Git + Gerrit 第四课:合并冲突解决

本文详细介绍了Git冲突的概念、原因及解决方法。主要内容包括:1. 冲突本质是两个分支修改同一文件的同一位置,Git无法自动合并;2. 冲突文件中的标记含义(<<<<<<<表示当前分支,>>>>>>>表示被合并分支);3. 标准解决流程:git status查看冲突→手动修改文件→git add标记解决→git commit完成合并;4. 在Gerrit工作流中处理冲突的方法;5. 常见错误及避免方法。文章强调冲突解决的核心

2026-05-28 16:54:52 573

原创 Git + Gerrit 第三课:分支、切换与合并

本文摘要: Git分支是独立开发线,允许在不影响主分支的情况下进行功能开发。核心操作包括:使用gitswitch -c创建功能分支,gitswitch切换分支,git merge合并分支。开发流程应为:从稳定主分支创建功能分支,独立开发后通过评审合并回主分支。关键命令还包括git log --oneline --graph --all查看分支关系,git branch -d删除已合并分支。Gerrit工作流中需注意本地分支与目标评审分支的区别。良好实践包括:分支命名规范(如feature/xxx)、切换前检

2026-05-28 12:37:31 694

原创 Git + Gerrit 第二课:diff、暂存区与撤销修改

本文摘要(149字): 本文系统讲解了Git代码提交前的关键检查流程。重点介绍了git status查看文件状态、git diff检查未暂存修改、git diff --cached查看已暂存内容等核心命令。详细说明了git add/restore的正确使用方法,区分了撤销工作区修改(--staged)和取消暂存的区别。通过实战演示了提交前的标准检查流程,强调养成先看状态、再看差异、确认无误后再提交的工程习惯。最后总结了6个必须掌握的命令及其应用场景,帮助开发者避免提交调试代码、不相关修改等常见错误。

2026-05-28 09:40:12 522

原创 一个开发工程师每天怎么用 Git + Gerrit 协作开发代码。

本文介绍了开发工程师必须掌握的Git和Gerrit基础知识。主要内容包括:Git的四个核心区域(工作区、暂存区、本地仓库、远程仓库)及其操作命令;Git分支管理策略;Gerrit代码评审系统的核心概念(Change、PatchSet、CodeReview等)和标准工作流程;新手常见错误及解决方案;以及从入门到进阶的Git学习路线。文章强调Git是现代软件开发的基础工具,能有效解决代码版本管理问题,而Gerrit则确保了代码质量审查流程。通过掌握这些技能,开发者可以顺利进入团队协作开发的基本工作流。

2026-05-27 20:46:14 695

原创 C#学习 Day2

本文介绍了C#中的委托、Action/Func、事件、LINQ和泛型等核心概念及其应用。委托作为方法类型,支持解耦和算法扩展;事件基于委托实现发布订阅模型,确保封装安全。LINQ提供强大的数据查询能力,包括筛选、排序、分组等操作,并支持延迟执行。泛型通过类型参数化提高代码复用性和类型安全性。最后通过订单管理项目实战,演示如何将这些技术组合应用,包括订单CRUD操作、分组统计和事件触发等功能。文章还总结了常见面试问题,如委托与事件区别、LINQ性能优化和泛型优势等。

2026-05-26 10:27:20 538

原创 AI时代:如何利用陌生领域和新技术实现功能,同时保证质量并真正提升自己能力

AI时代提升能力的关键不是让AI替你写代码,而是用AI加速理解系统、验证质量并持续重构自己解决问题的方式。

2026-05-22 17:40:02 372

原创 C# 学习 Day1

这篇文章提供了C#面试速成指南,主要内容包括: 语法速通:讲解基础类型、OOP核心概念、集合等高频考点 编程练习:包含数组极值查找、字符统计、多态实现3个必做题 实战项目:学生管理系统开发,要求实现CRUD功能并使用List存储数据 面试10问:整理了值类型/引用类型、var、多态等常见问题的标准回答 完整代码示例:给出了学生管理系统的实现,包含Student类、服务层和主程序 特别强调要掌握OOP四大特性,注意面试常问的var/dynamic区别、异常处理规范等细节,项目实现要体现分层思想和基础异常处理。

2026-05-22 16:02:15 364

原创 联想2026春季校园招聘 & 2027届实习生计划正式启动

联想2026春季校园招聘及2027届实习生计划正式启动!提供产品、研发、市场等六大岗位方向,覆盖11个城市。福利包括弹性办公、超长假期、六险一金等。面向2025-2027届毕业生,网申时间为3月13日至5月15日。招聘流程包括网申、测评、面试等环节,建议通过内推通道(内推码lihy55)提高通过率。每位申请人限投1个岗位,提交后不可修改。

2026-03-20 09:40:27 151

原创 Leetcode27 移除元素

文章摘要:题目要求从数组中原地移除所有等于给定值的元素,返回剩余元素数量。使用双指针法:一个指针遍历数组,另一个指向待填充位置,将不等于目标值的元素前移。最终前k个元素即为有效结果,数组长度可能改变但只需保证前k位正确。另一种方法是使用while循环配合pop()操作,但需注意索引控制。两种解法的时间复杂度均为O(n),空间复杂度O(1)。关键点在于理解题目仅要求前k位有效,不关心后续元素。

2025-08-26 17:28:16 420

原创 leetcode 移除元素

摘要:本文介绍了一个原地移除数组中指定元素值的算法问题。要求修改原数组,将所有不等于目标值的元素移动到数组前部,并返回这些元素的数量k。解题思路是遍历数组,当遇到目标值时移除该元素,否则继续遍历。最终数组前k个元素为保留值(顺序不限),剩余部分不影响结果。示例展示了输入输出格式,Python解法通过逐个检查并移除目标值元素来实现。时间复杂度为O(n),空间复杂度O(1)。

2025-08-11 18:04:49 428

原创 水一篇(啥内容也没有)

2025-08-08 17:03:29 168

原创 在翻译语义相似度和会议摘要相似度评估任务中 ,分类任务 回归任务 生成任务区别

将样本划分到有限个离散类别中的任务。输出一个连续的实数,用于表示程度或评分。模型直接生成文本作为输出。任务常用形式推荐任务类型翻译语义相似度预测翻译是否语义一致分类 / 回归会议摘要相似度比较摘要与原文的忠实度、相关性回归 或 分类 或 生成如做质量维度评估(如 Coherence、Consistency、Fluency、Relevance),建议采用回归任务来对每个维度进行打分(如 1~5 分),也可以使用分类任务对每个维度进行高/中/低判断。如果生成摘要或自动改写翻译,就是生成任务。

2025-07-21 14:45:18 626

原创 测试开发的流程

摘要:测试开发流程涵盖需求分析、测试设计、环境搭建、自动化实现、执行跟踪、结果分析和持续优化等环节。核心工作包括:1)通过需求评审明确测试范围;2)设计功能/性能/安全测试用例;3)搭建CI/CD测试环境;4)开发自动化测试脚本并集成报告工具;5)执行测试并跟踪缺陷;6)输出质量评估报告;7)持续回归测试和维护用例。流程中采用TestRail、Selenium、JMeter、Jenkins等工具链,最终形成测试闭环,确保软件质量并持续优化测试效率。(149字)

2025-07-01 16:38:04 1166

原创 学习人工智能开发的详细指南

自主开发项目:根据兴趣或实际需求,选择一个小型的AI项目,如图像识别、文本分类、推荐系统等,从数据收集、模型训练到部署上线,全程参与并实践。卷积神经网络(CNN):学习CNN的架构、卷积层、池化层、全连接层等组件,以及它们在图像识别、分类等任务中的应用。参加在线课程和培训,如Coursera、edX、Udemy等平台上的AI相关课程,不断更新和完善自己的知识体系。数据结构与算法:理解数组、链表、栈、队列、树、图等数据结构,掌握排序、搜索、动态规划等算法。

2025-05-06 17:30:22 940

原创 参加新手训练五十题平台 TUST-ACM实验室

新手训练五十题平台:https://vjudge.net/group/tust-mtb。会提醒大家注册登录 大家登录自己刚刚注册的账号就好了。进入后,请点击JOIN NOW 、可以复制下面的C++代码提交试试看。提交成功之后会显示你的提交状态。再次点击 Join now、点击登录就好啦,您将会进入。点击Submit提交您的代码。语言选择你喜欢删除的编程语言。大家继续完成下面的题目就好了。点击去之后会是下面这个界面。您就会看见新手五十题。这样这个题目就完成了。

2025-04-21 13:14:08 342

原创 Virtual Judge注册教程 TUST-ACM实验室

Virtual Judge注册教程 TUST-ACM

2025-04-17 12:59:54 1609

原创 您的第一个 Selenium 脚本

【代码】您的第一个 Selenium 脚本。

2025-02-19 22:15:46 198

原创 Python自动化测试

Python自动化测试是软件开发中的重要组成部分,可以帮助提高测试效率和准确性。

2025-02-19 21:29:46 486

原创 python和pycharm 和Anaconda的关系

Python是编程语言,提供代码的执行和运行环境。PyCharm是 Python 的集成开发环境,帮助你编写、调试和管理 Python 代码。Anaconda提供了强大的环境和包管理功能,适合需要多个依赖和库的项目,尤其是数据科学领域。

2025-02-18 17:34:15 2298

原创 自动化测试的学习路线

自动化测试是提高软件开发效率和质量的关键手段。学习自动化测试通常涉及多个方面的技能,从基础的编程语言知识到测试工具的使用,再到实际的测试脚本编写和执行。

2025-01-26 11:02:24 1147

原创 人工智能学习路线

这条学习路线能够帮助你从基础知识开始,逐步过渡到高级技能,最后进行实际的项目和研究,掌握人工智能的核心技术,并能够运用到实际问题中。

2025-01-24 11:18:50 1155

原创 后端学习路线

后端开发的学习路径是一个渐进的过程,首先掌握基础的编程语言和数据库技能,然后逐步学习Web框架、API设计、安全性等。掌握这些技能后,你可以进行更高级的学习,深入了解微服务架构、容器化、性能优化等。同时,通过不断实践项目来巩固你的技能。

2025-01-24 10:41:40 2705 1

原创 前端开发学习路线

学习和使用新的前端技术,不断提升自己的技能。关注前端技术趋势,学习新兴的技术栈(如WebAssembly,GraphQL等)。加强算法和数据结构的学习,提高解决复杂问题的能力。这份路线图涉及了前端开发的多个方面,适合从零开始的学习者,也适合已经有一定基础的开发者进一步提升。如果按照这个路线一步步学习,可以逐渐成为一名高效且专业的前端开发者。

2025-01-24 10:30:40 2981

原创 2025年,当前比较火的几个互联网学习路线

互联网开发的基础是编程,学习一门语言是进入技术领域的第一步。Python是一门非常适合初学者的编程语言,拥有简洁的语法和强大的库支持,广泛应用于数据科学、人工智能、自动化脚本、网站开发等领域。pandasmatplotlibrequestsJavaScript是互联网开发不可或缺的语言,主要用于网页的交互和前端开发。前端开发主要负责网页和应用的视觉呈现及用户交互。

2025-01-24 10:26:34 2462

原创 数据分析学习路线

通过这样的路线学习,你可以循序渐进地掌握数据分析的技能,并在实践中不断积累经验。数据分析是一个广阔的领域,随着经验的增加,你可以根据兴趣进一步深入机器学习、深度学习等方向。数据分析涉及大量的数学知识,尤其是统计学。虽然你不需要成为数学专家,但一些基本的数学概念对你理解数据分析非常重要。Python是数据分析中最常用的编程语言,因此掌握Python的基本语法非常重要。数据可视化能够帮助你理解数据背后的故事,并向他人清晰地呈现分析结果。在数据分析中,Python有一系列强大的工具库。:删除重复的行,使用。

2025-01-24 10:21:19 3212

空空如也

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

TA关注的人

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