自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 35岁不是危机,是决策点:帮你做职业选择的三个模型

35岁不是终点,是决策点。三个模型是工具的起点,不是终点。它们帮你从“焦虑感”里抽离出来,变成一个个可以落地的选择题。用乘数效应模型算清楚时间账和健康账,用三环理论找到你的“甜蜜区”,用职业生命周期模型提前布局“能力复利”。把35岁从“危机”变成“转折点”。种一棵树最好的时间是十年前,其次是现在。35岁,一切才刚刚开始。如果你觉得这篇文章对你有帮助,点个在看,转发给正在焦虑的朋友。

2026-05-02 16:31:53 496

原创 18大“小龙虾”AI智能体框架大横评:从技术选型到各端部署实战,教你“养”出最顺手的数字员工

历史表明,在AI Agent架构中,跨应用、平台和控制能力的实现难度极大——要么通过商业闭源API(成本高、被嵌套),要么通过本地脚本硬编码(没有通用性)。OpenClaw的创新之处在于开源社区让Agent不仅仅能“回答问题”,还能调用外挂工具链(Skills)、保持长期记忆,并能通过统一网关接管手机或电脑上的任务。OpenClaw/

2026-04-30 14:29:24 422

原创 算完这笔账,我失眠了:单收入线 vs 双收入线,十年后差距100万

我不是劝你辞职。相反,我劝你在有稳定工作的时候,

2026-04-30 11:51:13 711

原创 年终奖递延、期权绑定、竞业协议——跳槽前必须搞清楚的5个HR话术陷阱

HR不是你的敌人,TA有自己的KPI——用尽可能低的成本招到人。所以TA不会主动告诉你这些细节,但你去问了,TA一般会如实说(或者含糊其辞)。

2026-04-30 11:48:41 480

原创 程序员接私活的正确方式:报价、合同、交付、收款全流程指南

(逾期30天)“由于贵公司一直未支付尾款,我将暂停项目维护服务,并保留收回源码的权利。大多数客户走到第二步就会付。死赖不付的,你合同里写了违约金和收回源码的条款,可以真正执行。

2026-04-30 11:39:27 910

原创 35岁程序员的5条退路:哪条路风险最低、收益最高

跟20多个过了35岁的朋友聊完,我把他们的选择整理出来了先说我自己的感受。32岁那年开始,夜里偶尔会醒。后来我跟身边过了35岁的朋友、前同事、网友聊了一圈,发现大家走的路其实就那么几条。有的人走得顺,有的人掉坑里了。今天把这5条路掰开揉碎说清楚。不吹不黑,都是真实情况。

2026-04-29 16:40:37 343

原创 “薪资open”“不设上限”:谈薪资时HR的5种套路及反杀话术

摸清行情去OfferShow、脉脉、Blind、levels.fyi查同公司同岗的薪资。别只看月薪,看总包。算好自己的底线三个数:最低接受、期望、理想。自己知道就行,别告诉HR。别指望一轮结束薪资谈判通常2-3轮。第一轮说“我回去考虑考虑”,第二轮再出牌。HR套路再多,本质就是信息不对称。你表现越专业、越有准备,她越不敢乱压。下次有人跟你说“薪资open”,你知道怎么接了吗?如果这篇对你有用,点个在看**,转发给正在看机会的朋友。**

2026-04-29 16:26:02 194

原创 虾言虾语:别再跟你的小龙虾“鸡同鸭讲”了!这5个坑,90%的新手都踩过

开口就上模板、文件就分类、Agent就定职责——这三件办好了,你的小龙虾就不再是“傻傻运行的一个工具”,而是真的可以一天24小时帮你分忧、能干活的“数字员工”。在小龙虾的世界里,没有模糊的表达,只有你含糊的指令。今天就动手试试前三条。弄好了,你晚上就可以安心喝茶,等着小龙虾把成捆的分析报告、视频脚本、代码成品堆到你的飞书里。不信?试试就知道了,试一次就知道多香了。

2026-04-29 15:57:54 360

原创 java面试必问30:如何保证接口幂等性:从原理到实战,精通很容易

对同一个接口发起多次相同的请求,所产生的副作用与发起一次请求相同。简单说:无论调用一次还是多次,结果一样。典型场景订单提交(防止重复下单)支付扣款(防止重复扣款)表单提交(防止重复创建)消息消费(防止重复处理)注意:幂等针对的是写操作(修改数据),读操作天然幂等。方法适用类型可靠性额外开销推荐度前端防重辅助低无必须唯一索引插入高低常用分布式锁并发控制中(需配合状态)中推荐Token 令牌表单提交高中(一次额外请求)常用状态机状态流转极高。

2026-04-27 08:55:13 318

原创 java面试必问29:消息队列使用场景:从异步解耦到最终一致性,面试官都佩服你

场景核心价值典型案例异步解耦缩短响应时间,减少依赖用户注册后续服务流量削峰保护下游系统秒杀、抢票异步通知非阻塞告知支付回调最终一致性分布式事务柔性方案下单扣库存一句话记住 MQ 使用场景异步解耦快响应,削峰填谷保系统;通知最终一致性,可靠消息是关键。消息队列是现代分布式系统的基石。理解其使用场景和注意事项,能帮助你设计高可用、高扩展的架构。希望这篇文章能帮你彻底掌握这块高频考点,欢迎继续讨论。

2026-04-27 08:48:54 320

原创 java面试必问28:分布式锁实现方式:从原理到选型,读懂就变高手

面试官:“分布式锁怎么实现?你:“主要有三种方式:基于 Redis 的SET NX EX、基于 Zookeeper 的临时顺序节点、基于数据库的悲观锁或乐观锁。企业最常用的是 Redis 分布式锁,性能高且实现简单。面试官:“那 Redis 锁有什么坑?如何保证锁的原子性?如果持有锁的线程挂了怎么办?你:“……”很多人能说出三种方式,但一追问 Redis 锁的原子性、锁续命、Zookeeper 的羊群效应、数据库锁的性能瓶颈就含糊了。本文从原理到实战,彻底讲透分布式锁的实现与选型。

2026-04-27 08:47:39 478

原创 java面试必问27:创建线程的3种方式:从基础到线程池,掌握原理不迷路

在 Java 中,线程是并发执行的基本单元。方式返回结果能否抛出异常特点继承 Thread无否简单,但单继承限制实现 Runnable无否更灵活,推荐实现 Callable有(Future)可以可获取返回结果,支持异常无论哪种方式,核心都是创建一个Thread对象并调用start()方法,由 JVM 调度执行。方式代码复杂程度灵活性返回值适用场景继承 Thread简单低(单继承)无简单小任务,不推荐实现 Runnable中等高无。

2026-04-26 10:35:19 264

原创 java面试必问26:ThreadLocal 原理及场景:从源码到内存泄漏,一篇讲透

总是使用remove():在 finally 块中清理,避免内存泄漏和脏数据。尽量将 ThreadLocal 声明为:减少创建次数,避免 ThreadLocal 对象本身被频繁 GC 导致 key 失效。不要在 ThreadLocal 中存储大对象:长时间存活的大对象容易撑爆内存。线程池环境格外小心:确保任务执行完清理。使用工具检测内存泄漏:如 jmap 导出 heap dump,分析的 key 为 null 但 value 不为 null 的对象。概念要点底层。

2026-04-26 10:26:02 360

原创 java面试必问25:强引用、软引用、弱引用、虚引用:从Java对象生命周期到内存优化

强引用是最常见的引用方式,例如。只要强引用存在,GC 就永远不会回收这个对象,即使抛出也不会回收。软引用用于描述有用但不是必须的内存缓存。在系统将要发生内存溢出之前,GC 会将这些软引用对象列入回收范围进行第二次回收。如果这次回收后内存仍不足,才抛出 OOM。弱引用的强度比软引用更低。下一次 GC 发生时,无论内存是否充足,弱引用指向的对象都会被回收(只要没有强引用或软引用)。虚引用是最弱的引用,它无法通过 get() 方法获取实际对象(始终返回null它的唯一作用是在对象被 GC 回收时收到一个通知。

2026-04-26 10:23:48 354

原创 java面试必问24:Java 垃圾回收机制:从对象判死到分代回收,一篇讲透

判定方式核心优缺点引用计数法计数器简单,但无法解决循环引用可达性分析GC Roots + 引用链无循环引用问题,主流方案回收算法核心适用区域标记-清除标记 + 清除老年代(CMS)复制分半复制新生代标记-整理标记 + 移动老年代(Serial Old、Parallel Old)分代回收组合策略整个堆一句话记住垃圾回收可达分析判生死,分代回收用对法;新生复制老整理,标记清除防碎片。垃圾回收算法是理解 JVM 调优和选择垃圾收集器的基础。

2026-04-26 10:20:18 354

原创 java面试必问23:JVM内存结构:堆和方法区共享,栈和计数器私有,一句话记住

堆是 JVM 管理的最大内存区域,所有线程共享。几乎所有的对象实例和数组都在堆上分配。堆是垃圾回收(GC)的主要工作区域,因此也称为GC 堆。方法区也是线程共享区域,用于存储类信息(类的版本、字段、方法、接口)、常量池静态变量即时编译器编译后的代码等。虚拟机栈是线程私有的,每个方法执行时都会创建一个栈帧(Stack Frame)局部变量表:存放方法参数和方法内部定义的局部变量。以变量槽(Slot)为单位,long和double占 2 个槽,其他占 1 个。操作数栈:用于存放计算过程中的中间结果。

2026-04-24 16:30:06 793

原创 java面试必问22:Redis持久化RDB、AOF:从原理到混合模式,背完直接加分

持久化方式数据完整性恢复速度文件大小性能影响推荐场景RDB低(可能丢较多)快小fork 时高备份、快速重启AOF高(最多丢1秒)慢大持续低负载数据安全要求高混合模式高较快中等同 AOF生产首选一句话记住持久化RDB 快照恢复快,AOF 日志更完整;混合模式两全法,生产环境放心用。选择持久化策略需要结合业务对数据丢失的容忍度、性能要求和内存规模。希望这篇文章能帮你彻底掌握 Redis 持久化,从容应对面试和实际调优,欢迎继续讨论。

2026-04-24 14:15:02 367

原创 java面试必问21:Redis缓存穿透、击穿、雪崩:从原理到实战,面试官都佩服你

缓存穿透:查询一个根本不存在的数据,缓存层和存储层都不会命中。每次请求都会穿透缓存直达数据库,如果恶意攻击或大量请求,会导致数据库压力剧增甚至崩溃。缓存击穿:某个热点 key(如秒杀商品、爆款新闻)在缓存过期的瞬间,有大量并发请求同时访问该 key,由于缓存失效,所有请求都落到数据库上,导致数据库瞬间压力过大。缓存雪崩:由于大量缓存 key 在同一时间段过期,或者缓存服务宕机,导致所有请求直接打到数据库,造成数据库压力骤增甚至崩溃。穿透:最根本的防护是布隆过滤器,可拦截绝大多数无效 key。

2026-04-23 14:01:41 443

原创 java面试必问20:Redis数据类型及应用场景:从基础到实战,一篇就够了

类型实现原理应用场景Bitmaps位数组,基于 String 的位操作签到统计、在线状态、布隆过滤器概率算法,误差 0.81%UV 统计(不要求精确时)Geo基于 ZSet,存储地理位置附近的人、距离计算Stream类似于消息队列的持久化结构可靠消息队列、消费者组类型一句话总结常见陷阱String万金油,存啥都行大 key 阻塞Hash对象存取神器字段太多导致大 keyList简单队列阻塞弹出可能导致空闲连接Set去重合集运算大集合交集耗时ZSet排序王者。

2026-04-23 13:41:12 361

原创 java面试必问19:MySQL优化思路:从表设计到SQL编写,性能翻手起飞

优化维度核心原则表设计字段类型合适,避免 NULL,范式与冗余平衡索引选择性高、覆盖索引、避免冗余SQL 编写不用,不用前置,大分页延迟关联,少 JOIN事务短小、合理隔离级别其他批量操作、配置调优一句话记住 MySQL 优化表设计要合理,索引覆盖防回表;大分页用延迟,事务短小性能高。MySQL 优化是一门实践科学,需要结合具体业务和数据量反复验证。希望这篇文章能帮你建立系统化的优化思路,在面试和工作中游刃有余,欢迎继续讨论。

2026-04-22 16:24:23 467

原创 java面试必问18:MVCC 原理简述:从版本链到一致性视图,读懂就变高手

隔离级别脏读不可重复读幻读实现方式(InnoDB)读未提交可能可能可能无锁,直接读最新版本读已提交不可能可能可能每条SELECT生成read view可重复读不可能不可能通常不可能(间隙锁)第一条SELECT生成read view,当前读加间隙锁串行化不可能不可能不可能读加共享锁,写加排他锁,事务串行一句话记住隔离级别读未提交脏数据,读已提交不脏但幻不可重;可重复读默认防幻,串行化性能最差。理解事务隔离级别是数据库优化和面试的基础。

2026-04-22 11:56:57 441

原创 java面试必问17:MySQL 事务隔离级别:从脏读到串行化,不犯低级错误

隔离级别脏读不可重复读幻读实现方式(InnoDB)读未提交可能可能可能无锁,直接读最新版本读已提交不可能可能可能每条SELECT生成read view可重复读不可能不可能通常不可能(间隙锁)第一条SELECT生成read view,当前读加间隙锁串行化不可能不可能不可能读加共享锁,写加排他锁,事务串行一句话记住隔离级别读未提交脏数据,读已提交不脏但幻不可重;可重复读默认防幻,串行化性能最差。理解事务隔离级别是数据库优化和面试的基础。

2026-04-22 10:31:39 448

原创 java面试必问16:MYSQL索引最左前缀原则:复合索引的灵魂,一点就懂

最左前缀原则:复合索引(联合索引)使用时,必须从索引的最左列开始匹配,不能跳过中间的列。只有遵守这个顺序,索引才能充分发挥作用。以复合索引(a, b, c)a =?a =?AND b =?a =?AND b =?AND c =?不能有效使用索引b =?(缺少最左列 a)c =?(缺少 a、b)a =?AND c =?(跳过 b,只能用 a,c 无法走索引)WHERE a =?AND c =?并不是完全不能用索引,而是只能用(a)部分过滤,c的条件无法在索引中直接定位,需要回表后再过滤。索引。

2026-04-21 11:47:25 295

原创 java面试必问15:聚簇索引与非聚簇索引:从 B+Tree 到回表,这你都懂

聚簇索引是一种数据存储方式索引的叶子节点直接存储整行数据。也就是说,表的数据行就是按照聚簇索引的顺序物理存储的。因此,一个表只能有一个聚簇索引。如果表定义了主键,那么主键索引就是聚簇索引。如果没有主键,InnoDB 会选择第一个非空的唯一索引作为聚簇索引。如果也没有,InnoDB 会隐式生成一个 6 字节的 rowid 作为聚簇索引。聚簇索引的 B+Tree 结构非叶子节点:存储主键值和指向子节点的指针。存储完整的数据行(所有列)。id INT PRIMARY KEY, -- 聚簇索引。

2026-04-20 18:03:47 571

原创 java面试必问14:MySQL 索引类型:从基础到优化,面试官给你点赞

如果一个索引包含了查询所需的所有列(即SELECT的列都在索引中),那么不需要回表查询数据行,称为覆盖索引。SELECT name FROM user WHERE name = '张三';-- 覆盖索引,不回表索引类型特点适用场景主键索引唯一、非空、聚簇每张表必备,作为行标识唯一索引值唯一,可 NULL保证字段唯一性(如邮箱、手机号)普通索引无约束加速查询,最常用复合索引多列组合,最左前缀多条件查询、排序全文索引关键词匹配大文本搜索(如文章、评论)一句话记住索引设计。

2026-04-19 10:56:23 705

原创 java面试必问13:MyBatis 一级缓存、二级缓存:从原理到脏数据,一篇讲透

一级缓存是 MyBatis 默认开启的缓存机制,作用范围是SqlSession 级别。每个 SqlSession 都有自己的缓存区域,当在同一 SqlSession 中执行相同 SQL 查询时,第二次查询不会发送到数据库,直接从缓存中获取结果。// 第一次查询 → 走数据库// 第二次查询 → 走一级缓存,不走数据库// true,同一个对象引用二级缓存是Mapper(namespace)级别的缓存,数据可以在多个 SqlSession 之间共享。

2026-04-19 10:54:36 395

原创 java面试必问12:MyBatis #{} 和 ${} 区别:从预编译到防注入,一篇讲透

默认使用#{},除非明确需要动态结构。动态表名/列名必须使用${}时,添加白名单校验。避免${}拼接用户输入,尤其是直接来自 HTTP 参数的。使用<foreach>处理in条件</</开启 MyBatis 日志,观察生成的 SQL 是否有注入风险。对比项#{}${}SQL 结构预编译,参数占位符纯字符串替换防注入✅ 安全❌ 风险高适用位置值(where、insert、update)表名、列名、order by、limit(部分)性能预编译可重用,通常更好。

2026-04-17 13:39:16 328

原创 java面试必问11:Spring Bean 生命周期:从实例化到销毁,一篇讲透

扩展点时机用途初始化前后全局增强,如代理、属性注入实例化前后、属性填充前后控制实例化、属性赋值属性填充后,初始化前获取容器引用自定义初始化前执行特定初始化逻辑销毁时执行资源清理同 InitializingBean / DisposableBean注解方式更简洁容器事件发布时监听容器启动、关闭等事件阶段关键动作实例化调用构造器 / 工厂方法属性填充依赖注入Aware 回调注入 BeanName、BeanFactory、ApplicationContext前置处理初始化。

2026-04-16 17:53:29 726

原创 java面试必问10:Spring Boot 自动配置原理:从注解到条件装配,一篇讲透

传统 Spring 开发需要手动配置大量 XML 或 Java Config,例如配置数据源、事务管理器、视图解析器等。Spring Boot 通过自动配置,根据项目依赖的 Jar 包、配置文件和系统环境,自动推断并注册合理的默认 Bean,极大减少了样板配置。理解了自动配置原理,就能轻松写出自己的 Starter。关键组件作用复合注解,开启自动配置和组件扫描导入读取文件存放所有自动配置类的全限定名系列注解条件判断,按需加载绑定外部配置属性一句话记住自动配置原理。

2026-04-16 14:13:39 430

原创 java面试必问9:@Transactional 失效场景:面试最爱挖的6个坑

失效场景根本原因解决方案方法非 public代理无法拦截非 public 方法改为 public同类自调用未通过代理对象调用注入自身代理或拆分到新类异常被 catch 吃掉Spring 未感知到异常抛出异常或手动回滚传播属性错误事务不存在(如 NOT_SUPPORTED)确认传播行为,默认 REQUIRED数据库引擎不支持MyISAM 等不支持事务改为 InnoDB非 RuntimeException默认不回滚 checked exception。

2026-04-15 22:43:02 363

原创 java面试必问8:Spring 事务传播机制:7 种行为详解,一篇讲透

当一个事务方法被另一个事务方法调用时,这个事务应该如何传播。通俗说:方法 A 有事务,方法 B 也有事务,A 调用 B,B 是在 A 的事务中执行,还是另开一个新事务?这就是传播行为决定的。传播行为外部无事务外部有事务典型场景REQUIRED新建事务加入事务大多数业务SUPPORTS非事务加入事务兼容查询MANDATORY抛异常加入事务强制需要事务新建事务挂起外部,新建事务日志、消息非事务挂起外部耗时非事务操作NEVER非事务抛异常禁止事务NESTED。

2026-04-15 22:27:22 472

原创 java面试必问7:Spring IOC 是什么?从概念到原理,一篇讲透

概念要点IOC(控制反转)将对象创建和依赖管理的控制权交给容器DI(依赖注入)IOC 的具体实现,通过构造器/Setter/字段注入依赖底层技术工厂模式 + 反射 + 注解容器BeanFactory(懒加载)、ApplicationContext(预加载)生命周期实例化 → 属性填充 → 初始化 → 使用 → 销毁循环依赖单例模式下通过三级缓存解决一句话记住 IOC你不要找,你要等—— 别主动new,声明需求让 Spring 送过来。

2026-04-14 15:20:57 352

原创 java面试必问6:volatile 关键字:从可见性到指令重排序,一文讲透

为了提高性能,编译器和 CPU 可能会改变代码的执行顺序,只要不影响单线程的最终结果。int a = 1;// 语句1int b = 2;// 语句2a = a + 1;// 语句3实际执行可能是 2 → 1 → 3,因为语句1和语句2没有依赖关系。要点内容核心作用保证可见性、禁止指令重排序底层机制内存屏障 + 缓存一致性协议(MESI)原子性不保证复合操作,不能替代锁典型场景状态标记量、双重校验锁单例性能比锁轻量,但比普通变量稍慢一句话记住 volatile。

2026-04-14 08:57:11 332

原创 JAVA面试必问5:synchronized 底层原理:从字节码到锁升级,彻底搞懂

特性说明可重入性同一线程可以多次获取同一把锁,ObjectMonitor 通过字段记录重入次数非公平性锁释放后,等待线程不会按 FIFO 顺序获取,而是竞争抢占(重量级锁层面也存在非公平设计)互斥性同一时刻只有一个线程能持有锁乐观/悲观自适应无竞争时用偏向锁/轻量级锁(乐观),有竞争时膨胀为重量级锁(悲观)自旋/挂起自适应轻量级锁阶段自旋等待,自旋超时后挂起线程维度内容字节码层代码块:monitorenter/monitorexit;方法:ACC_SYNCHRONIZED存储层。

2026-04-13 10:51:49 170

原创 JAVA面试必问4:线程和进程的区别:从车间工人到操作系统核心

对比点进程线程资源独立、重量级共享、轻量级切换慢(TLB刷新)快(寄存器级)通信IPC(复杂)共享内存(简单)健壮性高低(一个线程崩全进程崩)适用强隔离、多核利用高并发、频繁交互一句话记:进程是车间,线程是工人。车间之间独立运作,工人共享车间的设备和原料,但每个工人有自己的工具和任务记录。希望这篇文章能帮你彻底搞定进程和线程的面试题,欢迎继续讨论。

2026-04-10 07:52:28 306

原创 Java面试必问3:ArrayList 和 LinkedList 区别:从底层到实战,彻底搞懂

ArrayList和LinkedList的区别是Java集合面试的经典问题。本文从底层结构、增删查效率、内存占用等方面进行深度对比: 底层结构:ArrayList基于动态数组,LinkedList基于双向链表 查询效率:ArrayList随机访问O(1),LinkedList需要遍历O(n) 增删效率: 头尾操作:LinkedList更优O(1) 中间操作:两者都是O(n),LinkedList常数时间更优 内存占用:LinkedList每个节点多24字节指针开销 使用场景: 读多写少选ArrayList

2026-04-09 12:58:18 291

原创 OpenClaw 本地部署新手指南:2026 安全、省钱、高效的三合一方案

最近“AI 智能体”这个词越来越火。很多人听说 OpenClaw(开源社区戏称“龙虾”)能像数字员工一样自动执行任务——抓网页、整理文档、回邮件,于是兴冲冲想自己搭一个。但真正动手时才发现:安装脚本报错、API-Key 不会配、本地模型跑不动、端口被占用……一篇教程看完,反而更晕了。这篇文章是我在帮助多位朋友实际部署 OpenClaw 后总结的经验。我们不追求大而全,只解决三个最实际的问题:怎么装最稳?—— 避开 Windows 原生坑,推荐最稳定的环境。怎么最省钱?

2026-04-08 15:53:39 429

原创 Java面试必问2:HashMap 底层原理详解:从数组到红黑树的进化

加载因子loadFactor= 0.75,表示当数组中的元素个数(总键值对数量)超过数组容量 * 0.75时,就触发扩容。这是一个时间和空间的权衡加载因子越大(比如 0.9),空间利用率高,但哈希冲突概率增加,查询变慢。加载因子越小(比如 0.5),冲突少,查询快,但频繁扩容浪费内存。0.75 是 JDK 工程师经过大量测试得出的经验值,兼顾了二者。特性JDK 1.7JDK 1.8数据结构数组 + 链表数组 + 链表 + 红黑树插入方式头插法尾插法扩容死循环存在已修复。

2026-04-08 09:01:01 465

原创 OpenCode CLI 命令参考手册

本文档详细介绍 OpenCode 命令行工具的所有命令、参数及使用示例,帮助你快速掌握 CLI 的使用方法。

2026-04-07 13:58:11 457

原创 Java面试必问1:== 和 equals 到底有什么区别?

摘要:本文解析Java面试高频问题"==和equals的区别"。==比较对象的内存地址,判断是否为同一对象;equals默认比较地址,但String等类重写后比较内容。关键点:String比较用equals,基本类型用==;注意equals比较null时的空指针问题。掌握这些要点能展现对Java基础的深入理解,帮助应对面试考察。

2026-04-07 13:40:03 232

空空如也

空空如也

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

TA关注的人

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