- 博客(1145)
- 资源 (1)
- 问答 (13)
- 收藏
- 关注
原创 vim 编辑器的快捷键
文章目录缓存区切换/文件切换分割窗口/打开新窗口切换窗口移动/旋转/移出窗口关闭窗口调整窗口大小底行命令模式下的编辑快捷键vim 很多指令或者快捷键是大小写敏感。缓存区切换/文件切换快捷键说明Ctrl + o切换到前一个缓存区(缓存的通常是文件)Ctrl + i切换到后一个缓存区Shift + Ctrl + ^这不是 ex 指令,是组合快捷键。打开最近一次编辑的文件,效果与 e # 相同,切换到最近缓冲区的文件中这个组合键的行为好像可以通过 :set swi
2021-07-17 20:50:56
1126
3
原创 vim 常用命令
普通命令模式复制内容功能需求操作说明复制全部文本按下 ggyG 复制完成,注意:G 必须大写粘贴内容命令操作说明p通过箭头移动光标到需要粘贴的位置,按下 p 将内容粘贴到光标后面P按下 P 将内容粘贴到光标前面删除内容功能需求操作说明D删除游标所在位置的字符到行尾全选文本按下 ggvG 全选文本,但是最后一行仅选中第一个字符,按下 ggVG 才是真正的全选文本删除按下 dG 删除光标所在行以及下面的
2021-07-13 21:11:16
2056
原创 MacOS命令终端(CMD)的快捷键/终端快捷键
Ctrl + d删除一个字符,相当于通常的Delete键(命令行若无所有字符,则等效退出;处理多行标准输入时也表示eof)Ctrl + h退格删除一个字符,相当于通常的Backspace键Ctrl + u删除光标之前到行首的字符Ctrl + k删除光标之前到行尾的字符Ctrl + c取消当前行输入的命令,相当于Ctrl + BreakCtrl + a光标移动到行首(行前),相当于通常的Home键Ctrl + e光标移动到行尾(行尾)Ctrl + f光标向前(向前)移动一个字符位置Ctrl +
2020-07-24 10:03:27
8437
原创 Java冷知识:抽象类不能new,为什么还要写构造器?
很多人刚学Java时都会困惑:抽象类明明无法实例化,为什么非得有构造器?如果你不写,编译器会悄悄塞一个隐式的无参构造器。:只要搞继承,不管抽不抽象,构造器链(super())必须能走通。哪怕子类也是抽象的,构造器里第一行如果不写。,帮子类初始化从父类继承来的字段。⚠️ 重点来了:如果父类。,默认都会偷偷调用父类的。,抽象子类必须手动调用。,否则编译直接报错。
2026-04-16 09:03:31
23
原创 父类的私有成员会被子类继承吗
关于方法(存在于方法区):子类只继承父类的 非私有、非静态 的实例方法。父类的 私有方法 不被继承(静态绑定,子类不可见)。父类的 静态方法 不被继承(属于父类本身,子类只是拥有访问权限)。被重写的方法,其多态状态下的入口会被子类方法替换。关于变量(存在于堆内存的对象实例中):子类的对象实例在堆内存中,物理上包含了父类所有的实例变量(包括 private 私有变量,它们确实占用了子类对象的内存空间)。
2026-04-16 08:02:50
49
原创 Java 抽象类与接口核心知识点完全解析
/ 默认方法,用来升级接口// ...接口中声明定义的变量,默认且必须是,其实就是全局静态常量,所以必须在声明时初始化(即赋值)。接口中定义的常量,实现子类可以通过“接口名.常量名”直接访问。虽然Java语法允许通过“实现类对象.常量名”访问(编译器会自动改写为类名访问),但这种写法极度不推荐,容易引起概念混淆。常量本身不被子类继承,子类仅仅是拥有访问权限。接口中声明的抽象方法默认是的(可以省略不写),并且不可以是final,也不可以是static。
2026-04-15 15:27:43
314
原创 实现类和接口的关系
实现类与接口之间,严格来说是子类型关系(Java 类型系统层面),同时从设计意图上可以理解为 can-do 关系。两者结合才能完整描述:接口既定义了一组能力(can-do),又在类型系统中为其所有实现类建立了一个公共父类型(子类型关系)。在实际教学和沟通中,如果需要强调类型替换,说“子类型”;如果需要强调接口的设计作用,说“can-do”。首先是子类型关系,它实现了 can-do 的语义。
2026-04-15 15:00:15
204
原创 Java 继承与实现核心知识总结
一个具体的实现子类同时实现多个接口时,如果不同接口含有相同方法签名的抽象方法,具体的实现子类只要实现其中一个抽象方法即可(因为签名相同,一个实现同时满足所有接口)。一个类(不论是具体类还是抽象类)只能继承自一个类(不论是具体类还是抽象类),不可以同时继承自多个类,换句话说一个类的直接父类只能有一个,这叫。)一个接口,则可以实现部分的抽象方法,也可以都不实现(整个类体空的也可以);一个具体的实现子类的直接父类和接口含有相同方法签名的方法时,通过具体的实现子类对象调用此方法,优先使用直接父类的方法。
2026-04-15 14:53:08
243
原创 存储和查询树形结构数据的有效方法-闭包表
闭包表(Closure Table)是一种在关系型数据库中存储和查询树形结构数据的有效方法。它通过一个单独的表来记录树中所有节点之间的路径关系,特别适合处理层次结构数据,比如用户邀请关系、组织架构、分类目录等。
2025-10-24 10:07:46
630
原创 商品库存扣减方案
以MySQL等数据库为权威数据源,通过数据库事务保证库存扣减原子性,同步更新Redis缓存(最终一致性)。:逻辑逆向(先扣减再判断),可能出现短暂负库存(需立即回滚),不支持扣减前的复杂校验。:实现复杂(需处理锁超时、重入、误释放等问题),性能损耗较高(加锁/释放锁开销)。:需要结合复杂业务规则的库存扣减(如VIP用户优先扣减、关联订单状态的库存调整)。:需在客户端二次判断库存(乐观锁机制),不支持复杂逻辑,执行失败时需手动回滚。:封装完善,简化分布式锁、原子操作的开发(如自动续期、重入锁);
2025-09-13 16:35:24
1178
原创 JS函数setTimeout底层逻辑全网最清晰的解释
步骤执行者操作1. 注册你的代码调用setTimeout,传入回调和延迟时间。2. 计时Web API开始计时,不阻塞主线程。3. 入队Web API计时结束,将回调函数放入回调队列。4. 调度事件循环检查到调用栈为空,从队列中取出回调函数。5. 执行JavaScript引擎将回调函数推入调用栈,函数最终被执行。setTimeout中的无参箭头函数是由JavaScript引擎的事件循环机制,在适当的时机从回调队列中取出并推入调用栈调用的。
2025-08-27 09:04:21
737
转载 同时购买多件设置了不同运费模板的商品,该如何合理计算运费
运费对于电商APP来说至关重要,对比以上两个商城的运费计算逻辑,无疑淘宝的计算模式更合理,更贴切真实的运费情况。在用户购买多件商品时,不会造成运费过高导致用户的流失,但我想这可能也增加了技术童鞋的开发难度。
2025-08-15 13:54:19
548
原创 修改或禁用Cursor的全局搜索默认快捷键
中的相关规则,或者点击快捷键界面右上角的 Reset Keybindings。,类似于 VS Code 的。如果想恢复默认设置,只需删除。
2025-05-03 17:42:06
2622
原创 Maven java 项目引入2.0.16版本的slf4j-api后,提示jedis:5.1.0的子依赖slf4j-api:1.7.36与2.0.16冲突
参考这份pom.xml进行配置。
2025-04-13 09:54:14
527
原创 出现 java.lang.NoSuchMethodError: ‘void redis.clients.jedis.JedisPoolConfig.setMinEvictableIdleTime
我遇到这个问题是因为commons-pool2版本的问题,改成2.11.1就没有出现了。
2025-04-13 08:42:20
439
原创 【Git教程】从远程仓库拉取代码到本地的底层逻辑是什么?
通过这种设计,Git 既保证了代码同步的可靠性,又为开发者提供了灵活的工作流控制能力。理解这一机制后,你可以更从容地处理多人协作中的代码同步问题。
2025-03-29 15:43:50
1375
原创 项目经理/产品经理常用的方法论
NPS调研通过量化客户推荐意愿,帮助企业从“用户视角”评估产品价值,并驱动以客户为中心的持续改进。其核心价值不仅在于分数本身,更在于通过分析用户反馈,将数据转化为 actionable insights(可落地的优化策略)。
2025-02-27 20:34:35
2038
原创 自己搭建可以和deepseek对话的WEB应用
创建一个open-webui专属的python专属的虚拟环境,并且指定python具体的版本。更新完成后,你可以运行以下命令来验证 open-webui 是否已成功更新到期望的版本。打开anaconda客户端,打开conda命令行窗口。duckduckgo不需要API密钥,其它都需要。激活虚拟环境 open-webui。参考豆包的API配置信息来配置即可。启动程序 open-webui。安装程序open-webui。终止 open-webui。更新open-webui。
2025-02-14 19:05:17
703
原创 三步搞定本地部署deepseek-r1
Mac版本的ollama,你下载解压后是一个.app的文件,你需要双击运行然后在命令终端执行ollama -v,验证是否安装成功。
2025-02-05 17:07:12
416
原创 Maven java 项目,想执行verify阶段指令,通常需要配置哪些插件呢?
要执行verify阶段的指令,你通常需要配置一些插件来执行具体的验证任务。以下是一些常用的插件及其配置示例,这些插件可以在pom.xml。
2024-11-28 19:27:39
1082
1
原创 欢迎使用Markdown编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + S
2024-11-05 19:51:42
931
原创 什么是回归测试
回归测试(Regression testing) 指在发生修改之后重新执行先前的全部测试用例或部分测试用例,或者说重新测试之前已经测试通过的功能点,以确认修改没有引入新的错误或导致其他代码产生错误。回归测试可以使用自动化测试工具来提高测试效率和覆盖率,从而减少测试成本和测试时间。回归测试对于保证软件或系统的质量和稳定性非常重要,同时也是软件开发过程中不可或缺的一环。
2023-10-22 17:50:33
3538
原创 系统集成测试(SIT)/系统测试(ST)/用户验收测试(UAT)/冒烟测试
当用户完成测试并确认软件可以投入使用时,他们会签署 UAT sign off,表示他们满意软件的质量和功能,并同意将其交付使用。用户根据用例描述测试每一个场景,反馈系统问题。开发人员基于问题对系统影响和对业务影响进行判断,适当的修正系统或记录业务需求,根据业务优先等级,集成进下一个演进阶段。UAT sign off 意思是用户验收测试(UAT)通过并获得批准,即用户对软件系统的测试结果满意,并同意将其投入使用。2.从测试人员来看,SIT是由公司的测试工程师来测试,而UAT则是由关键用户(最终用户)来测试。
2023-10-22 16:27:07
15027
原创 MacBook Pro Apple M2 Max安装MySQL-8.0.33
其中的变量 log-error、pid-file、basedir、datadir的值可以从MySQL的配置界面中获得。点击页签“DOWLOADS“后将页面拖到底部,点MySQL Community Server。打开macbook pro 的系统偏好,在底部找到已经安装的数据库。接着点击页签configuration,找到错误日志文件的路径。会报错,提示 pid 文件找不到。
2023-06-29 22:30:37
3003
原创 项目管理心得
最近给老原后台留言或是加我微信的很多小友,都是项目小白,又或者是刚接触项目管理不久的PM,可能对项目管理还没有一个大概的认知,问题大多集中在:怎么避免项目延期问题?项目交付怎么才能达到高质量?都有哪些解决方案可以用?……所以今天老原就上述问题给大家分享2个部分:一是想要成功交付项目就会涉及到的项目管理10大领域;第二个是在保证项目交付的前提如何做到高质量。
2023-05-17 14:59:18
826
1
原创 14个步骤做最好的IT蓝图规划
所有的系统、所有的架构、所有的管控模式,以及实现的软件,以及软件的功能,以及这些功能如何在企业中落地都考虑好以后,然后CIO便可以制定行动计划。什么样的系统、什么样的功能在多长的周期里,在什么样的阶段里把它落实下去,这个就会形成一个清晰的行动计划出来。然后根据这样的计划,最后制定出IT预算。
2023-05-15 21:51:21
3289
原创 微信账户如何解除对第三方应用的授权
参考文章:https://baijiahao.baidu.com/s?id=1754354599985802723&wfr=spider&for=pc&searchword=%E5%B0%8F%E7%A8%8B%E5%BA%8F%E8%A7%A3%E7%BB%91
2023-03-25 13:34:07
741
原创 Hibernate根据实体类自动生成表的方法
就会去获取数据表的结构,如果获取不到则会生成建表语句,如果获取到了,则会逐个字段与映射文件进行比对,如果发现数据表字段缺少、字段名不同、数据类型不同等情况,则会生成相应的DDL语句对数据表的结构进行更新。如果数据表的字段比映射文件中的字段多,并不会把数据表中多出的字段删除掉。,会去解析 hibernate.cfg.xml 和 Ticket.hbm.xml,解析到属性 hibernate.hbm2ddl.auto 的值为。这种方法需要配置 hibernate.cfg.xml 的属性。
2022-11-26 21:46:35
3114
原创 产品经理必备的20个常用工具
用例设计工具(RationalRose或StartUML)客户端原端工具(GUI Design Studio)思维导图工具:Xmind、MindManager。数据处理与分析工具:Excel、Tableau。流程图绘制工具:Viso、ProcessOn。项目管理:JIRA、Teambition。产品演示工具:Demo-builder。报表演示工具(SwiffChart)汇报演讲:PPT、Keynote。原型设计工具:Axure、墨刀。问卷调研工具:问卷星、腾讯问卷。在线文档:石墨文档、腾讯文档。
2022-10-23 14:20:20
2408
原创 数据产品经理有哪些
首先希望大家能重新认识经理这份工作:大数据产品经理并不一定要数学能力强或者编程能力强,只要你有用数据思考的方式,有相信数据的信念,有数据决策业务的意识,你就是个合格的数据产品经理了。虽然目前数据产品经理在产品类岗位中已经很垂直了,但是思考方式和思维格局还是要比技能本身重要。按照工作职责,数据类产品经理大致分为:数据分析产品经理,数据挖掘产品经理,策略产品经理,数据工程产品经理。
2022-10-23 14:06:11
2633
原创 C端产品工作流程
第一步,对产品需求进行分类,使用 KANO 模型。第三步,根据产品目标确定需要优先实现哪些产品需求。第四步,需求评审确定可行性。第二步,分解产品目标。
2022-10-22 11:20:50
905
原创 被遗忘的软件产品形态
而我今年看到最可悲的是什么场景,就是把一些高频的,精细作业的场景,硬生生做成基于Web端的产品,最简单的例如协同编辑,不知道有哪几个人真的在Web上面协同了,还有某个产品明明是大量的excel表单处理,也硬生生要做成Web的。而在To C市场,几乎就没有客户端了,都是打开网扯就进入,例如各大电商,娱乐网站等,而且我们最熟悉的杀毒软件,也号称云化了,免安装。有网页版,你用了吗?我偶尔来一下,轻载的,简单录一下,审批一下的这种场景,我不常来,我不可能偶尔来一下还要安装个客户端吧,那我可能没安装完我就没耐心了。
2022-10-22 10:34:46
1233
原创 工作流与BPM的区别
4、技术不同:工作流引擎就是BPM的核心功能组件之一,只不过除了工作流引擎,BPM还会囊括动态表单、智能报表、接口和门户等等功能组件,当然这种技术层面的差异在前端用户的视觉层面是很难察觉出来的,所以国内大部分都是打着BPM的旗号干着卖工作流的活;这就好比铁路的铁轨,走不同的轨道可能会走向不同的目的地,甚至相同的目的地之间可以有不同的轨道。工作流是BPM的核心组件之一,其他组件还包括表单、视图、报表、接口、门户、组织用户等,单独的工作流不能构建BPM平台,但BPM一定能满足工作流的全部功能!
2022-09-03 20:38:19
2494
MacOS安装使用brew安装Python3.9失败,怎么解决?
2021-10-27
百度百科对共享锁的的理解不对吧?
2021-10-14
我给表手动加上排他锁后如何释放锁呢?
2021-10-16
MySQL的用户无法删除,为什么?
2021-10-05
mysql数据库,查询记录时,为什么无法执行 for update?
2021-10-14
MySQL的内置库 mysql 中存在一个表 test\_%,这个表是干什么的呢?
2021-10-06
SVN版本控制器更新文件数据,即解决冲突的原理是什么?
2021-07-29
MySQL如何回收用户的权限?
2021-10-05
SQL语句的执行顺序怎么理解,特别是ORDER BY子句怎么理解?
2021-10-08
linux套件是什么意思?
2021-02-13
SVN 版本控制系统的数据比对原理、逻辑、规则是什么?
2021-07-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅