- 博客(93)
- 收藏
- 关注
原创 2.算法效率的核心密码:时间复杂度和空间复杂度详解
时间复杂度和空间复杂度是算法分析的基石,也是面试中绕不开的话题。理解它们不仅能帮你在面试中脱颖而出,更能让你在日常开发中写出更高效的代码。下一篇文章,我们将把这些知识应用到集合框架的源码分析中,看看ArrayList和LinkedList各自的性能特点是如何由它们的底层数据结构决定的。有任何疑问,欢迎在评论区交流探讨!注:本文为个人学习总结,文中示例均为独立编写。建议读者在学习过程中结合实际代码运行验证,加深理解。
2026-07-12 15:35:45
66
原创 1.Java集合框架入门指南:从零掌握核心数据结构
数据结构是计算机存储、组织数据的方式。简单来说,它就是解决“数据怎么放、怎么找”这个问题的一套方法论。算法是解决问题的计算步骤。比如你要从100万条数据中找到某个值:顺序查找:最多需要100万次比较二分查找(数据有序):最多只需20次比较这就是算法的魅力——用更好的策略解决问题。把自己学到的知识用自己的话写出来,是最好的巩固方式。即使写得不好也没关系,关键是养成总结的习惯。集合框架是Java学习的必经之路,也是区分“会用”和“懂原理”的分水岭。
2026-07-12 15:30:33
128
原创 Java13:Java抽象类与接口:从设计思想到实战应用
在前几篇文章中,我们学习了面向对象的三大特性:封装、继承和多态。你已经能够用继承来复用代码,用多态来让程序更灵活。但在实际开发中,我们会遇到一些更棘手的设计问题:某个父类的方法,在父类中根本无法给出有意义的实现,但又必须让子类去实现——比如图形的draw()方法,图形本身怎么画?一个类需要同时具备多种能力,但Java又不支持多继承——比如一只鸭子既要会飞、又要会跑、还要会游泳,怎么办?抽象类和接口。在Java中,使用abstract关键字修饰的类称为抽象类,使用abstract修饰的方法称为抽象方法。
2026-07-12 15:18:25
353
原创 Java12:Java多态详解:让代码更灵活,让设计更优雅
在前一篇文章中,我们学习了Java的继承机制。通过继承,子类可以复用父类的代码,并在其基础上扩展自己的功能。但继承的真正威力,需要结合多态才能完全发挥出来。多态是面向对象编程的三大特性之一(封装、继承、多态),也是Java中最具魅力的特性之一。它让同一个行为在不同的对象身上表现出不同的形态,极大地提升了代码的灵活性和可扩展性。今天这篇文章,我们就来深入理解Java中的多态机制。"多态"这个词的字面意思是"多种形态"。同一个消息,不同的对象接收到后会做出不同的响应。
2026-07-12 15:13:09
186
原创 Java11:Java继承详解:让代码复用的艺术更上一层楼
在前面的文章中,我们学习了面向对象的基础概念:类与对象、封装、static关键字等。你已经知道如何用类来描述现实世界中的事物,并通过封装来保护数据的安全。但现实世界是复杂的。猫和狗有很多相似之处——它们都有名字、年龄,都会吃东西、睡觉。如果按照之前的方式,我们需要在Dog类和Cat类中分别定义这些属性和方法,造成大量的重复代码。有没有一种方式,能把这些共性抽取出来,让猫和狗共享呢?这就是我们今天要学习的核心主题——继承。继承是面向对象程序设计中实现代码复用的重要手段。
2026-07-11 20:04:40
433
原创 Java10:Java面向对象进阶:包、封装、static与代码块深度解析
在上一篇文章中,我们学习了面向对象的基础概念:类与对象、构造方法、this关键字。你已经知道了如何定义一张"设计图"(类),并根据它建造出"房子"(对象)。但面向对象的魅力远不止于此。当程序规模逐渐扩大,我们会面临新的挑战:类越来越多,名字冲突怎么办?对象的内部数据如何保护,不让外部随意篡改?有些属性是所有对象共享的,该如何定义?对象创建时,初始化顺序是怎样的?今天这篇文章,就来一一解答这些问题。包封装static关键字和代码块。创建自己的包很简单,只需要在Java文件的第一行加上。
2026-07-11 19:59:38
371
原创 Java9:Java面向对象入门:从现实世界到代码世界的映射
在前面几篇文章中,我们学习了变量、运算符、流程控制、数组等基础知识。细心的读者可能已经发现,我们一直在用"面向过程"的方式写代码——程序就是一系列指令的集合,从上到下依次执行。这种方式对于小程序来说够用,但当代码规模变大时,问题就来了:代码难以维护、难以扩展、难以复用。Java是一门纯面向对象的语言。什么叫"面向对象"?简单来说,就是把现实世界中的事物直接映射到代码中——人就是人,车就是车,而不是一堆散乱的数据和函数。今天这篇文章,我们就来正式踏入Java面向对象编程的大门。
2026-07-06 16:47:34
140
原创 Java8:Java数组详解:从入门到精通,一文就够了
想象这样一个场景:期末考试结束了,老师让你录入班上50名同学的Java成绩。按照我们之前学过的知识,你会怎么做?score1score2score3……一直到score50。听起来就很离谱对吧?不仅代码冗长得吓人,而且如果要统计平均分、找最高分,你还得把这50个变量挨个操作一遍。更糟糕的是,如果班级人数增加到100人,难道还要再加50个变量?显然,我们需要一种更聪明的方式来管理同类型的数据。这就是今天的主角——数组。数组的概念:相同类型元素的连续集合创建和初始化:动态初始化 vs 静态初始化基本操作。
2026-07-06 08:33:56
350
原创 Java7:Java调试入门:用好IDEA调试器,Bug无处遁形
在学习Java的过程中,你一定遇到过这样的情况:代码编译通过了,但运行结果却和预期不一样。没有报错,没有异常,可结果就是不对。这种时候,很多初学者会选择在代码里到处加,试图通过打印信息来定位问题。这种方法虽然有效,但对于稍微复杂一点的程序来说,效率实在太低了——你得不断地改代码、重新编译、重新运行,来回折腾好几轮。今天这篇文章,我们来学习一种更专业、更高效的排错方式——调试(Debugging)。掌握了调试技能,你就能像医生做CT扫描一样,精准地看到程序在每一步执行时的状态,Bug自然无处藏身。调试。
2026-07-06 08:18:52
274
原创 Java6:Java方法详解:让代码告别重复,拥抱复用
经过前面几篇文章的学习,我们已经掌握了变量、运算符、流程控制和输入输出。但不知你有没有发现一个问题:当我们的程序越来越复杂时,代码变得越来越臃肿,同样的逻辑反复出现,修改一处就要改动多处。比如我们要计算1!、2!、3!……5!,如果不使用方法,就得把阶乘的逻辑重复写五遍。这不仅浪费时间,还容易出错。今天这篇文章,我们来学习Java中最重要的代码组织方式——方法。掌握了方法,你的代码将从"流水账"升级为"模块化"。修饰符 返回值类型 方法名称(参数类型 形参...) {方法体代码;
2026-07-06 08:06:32
225
原创 Java5:Java输入输出:让程序和世界对话
经过前面几篇文章的学习,我们已经掌握了Java的基本语法、数据类型、运算符和流程控制。数据都是写死在代码里的。变量赋值靠手写,条件判断靠预设——这样的程序就像一个自言自语的人,永远不知道外界发生了什么。今天这篇文章,我们来学习Java的输入输出。掌握了这部分内容,你的程序就能真正和用户"对话"了:既能向用户展示信息,也能接收用户的指令和数据。println:带换行的输出print:不带换行的输出printf:格式化输出,灵活控制显示格式nextInt()nextLine()输入类型不匹配时的处理方法。
2026-07-05 15:34:33
283
原创 Java4:Java程序逻辑控制:让代码学会思考和重复
经过前三篇文章的学习,我们已经掌握了Java的基本数据类型、变量和运算符。但到目前为止,我们写的程序都是"直线"执行的——从上到下,一行接一行,没有任何分支和转折。这就好比一台只会走直线的机器人,遇到岔路口不会拐弯,碰到重复劳动也不会偷懒。显然,真正的程序要比这灵活得多。今天这篇文章,我们来学习Java中的程序逻辑控制——让代码能够做出判断、选择路径、重复执行。这是编程从"玩具"走向"工具"的关键一步。顺序结构:代码按顺序逐行执行分支结构。
2026-07-05 15:26:46
412
原创 Java3:Java运算符详解:编程世界的加减乘除
在前两篇文章中,我们了解了Java的基本数据类型和变量。但光有数据还不够,我们还需要一套工具来操作这些数据——这就是运算符。运算符就像是编程世界里的"动词",告诉计算机要对数据做什么样的操作。今天的文章将系统地梳理Java中的各类运算符,并结合实际案例帮助你理解它们的用法和注意事项。学完这一篇,你将能写出真正"动起来"的Java代码。算术运算符关系运算符:==!逻辑运算符:&& ||!(支持短路求值)位运算符:& | ~ ^移位运算符:<< >> >>>条件运算符。
2026-07-05 15:16:50
171
原创 Java2:Java数据类型与变量:编程世界的基础法则
上一篇文章我们完成了第一个Java程序的编写,理解了Java程序的基本结构。今天,我们将深入探讨编程中最基础也最重要的概念——数据类型与变量。如果把编程比作盖房子,数据类型就是砖块和水泥的种类,变量则是存放建筑材料的仓库。掌握了它们,你就真正踏入了Java编程的大门。// 基本语法:数据类型 变量名 = 初始值;// 定义一个整型变量age,值为22// 定义一个浮点型变量heightchar gender = '男';// 定义一个字符型变量gender// 定义一个布尔型变量isStudent。
2026-07-05 15:10:47
464
原创 Java1:初识Java:从零开始的编程之旅
如果你正在寻找一门既强大又优雅的编程语言作为入门选择,Java绝对值得你认真考虑。作为全球最受欢迎的编程语言之一,Java不仅拥有清晰易懂的语法,还构建了一个完整的技术生态系统。今天,我们就从零开始,一起揭开Java的神秘面纱。Java之所以历经三十年依然充满活力,正是因为它兼具了简单与强大、安全与灵活、跨平台与高性能的多重特质。无论你是想从事后端开发、移动开发,还是大数据方向,Java都能为你打下坚实的基础。记住:编程之路没有捷径,但有好的起点。希望这篇文章能成为你Java旅程中一块坚实的垫脚石。
2026-07-05 15:05:06
232
原创 JavaEE必会面试题,从线程讲到线程安全,一文带你通过多线程面试
目录一、讲讲线程与进程的联系二、线程创建的五种写法三、产生线程安全问题的五大原因四、线程的状态有哪几种?五、死锁产生的四个必要条件[🌟背下来]六、如何避免死锁?七、请你写一个懒汉模式线程安全的代码并解释你这样写的原因🌟你的回答:
2026-06-26 17:10:04
183
原创 9.Java并发编程避坑指南:synchronized死锁、volatile内存可见性与wait/notify正确使用
9.Java并发编程避坑指南:synchronized死锁、volatile内存可见性与wai/notify正确使用
2026-06-06 15:39:06
326
原创 8.Java多线程之synchronized深度解析(含代码+死锁分析)
8.Java多线程之synchronized深度解析(含代码+死锁分析)_lcy
2026-06-05 23:43:49
481
原创 16.滑动窗口经典例题:最小覆盖子串(LeetCode 76)算法原理剖析
16.滑动窗口经典例题:最小覆盖子串(LeetCode 76)算法原理剖析
2026-06-05 15:08:51
349
原创 15.LeetCode 30. 串联所有单词的子串(Java):滑动窗口+哈希表详解
15.LeetCode 30. 串联所有单词的子串(Java):滑动窗口+哈希表详解
2026-06-04 19:51:13
372
原创 13.LeetCode 904. 水果成篮:从暴力枚举到滑动窗口的完美进阶
13.LeetCode 904. 水果成篮:从暴力枚举到滑动窗口的完美进阶
2026-06-02 18:50:44
551
原创 22.任务清单应用开发实战:从HTML结构到JavaScript交互的完整实现
22.任务清单应用开发实战:从HTML结构到JavaScript交互的完整实现
2026-06-02 14:47:02
373
原创 21.前端入门必看!猜数字小游戏和表白墙的完整代码实现
摘要:本文分享两个HTML+JavaScript入门实战案例。猜数字小游戏通过DOM操作实现数字猜测功能,包含随机数生成、结果反馈和重置功能;表白墙案例演示了动态内容添加,用户输入信息后实时显示在页面。两个案例均包含完整HTML结构、CSS样式和JavaScript逻辑代码,涵盖querySelector、createElement等核心DOM操作,适合初学者巩固事件绑定和页面交互基础。案例代码简洁清晰,可作为前端入门练手项目。
2026-06-02 10:14:26
334
原创 19.从行内到类名:JavaScript 修改 CSS 样式的两种核心方式对比
19.从行内到类名:JavaScript 修改 CSS 样式的两种核心方式对比
2026-06-01 09:21:53
273
原创 17.从零开始学JS:querySelector 获取元素与事件监听实战
17.从零开始学JS:querySelector 获取元素与事件监听实战
2026-06-01 09:21:10
195
原创 15.JavaScript 函数与作用域完全指南:语法、参数、表达式与作用域链实战
15.JavaScript函数与作用域完全指南:语法、参数、表达式与作用域链实战
2026-05-31 15:38:12
168
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅