- 博客(9)
- 收藏
- 关注
原创 为什么说 Object 类是所有类的超类?创建一个没有显式继承任何类的自定义类,如何证明它继承了 Object 类?
这是Java的核心规范,目的是为所有对象提供统一的基础方法(如equals()、hashCode()、toString()等),保证对象的基本行为一致性,简化编程逻辑。// 输出:true。无显式继承的类,编译器会自动为其添加extends Object(隐式继承),因此它具备Object类的所有特性。// 调用Object类的toString()方法(自定义类未重写,使用父类实现)// 调用Object类的equals()方法。
2025-12-28 18:48:23
149
5
原创 简述String、StringBuilder和StringBuffer的区别?
可变性 不可变(底层char数组final) 可变(动态扩容char数组) 可变(动态扩容char数组)线程安全 安全(无修改操作) 不安全(无同步锁) 安全(方法加synchronized)适用场景 字符串常量、少量拼接 单线程大量字符串拼接 多线程大量字符串拼接。性能 最低(拼接创建新对象) 最高(无锁操作) 中等(锁开销)• String适合读多写少的场景,拼接频繁会产生大量无用对象;• 单线程环境优先用StringBuilder(性能最优);
2025-12-28 18:47:27
95
原创 字符串的多种创建方式
• 原理:无论常量池是否存在"abc",都会在堆内存新建一个String对象,再引用常量池中的"abc"(或创建后引用),一定新建对象。• 原理:先检查字符串常量池是否存在"abc",存在则直接引用,不存在则创建后放入常量池,不新建对象(复用性强,效率高)。• 语法2(变量拼接):String a = "a";• 语法1(常量拼接):String str = "a" + "b" + "c";• 原理:编译期优化为"abc",直接从常量池获取(同直接赋值)。• 语法:String str = "abc";
2025-12-27 01:12:03
239
原创 异常的两种处理方式
• 核心特点:将异常责任转移给上层调用者,调用者需通过try-catch捕获或继续throws。public void 方法名() throws 异常类1, 异常类2 {当前方法不处理异常,声明该方法可能抛出的异常类型,由调用者负责处理。// 无论是否发生异常,必执行的代码(如关闭流、释放资源)// 可能抛出异常的代码(如IO操作、空指针风险代码)主动捕获代码中可能出现的异常,并针对性处理,避免程序崩溃。// 处理异常1的逻辑(如打印日志、提示用户)// 可能抛出异常的代码。// 处理异常2的逻辑。
2025-12-27 01:11:13
343
原创 Java程序设计2常见问题及解决方案
解决方案:用迭代器Iterator的remove()方法,或使用stream().filter()过滤后重建集合。解决方案:重写需保证方法签名(方法名+参数列表)完全一致,子类返回值可是父类返回值的子类(协变返回),强制添加@Override校验。解决方案:根据场景选择:查询多用ArrayList,增删多用LinkedList,去重/无序用HashSet,有序用TreeSet。2. 抽象类与接口混淆:不清楚何时用抽象类(is-a关系,含具体方法)、何时用接口(has-a能力,全抽象/静态方法)。
2025-12-25 15:47:51
203
原创 如何运用IntelliJ IDEA 编程
• 需提前安装MinGW或Clang编译器,在IDEA中配置:「File」→「Settings」→「Build, Execution, Deployment」→「Toolchains」→ 点击「+」添加编译器路径 → 应用生效。1. 新建项目:打开IDEA → 选择「New Project」→ 选择编程语言(如Java/C++)、JDK版本 → 命名项目并选择存储路径 → 点击「Create」。• 快速修复错误:光标定位到错误处,按「Alt+Enter」,IDEA会提供错误修复建议。
2025-12-25 15:46:32
142
原创 数组概念及应用
针对有序数组,可以使用更高效的二分查找,有序数组又分为升序和降序,以升序数组为例, 二分查找的思路是先取中间位置的元素,然后使用待查找元素与数组中间元素进行比较:如果相等,即找到了返回该元素在数组中的下标,如果小于,以类似方式到数组左半侧查找,如果大于,以类似方式到数组右半侧查找。算法思路为:假设排升序,将数组中相邻元素从前往后依次进行比较,如果前一个元素比后一个元素大,则交换,一趟下来后最大元素就在数组的末尾,依次从上上述过程,直到数组中所有的元素都排列好。2. 数组的空间是连在一起的。
2025-06-18 14:30:41
298
原创 DeepSeek的认识
DeepSeek的技术演进路线揭示了一个清晰的未来图景:当机器智能突破感知与推理的边界,当多模态交互消弭人与机器的沟通鸿沟,我们正站在通用人工智能时代的门槛前。这场静默的技术革命不仅将重塑产业形态,更将重构人类社会的认知框架。如何在技术创新与伦理规制间找到平衡支点,将是决定人工智能走向的关键命题。作为中国AI创新的领军者,DeepSeek的探索之路,为我们提供了观察技术文明演进的重要窗口。
2025-03-05 16:29:35
418
原创 初识Java语言
在数字时代的浪潮中,Java语言以其独特的魅力持续引领着全球软件开发的技术革新。自1995年由Sun Microsystems公司正式发布以来,这门兼具优雅语法与强大功能的编程语言,已经渗透到互联网基础设施、移动设备应用、企业级系统等各个领域。对于编程初学者而言,Java就像一把打开多维编程世界大门的万能钥匙,其学习曲线平缓且资源丰富,为不同背景的学习者提供了坚实的起跑平台。一、Java语言的诞生与演进。
2025-03-05 16:23:35
853
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅