- 博客(30)
- 收藏
- 关注
原创 Java常用API详解(二):集合类API(ArrayList/HashMap/HashSet)实战,一篇吃透
本文作为Java常用API系列的第二篇,重点讲解了3个最常用的集合类API,都是日常开发中“每天都会用到”的核心工具,总结如下:1. ArrayList:有序、可重复、有索引,底层数组,查询快,首选用于批量数据存储、频繁查询;2. HashMap:无序、键唯一、值可重复,底层哈希表,首选用于键值对存储、高效查询;3. HashSet:无序、元素唯一、无索引,底层HashMap,首选用于元素去重;4. 核心共性:都非线程安全,自定义对象作为key/元素时,必须重写equals()和。
2026-04-22 21:06:33
780
原创 Java常用API详解(一):基础高频API+实战避坑,新手必看
本文作为Java常用API系列的第一篇,重点讲解了3个核心类的高频API,以及枚举API的实战用法,都是日常开发中每天都会用到的知识点,总结如下:1. String类:不可变字符串,重点掌握equals()contains();2. StringBuilder:可变字符串,拼接效率高,重点掌握append()toString();3. Object类:所有类的父类,重点掌握equals()hashCode()toString()的重写;4. 枚举API:替代魔法值,提升代码可读性和安全性,重点掌握。
2026-04-20 21:02:12
653
原创 Java 泛型 (Generic) 入门到精通:语法 + 原理 + 实战 + 避坑
泛型 = 参数化类型把数据类型当作参数传递,让类 / 接口 / 方法可以支持任意类型,同时保留类型安全。Java 泛型是伪泛型编译后泛型信息会全部消失,字节码中没有泛型!// 输出 true!泛型类型被擦除了泛型 = 类型安全 + 代码复用 + 自动推导泛型类、泛型接口、泛型方法extends T>super T>类型擦除统一返回泛型 R<T>泛型 + 枚举 = 最优雅的业务常量方案。
2026-04-16 20:54:58
742
原创 Java枚举(Enum):基础语法+高级用法+实战场景+面试避坑
这部分是基础,必须掌握!我们从“简单枚举定义”“带属性和构造器的枚举”“枚举的默认方法”三个场景,结合代码实例讲解,直接复制就能运行。[访问修饰符] enum 枚举名 { 常量1, 常量2, ..., 常量n;注意:枚举常量用大写字母表示,多个常量之间用逗号分隔,末尾可加分号(也可省略);枚举名遵循Java类命名规范,首字母大写。// 定义季节枚举(简单版)SPRING, // 枚举常量1SUMMER, // 枚举常量2AUTUMN, // 枚举常量3WINTER;
2026-04-15 08:45:38
1207
原创 Java内部类:4种类型+实战场景+面试避坑
Java内部类的核心价值是封装、解耦、弥补单继承局限,4种内部类各有适用场景,核心总结如下:静态内部类:优先使用,无外部引用,避免内存泄漏,适合Builder模式、工具类;成员内部类:与外部类强关联,需要访问外部实例成员,适合封装外部类的辅助逻辑;匿名内部类:快速实现接口/继承类,一次性使用,适合回调、事件监听;局部内部类:方法内临时复用逻辑,使用频率低,多被Lambda替代。对于新手来说,重点掌握“成员内部类”和“静态内部类”的语法与实例化方式;
2026-04-13 21:10:55
630
原创 Java接口:从基础语法到实战应用
这部分是基础,必须掌握!我们分“定义接口”“实现接口”“接口继承”三个场景,结合代码实例讲解,直接复制就能运行。[访问修饰符] interface 接口名 [extends 父接口列表] { 常量定义;方法定义;注意:访问修饰符只有两种——public(全项目可见)和默认(包级可见),接口命名通常以大写字母开头,多以able、ible结尾(如Runnable、Comparable),符合Java命名规范。// 定义一个支付接口,规范支付行为。
2026-04-09 21:01:50
768
原创 案例:员工薪资管理系统(核心:抽象类 + 继承 + 多态 + static)
1. 定义抽象类`Employee`,包含**final 属性工号**、姓名、私有静态属性`公司名称`、静态方法统一修改公司名称;公司:互联网科技公司 | 工号:1001 | 姓名:张三 | 薪资:8000.0。公司:互联网科技公司 | 工号:1002 | 姓名:李四 | 薪资:5000.0。公司:互联网科技公司 | 工号:1001 | 姓名:张三 | 薪资:8000.0。公司:互联网科技公司 | 工号:1002 | 姓名:李四 | 薪资:5000.0。4. 利用多态遍历员工数组,统一打印员工信息和薪资;
2026-04-08 19:35:57
61
原创 Java 抽象:面向对象的核心设计与实战指南
在 Java 面向对象编程中,抽象是将一类事物的共同特征和行为提取出来,只保留关键的方法声明,不关注具体实现细节的思想。只做定义,不做实现,让子类去完成具体逻辑。abstract:修饰类和方法抽象方法所在的类必须是抽象类用abstract修饰,只有方法声明,没有方法体的方法。用abstract修饰的类,叫做抽象类。// 抽象类// 普通成员变量// 构造方法// 抽象方法:叫// 普通方法System.out.println(name + "在吃东西");
2026-04-07 16:39:47
243
原创 Java final关键字详解:用法、场景、面试题全解析
final是Java中的一个非访问修饰符,中文意为“最终的、不可变的”,用于限制类、方法、变量的可修改性,核心作用有两个:保证代码的安全性:防止类被继承、方法被重写、变量被篡改,避免意外修改导致的bug;提高代码的可读性和可维护性:明确标识“不可修改”的元素,让开发者一眼知晓其作用域和限制。final可修饰的三种对象,也是本文的核心重点:变量、方法、类,下面逐一详解。核心原因有两个:安全性:防止String类被继承后篡改核心逻辑,避免字符串内容被意外修改(比如黑客篡改密码、接口参数等);
2026-04-06 20:26:20
1789
原创 Java多态详解:从概念到实战,新手也能吃透的面向对象核心
同一方法,在不同对象上有不同的执行结果。简单来说,就是“做同一件事,不同的对象有不同的做法”。举个生活中的例子:同样是“吃饭”这个行为,人用筷子吃,狗用嘴巴啃,鸟用嘴巴啄——这就是多态;对应到Java中,同样是“调用work()方法”,学生对象执行“学习”,老师对象执行“授课”,这就是Java多态的体现。父类引用指向子类对象,通过父类引用调用重写后的方法,实现“动态绑定”(运行时才确定具体调用哪个子类的方法)。到这里,Java多态的核心知识点就讲完了,总结一下:多态的核心是“同一行为,不同实现。
2026-04-05 19:38:06
583
原创 Java实战:指定长度随机验证码生成+用户输入验证
本文核心实现了“指定长度随机验证码生成+用户输入验证”,用到了Java基础中的随机数、字符串、循环、输入输出和分支判断,非常适合新手练习实战能力;同时修复了继承代码的报错,巩固了继承、方法重写的基础知识点。重点记住:验证码生成的核心是“字符池+随机下标抽取”;字符串拼接优先用StringBuilder,效率更高;继承中,子类必须调用父类构造方法,未定义的成员变量会导致编译报错。
2026-04-02 13:49:02
732
原创 Java 流程控制:分支与循环从入门到实战
程序默认是从上到下逐行执行根据条件选择执行不同代码(分支)重复执行某段代码(循环)它是所有逻辑代码的基石,不管是简单练习还是企业项目,都离不开分支与循环。分支:用于条件判断if-else:适合范围判断switch:适合固定值判断循环:用于重复执行for:固定次数while:先判断后执行do-while:至少执行一次break:结束循环continue:跳过本次循环流程控制是 Java 最基础的语法,必须熟练掌握!
2026-04-01 13:45:19
194
原创 Java继承详解:从基础到实战,吃透面向对象核心特性
简单来说,继承是一种“复用已有类、扩展新功能”的机制,允许一个类(子类/派生类)继承另一个类(父类/基类/超类)的属性和方法,子类无需重复编写父类已有的代码,同时还能定义自己的专属属性和方法,实现逻辑扩展。继承的核心本质有两个:代码复用:将多个类的共性属性和方法提取到父类中,子类直接继承使用,减少重复代码,降低维护成本;层次化设计:建立类与类之间的“is-a”关系(比如“学生是一个人”“狗是一种动物”),让程序结构更清晰、更具扩展性。
2026-03-31 16:02:29
1214
1
原创 Java 面向对象高级 —— static 关键字
/ 静态变量(属于类,所有对象共享)static String schoolName = "第一中学";// 实例变量(属于对象)// 静态方法System.out.println("我在学习");static 属于类,不属于对象静态成员用 类名。调用,不需要 new静态方法不能直接访问非静态,不能用 this静态变量全局共享一份工具方法、共享数据 → 用 static。
2026-03-24 21:00:04
608
原创 Java 集合超清晰入门讲解
集合 = 加强版数组,长度可变、功能更强ArrayList 最常用:有序、可重复、有索引遍历:普通 for / 增强 for。
2026-03-23 20:18:45
417
原创 Java 数组超清晰入门讲解
数组 = 存同一类型数据的固定长度容器索引从 0 开始长度用 arr.length 获取两种遍历:普通 for / 增强 for最常见错误:索引越界、空指针。
2026-03-18 21:02:46
153
原创 Java 方法超详细入门讲解
方法 = 可复用的功能代码块修饰符 返回值 方法名(参数) { 代码 }分 4 类:无参无返、有参无返、无参有返、有参有返复用、简洁、好维护。
2026-03-17 20:18:48
556
原创 ArrayList案例
需求:现在假如购物车中存储了如下这些商品:Java入门,宁夏枸杞,黑枸杞,人字拖,特级枸杞,枸杞子。现在用户不想买枸杞了,选择了批量删除,请完成该需求。1.用户可以选购多个商品,可以创建一个ArrayList集合,存储这些商品2.按照需求,如果用户选择了"枸杞"批量删除,应该删除包含"枸杞"的所有元素1)这时应该遍历集合中每一个String类型的元素2)使用String类的方法contains判断字符串中是否包含"枸杞”3)包含就把元素删除。
2026-03-16 20:16:54
340
原创 字符串反转和统计字符串中字符类型及频次
题目要求编写一个 Java 程序,实现字符串反转功能(禁止直接使用 `StringBuilder/reverse()` 等现成的反转方法)。- 输入:一个任意字符串(例如 "HelloWorld")- 输出:反转后的字符串(例如 "dlroWolleH")- 要求:需处理空字符串、纯空格字符串等边界情况。输出结果原字符串:HelloWorld,反转后:dlroWolleH原字符串:Java编程,反转后:程编avaJ。
2026-03-13 08:27:38
55
原创 用户登录和随机验证码案例
需求系统正确的登录名和密码是:shengya/123456,请在控制台开发一个登录界面,接收用户输入的登录名和密码,判断用户是否登录成功,登录成功后展示:“欢迎进入系统!”,即可停止程序(注意:要求最多给用户三次登录机会)分析一下完成案例的步骤:1.首先,从登录界面上可以得出,需要让用户输入登录名和密码2.设计一个登录方法,对用户名和密码进行校验3.调用登录方法,根据方法的返回结果,判断登录是否成功。4.如果登录失败,循环登录3次,结束循环;如果登录成功,跳出循环;
2026-03-11 14:10:34
76
原创 java常用API(String)
Java官方其实已经给我们写好了很多很多类,每一个类中又提供了一系列方法来解决与这个类相关的问题。像这样的类还有很多,Java把这些类是干什么用的、类中的每一个方法是什么含义,编写成了文档,我们把这个文档称之为API文档。不要写重复的程序,因为程序是用来解决问题的,如果这个问题别人已经解决过,并且这个解决方案也得到了市场认可,那就不用再自己重复写这个程序了。
2026-03-10 19:39:04
1411
原创 数组练习题
3. main 方法中定义数组 `{2, 5, 2, 8, 5, 9, 8, 10}`,调用方法。1. 定义方法 `removeDuplicates(int[] arr)`,接收整型数组。- 循环对比元素是否重复,分支判断是否加入新数组;- 遍历数组,筛选出不重复的元素存入新数组;- 输出原数组和去重后的数组。
2026-03-09 20:35:57
45
原创 Java面向对象基础(三)
前面我们定义的Movie类,仅仅只是用来封装每一部电影的信息。为了让电影数据和电影数据的操作相分离,我们还得有一个电影操作类(MovieOperator)。因为系统中有多部电影,所以电影操作类中MovieOperator,需要有一个Movie[]movies;用来存储多部电影对象;同时在MovieOperator类中,对外提供对电影数组进行操作的方法。如printAl1Movies()用于打印数组中所有的电影信息,searchMovieById(int id)方法根据id查找一个电影的信息并打印。
2026-03-08 21:32:47
382
原创 Java面向对象基础(二)
构造器其实是一种特殊的方法,但是这个方法没有返回值类型,方法名必须和类名相同。o 作用:创建对象 Student stu = new Student();o 格式:public class 类名{修饰符类名(参数){功能:主要是完成对象数据的初始化如图。
2026-03-06 21:09:16
49
原创 Java面向对象基础(一)
类的组成是由属性和行为两部分组成属性:在类中通过成员变量来体现(类中方法外的变量)行为:在类中通过成员方法来体现(和前面的方法相比去掉static关键字即可)1定义类2编写类的成员变量3编写类的成员方法/*手机类:类名:手机(Phone)成员变量:品牌(brand)价格(price)成员方法:打电话(cal1)发短信(sendMessage)*///成员变量int price;//成员方法System.out.println("打电话");
2026-03-03 16:22:05
366
原创 轻松计算数组平均分与极值
1)假设学生的个位为n个,那么就需要n个学生的分数,首先可以新建一个长度为n的数组,用来存储每:个学生的分数2)然后在设置循环for遍历数组,定义一个容器将数组中的数在其中相加。3)最后将数组中的数求平均分。
2026-03-02 20:50:39
36
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅