- 博客(43)
- 收藏
- 关注
原创 集合进阶(Map集合):
所有键是不允许重复的,值可以重复,键和值是一一对应的,每一个键只能找到自己对应的值。写一个Map集合,保存几个键值对,体验一下Map集合的特点// 一行经典代码。按照键: 无序,不重复,无索引。// 特点: 有序,不重复,无索引。map.put("手表", 100);map.put("手表", 220);// 后面重复的数据会覆盖前面的数据(键)map.put("手机", 2);// 可排序,不重复,无索引map1.put(19, "李四");
2026-05-14 21:00:40
457
原创 斗地主案例:
- 点数可以是:`"3","4","5","6","7","8","9","10","J","Q","K","A","2"`- 点数可以是:`"3","4","5","6","7","8","9","10","J","Q","K","A","2"`// return o2.getSize() - o1.getSize();System.out.println("底牌:" + lastThreeCards);System.out.println("新牌:" + allCards);
2026-05-13 20:39:00
542
原创 List系列集合:
LinkedList集合是基于双向链表实现了,为什么它会对首尾元素进行增删改查的速度是极快的,因为双向链表是有头结点地址和尾结点地址, 通过头结点地址和尾结点地址可以快速的找到第一个元素和最后一个元素,那么在头和尾节点进行增删速度肯定是极快的,比如在尾结点后加一个元素,让尾结点指向新加的元素,那么新加的元素就是尾结点,头结点同理可知,如果删除尾结点,尾结点一旦删除倒数第二个就是尾结点,所以说首尾元素进行增删改查的速度是极快的,但是对中间的数据还是需要找到对应节点位置才可以操作。或者数据量不是很大时!
2026-05-12 20:22:08
773
原创 集合进阶(Collection、List集合)
总结:1. 单列集合的代表是谁?双列集合的代表是谁?2. Collection集合有哪两大常用的集合体系,各自有啥特点?List系列集合:添加的元素是有序、可重复、有索引。Set系列集合:添加的元素是无序、不重复、无索引。
2026-05-11 21:01:19
704
原创 题目三:使用接口定义规范,实现类完成具体逻辑
Skillstudy()StudentProgrammerSkillstudy()study()学生在学习文化课程序员在学习编程。
2026-05-07 16:57:28
314
原创 常用API(二):
先学习表示日期、时间、日期时间的类;有LocalDate、LocalTime、以及LocalDateTime类。仔细阅读代码,你会发现这三个类的用法套路都是一样的。新增的Instant类,可以精确到纳秒,并且是不可变对象,推荐用Instant代替Date。LocalDateTime:代表本地日期、时间(年、月、日、星期、时、分、秒、纳秒)传统的Date类,只能精确到毫秒,并且是可变对象;LocalDate:代表本地日期(年、月、日、星期)LocalTime:代表本地时间(时、分、秒、纳秒)
2026-04-23 13:44:21
576
原创 常用API(二):
在进行数值的运算时,BigDecimal会根据操作的类型和需要的精度,对两个数值进行相应的运算,例如加法、减法、乘法和除法。通常情况下,数组的每个元素表示一组十进制数的位数,例如,数组的第一个元素表示最低位,第二个元素表示十位,以此类推。为了解决计算精度损失的问题,Java给我们提供了BigDecimal类,它提供了一些方法可以对数据进行四则运算,而且不丢失精度,同时还可以保留指定的小数位。"2022-12-12 12:12:12" 的格式是 "yyyy-MM-dd HH:mm:ss"
2026-04-22 19:17:24
740
原创 常用API:
/ 返回的是long类型的时间毫秒值:指的是从1970-1-1 0:0:0开始走到此刻的总的毫秒值,1s = 1000ms。// 7、public static double random(): 取随机数 [0.0 , 1.0) (包前不包后)// 6、 public static double pow(double a, double b):取次方。//结果为: java1,java2,java3。// 5、public static int max(int a, int b):取较大值。
2026-04-21 20:56:48
590
原创 常用API:
为什么对于字符串相关的操作,如频繁的拼接、修改等,建议用StringBuidler?String:是不可变字符串、频繁操作字符串会产生很多无用对象,性能差。StringBuilder:是内容可变的字符串、拼接字符串性能好、代码优雅。注意:如果操作字符串较少,或者不需要操作,以及定义字符串时,则用String。
2026-04-20 14:03:15
819
原创 常用API:
返回对象的字符串表示形式。默认的格式是:“包名.类名@哈希值16进制”【子类重写后,返回对象的属性值】判断此对象与参数对象是否"相等"。默认比较对象的地址值,和"=="没有区别【子类重写后,比较对象的属性值】2.3 clone() 方法(了解)接下来,我们学习Object类的clone()方法,克隆。意思就是某一个对象调用这个方法,这个方法会复制一个一模一样的新对象,并返回。当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回。
2026-04-19 19:08:43
500
原创 面向对象高级(枚举&泛型)
自定义泛型类的格式如下//这里的<T,W>其实指的就是类型变量,可以是一个,也可以是多个。修饰符 class 类名<类型变量, 类型变量>{注意:类型变量建议用大写的英文字母,常用的有:E、T、K、V 等泛型接口其实指的是在接口中把不确定的数据类型用<类型变量>表示。定义格式如下://这里的类型变量,一般是一个字母,比如<E>修饰符 interface 接口名<类型变量, 类型变量, ...>{
2026-04-16 13:41:13
573
原创 面向对象高级(内部类)
内部类是类中的五大成分之一(成员变量、方法、构造器、内部类、代码块),如果一个类定义在另一个类的内部,这个类就是内部类。当一个类的内部,包含一个完整的事物,且这个事物没有必要单独设计时,就可以把这个事物设计成内部类。
2026-04-15 20:06:30
555
原创 面向对象高级(接口)
2. 原来接口的抽象方法, 实现类需要将抽象方法全部重写(如果有一天老板需要把功能增强, 如果有一百个实现类, 只要接口中添加一个抽象方法, 这一百个实现类都要重写接口的方法, 这样是项目维护的成本就比较大了). 现在接口是允许写方法体的方法, 那就意味着我定义一个默认的方法, 然后在接口的这个方法中把功能完成, 那这一百个实现类直接用这个默认的方法就可以了, 而不需要再重写方法, 这样要扩展系统的功能就很方便了;B类作为A接口的实现类,只需要重写抽象方法就可以了,对于默认方法不需要子类重写。
2026-04-14 19:32:24
700
原创 案例二:交通工具调度系统(核心:继承 + 多态 + final + 方法重写)
System.out.println(name + "小汽车在公路行驶,最高时速120km/h");System.out.println(name + "公交车在专用车道行驶,承载乘客");System.out.println("交通工具牌照统一由交通局颁发");System.out.println("交通工具在运行");vehicles.add(new Car("特斯拉"));vehicles.add(new Bus("宇通"));特斯拉小汽车在公路行驶,最高时速120km/h。方法实现不同运行逻辑;
2026-04-09 16:57:12
578
原创 案例一:员工薪资管理系统(核心:抽象类 + 继承 + 多态 + static)
System.out.println("公司:" + Employee.getCompanyName() + "|" + "工号:" + emp.id + "|" + "姓名:" + emp.name。+ "|" + "薪资:" + emp.caluateSalary());Employee.setCompanyName("互联网科技公司");公司:互联网科技公司 | 工号:1001 | 姓名:张三 | 薪资:8000.0。公司:互联网科技公司 | 工号:1002 | 姓名:李四 | 薪资:5000.0。
2026-04-08 13:57:45
749
原创 面向对象高级(final关键字):
多个类中只要有重复代码(包括相同的方法签名),我们都应该抽取到父类中去,此时,父类中就有可能存在只有方法签名的方法,这时,父类必定是一个抽象类了,我们抽出这样的抽象类,就是为了更好的支持多态。2.反过来用,我们不知道系统未来具体的业务实现时,我们可以先定义抽象类,将来让子类去实现,以方便系统的扩展。1.用抽象类可以把父类中相同的代码,包括方法声明都抽取到父类,这样能更好的支持多态,一提高代码的灵活性。System.out.println(getName() + "喵喵喵的叫~~");
2026-04-07 19:47:36
608
原创 面向对象高级(多态)
什么是多态?多态是在继承/实现情况下的一种现象,表现为:对象多态、行为多态。注意:多态的前提: 有继承/实现关系;存在父类引用子类对象;存在方法重写。多态的一个注意事项: 多态是对象、行为的多态,Java中的属性(成员变量)不谈多态。
2026-04-06 20:01:57
673
原创 Sting类基础题目:
System.out.println("反转后的结果:"+reversal);System.out.println("大写字母:"+upper);System.out.println("小写字母:"+lower);System.out.println("其他字母:"+other);System.out.println("数字:"+digit);System.out.println("空格:"+space);System.out.println("原数组:"+arr);
2026-04-05 21:01:21
391
原创 面向对象高级 继承(extends):
当子类觉得父类方法不好用,或者无法满足父类需求时,子类可以重写一个方法名称、参数列表一样的方法,去覆盖父类的这个方法,这就是方法重写。
2026-04-02 20:25:37
669
原创 生成指定长度的随机验证码,并让用户输入验证码进行验证:
/随机生成验证码System.out.println("验证码:"+code);//判断验证码是否一致if (judge){//返回true结束循环break;//判断验证码是否正确if (cd.equalsIgnoreCase(code)){//正确返回true 否则就是false//随机验证码//定义变量接收随机验证码//定义全部可能出现的字符数字//创建随机数对象。
2026-04-01 20:16:47
502
原创 面向对象高级(static)
如果一个类中的方法全都是静态的,那么这个类中的方法就全都可以被类名直接调用,由于调用起来非常方便,就像一个工具一样,所以把这样的类就叫做工具类。第二步:再写一个测试类,再测试类中创建4个User对象,再打印number的值,观察number的值是否再自增。//这里先把所有的字符写成一个字符串,一会从字符串中随机找字符。//4.把获取到的字符,拼接到code验证码字符串上。类,在用户类中定义一个static修饰的变量,用来表示在线人数;运行上面的代码,查看执行结果是:系统创建的User对象个数:4。
2026-03-31 20:16:49
799
原创 控制台版学生成绩管理系统:
System.out.println("\n===== 操作菜单 =====");System.out.println("3. 退出登录");System.out.println("\n===== 学生成绩管理系统 =====");System.out.println("总分:" + totalScore);System.out.println("性别:" + gender);System.out.println("1. 学生登录");System.out.println("姓名:" + name);
2026-03-30 20:33:03
803
原创 Java基础项目:ATM系统
System.out.println("恭喜您," + account1.getUserName() + "登陆成功,您的卡号是:" + account1.getCardId());System.out.println("恭喜您," + account1.getUserName() + "开户成功!System.out.println("每次最多可取:" + login.getLimit() + "元");System.out.println("请您输入【" + name + "】的姓氏:");
2026-03-24 16:50:36
656
原创 Java基础项目(会员卡充值):
System.out.println("恭喜您," + top.getName() + "登陆成功,您的卡号是:" + top.getNumber());System.out.println(login.getName() + "您可以选择如下功能进行账户的处理===");System.out.println("恭喜您充值成功!System.out.println("卡号:" + login.getNumber());System.out.println("姓名:" + login.getName());
2026-03-23 19:07:25
618
原创 题目要求编写一个 Java 程序,实现字符串反转功能
System.out.println("原字符串是:" + str1 + ",反转后的字符串是:" + reverseStr(str1));System.out.println("大写字母:"+upper);System.out.println("小写字母:"+lower);System.out.println("其他字母:"+other);System.out.println("数字:"+digit);System.out.println("空格:"+space);
2026-03-22 20:22:20
507
原创 Java基础项目(ATM系统一)
System.out.println("恭喜您," + acc.getUserName() + "登录成功,您的卡号是:" + acc.getCardId() );System.out.println("恭喜您," + acc.getUserName() + "开户成功,您的卡号是:" + acc.getCardId());System.out.println("=====欢迎您进入到了ATM系统====");System.out.println("===系统用户开户操作===");
2026-03-19 16:59:03
715
原创 ArrayList之模仿电影系统综合案例:
System.out.println("电影描述信息:" + movie.getInfo());System.out.println("请输入您要下架的电影id:");System.out.println("======请输入您要添加的电影信息======");System.out.println("======欢迎进入后台管理系统======");System.out.println("=====该电影信息如下=====");System.out.println("====全部电影信息如下====");
2026-03-18 11:04:04
761
原创 Java常用API之String类:
ArrayList<E>:其实就是一个泛型类,可以在编译阶段约束集合对象只能操作某种数据类型。举例:ArrayList<String>:此集合只能操作字符串类型的元素。ArrayList<Integer>:此集合只能操作整数类型的元素。注意:集合中只能存储引用类型,不支持基本数据类型。怎么去统一ArrayList集合操作的元素类型?使用泛型:<数据类型>
2026-03-17 15:21:11
607
原创 ArrayList之模仿外卖系统综合案例:
System.out.println("菜品优惠价:" + food.getSpecialPrice());System.out.println("菜品原价:" + food.getOrginalPrice());System.out.println("菜品优惠价:" + food.getSpecialPrice());System.out.println("菜品id:" + food.getId());System.out.println("菜品id:" + food.getId());
2026-03-16 15:03:29
637
1
原创 ArrayList案例:掌握从容器中找出某些数据并成功删除的技巧
if (ele.contains("草莓")){list.add("咸蛋黄冰淇淋");list.add("草莓冰淇淋");//从集合中找出包含草莓的数据并删除。list.add("草莓蛋糕");list.add("蓝莓布丁");list.add("香草蛋糕");//取出当前遍历的数组。
2026-03-13 16:16:05
274
3
原创 面向对象综合案例:
首先每一部电影,都包含这部电影的相关信息,比如:电影的编号(id)、电影的名称(name)、电影的价格(price)、电影的分数(score)、电影的导演(director)、电影的主演(actor)、电影的简介(info)。为了去描述每一部电影,设计一个电影类(Movie),电影类仅仅只是为了封装电影的信息,所以按照JavaBean类的标准写法来写就行。前面定义的Movie类只是用来封装每一部电影的信息,为了让电影数据和电影数据的操作相分离,我们还得有一个电影操作类(MovieOperator)。
2026-03-11 15:51:37
642
1
原创 String案例一:用户登录案例
在createCode方法中,接收 “位数” 参数,通过 “随机索引 + 字符拼接” 生成指定位数的验证码,返回字符串结果。在checkCode方法中,接收 “系统生成的验证码” 和 “用户输入的验证码”,对比内容是否一致,返回布尔值表示结果。System.out.println("生成的验证码是:" + generateCode);System.out.println("请输入验证码:");System.out.println("请输入验证码:");//1.设计一个方法,返回制定位数的验证码。
2026-03-10 17:24:54
675
原创 Java面向对象基础(一):
System.out.println("这辆" + color + "的" + brand + model + "的价格是" + price + " 元");System.out.println(name + "的" + "学号是" + student_id + "," + "考试成绩是:" + score);System.out.println("书名:" + title + "," + "出版社:" + publisher + "价格:" + price);
2026-03-09 20:04:22
552
原创 数组元素去重(综合应用):
其次,去重后的结果只需要在控制台输出,所以不需要设置返回值,返回值类型为。//内层循环:对比当前元素与临时数组中已经存入的数据。//用来记录新数组下标。首先,方法接收需要数据处理,所以需要一个参数用来接收处理的数组。//标记当前元素是否重复(默认不重复)//找出重复元素跳出循环。//外层循环:遍历原数组的每个元素。//若没有重复则加入新数组。循环对比元素是否重复,分支判断是否加入新数组;遍历数组,筛选出不重复的元素存入新数组;//打印去重后的数组。方法,触发数组去重和结果的打印。输出原数组和去重后的数组。
2026-03-07 15:50:57
356
原创 成绩等级评定(多分支 + 方法):
System.out.println("成绩" + scores + ":" + grade);System.out.println("成绩:" + scores +"等级无效成绩");要求处理成绩超出 0-100 的异常情况,输出 “成绩 XX:无效成绩”。grade = "等级B";grade = "等级C";grade = "等级D";grade = "等级E";输出每个成绩对应的等级(格式:“成绩 85:等级 B”)。grade = "等级A";,接收成绩数组(0-100)。
2026-03-06 13:38:51
190
原创 数组元素逆序输出(方法封装)
调用reverseArrary()方法,触发数组逆序和逆序结果的打印。System.out.println("逆序后:["+ arr[0] + "]");System.out.println("逆序后:[]");定义一个临时变量temp交换arr[i]和arr[j]的值,实现数组元素逆序;System.out.print("原数组:[");System.out.print("原数组:[");System.out.print("逆序后:[");分支判断数组为空 / 长度为 1 的情况,直接输出原数组;
2026-03-05 20:29:44
189
原创 数组最值查找(方法返回值)
System.out.println("最大值:" + max + ","+"最小值:" + min);1.分析两个方法均需要接收待处理的整型数组,且需要返回找到的最值(整型),因此方法参数为。2.在main方法中定义测试数组,调用findMax和FindMin方法获取返回值。输出 “最大值:XX,最小值:XX”,要求循环遍历数组比较,分支结构判断大小。,作为 “初始最小值”;② 返回结果:循环结束后返回。,作为 “初始最大值”;,说明找到更小的元素,更新。,说明找到更大的元素,将。:返回数组中的最小值。
2026-03-03 16:50:16
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅