
JavaSE学习笔记
文章平均质量分 79
记录在学习Java过程中的一些零碎知识点
wrjwww
这个作者很懒,什么都没留下…
展开
-
【JavaSE学习笔记】Lambda表达式(抽象方法无参无返回值、带参无返回值、带参带返回值、Lambda表达式简写形式)
然后定义一个测试类,测试类中有一个主方法main()和一个使用Eatable接口作为形式参数的方法。同时修改测试类EatableDemo中的代码。此时在useEatable方法体中,需要给eat()方法传入两个String类型的参数,并且接收返回值。此时在useEatable方法体中,需要给eat()方法传入String类型的参数。首先对上述Eatable 接口进行改造,在抽象方法的形参中传入一个String类型的参数。对Eatable 接口进行改造,使其抽象方法eat()传入两个字符串,返回字符串类型。原创 2024-11-29 17:11:02 · 446 阅读 · 0 评论 -
【JavaSE学习笔记】Java中 方法引用 改造 Lambda表达式
在使用Lambda表达式时,根据有些参数是通过推到可以省略的,因此可以通过Lambda表达式来简化代码。而有的时候,Lambda表达式代码块中实现的代码功能可能已经存在,为了不重复实现,可以使用方法引用进一步简化代码。方法引用是Lambda表达式的孪生兄弟,为进一步简化Lambda表达式而产生的。(两个英文冒号)原创 2024-11-30 13:03:50 · 440 阅读 · 0 评论 -
【JavaSE学习笔记】Java多线程中的生产者消费者模式案例、唤醒与等待方法使用(wait()/notify())
假设这样一个场景,小美家门口有一个奶箱,小帅暗恋小美,小帅会假扮送奶工每天会送一瓶牛奶放进奶箱,小美每天会从奶箱取出一瓶牛奶饮用。从运行结果来看,小帅总共送了3瓶牛奶,但是小美一直取到的是第3瓶牛奶,第1瓶和第2瓶牛奶不翼而飞了,小帅的好意付诸东流。这是因为在上述代码中,小帅送来了一瓶牛奶,但是小美还没来得及去取,小帅就又生产了一瓶牛奶。针对小帅而言,当奶箱有牛奶时,小帅则不去送牛奶,一直等到小美取出牛奶后,再去送牛奶。针对小美而言,当奶箱没牛奶时,小美则不去取牛奶,一直等到小帅送来牛奶后,再去取牛奶。原创 2024-11-29 15:37:36 · 291 阅读 · 0 评论 -
【JavaSE学习笔记】Java多线程数据安全问题及其解决方法(同步代码块/同步方法/Lock锁)
SellTicket中有一个成员变量tickets表示剩余票数,该类实现了Runnable接口,并重写了run()方法,在run()方法中开始售票,每售一张票,剩余票数减1,直至售罄。这是因为多线程在抢占CPU时具有随机性导致的结果,多个线程同时操作了SellTicket类中的tickets成员变量,这个变量为三个线程共享的数据,满足产生数据安全的三个条件。需要注意的是,这里传入任意对象时不能new对象传入,这是因为每次执行到这里,都会新建一个对象作为锁,对象不同代表锁不同,因此是锁不住的。原创 2024-11-29 12:57:56 · 340 阅读 · 0 评论 -
【JavaSE学习笔记】Java多线程实现以及基本使用(继承Thread类、实现Runnable接口)
并不是等一个线程中的run()方法执行完再执行另一个,实现了多线程效果。Thread类提供了获取当前线程对象的方法currentThread(),该方法返回当前线程对象,然后通过调用getName()方法就可以获取当前线程的线程名。在上述创建线程时,调用的都是无参构造方法,但Thread类提供了有参构造方法,可以直接在创建Thread对象时起别名。多线程的执行需要争夺CPU时间片资源,而在Java中,会给每个线程设置优先级,以赋予不同线程争夺CPU资源的能力。run()方法用来封装被线程执行的代码。原创 2024-11-28 20:02:51 · 989 阅读 · 0 评论 -
【JavaSE学习笔记】异常处理以及自定义异常
自定义异常需要自定义一个异常类,并继承某一个异常类。这里用编译时异常Exception举例。public class 自定义异常类名 extends Exception {// 无参构造方法// 带参构造方法范例:定义一个判断分数是否超出范围的异常类,该类继承自Exception类。再定义一个教师类,这个类中有一个检查分数范围的方法,假设正常的分数落在区间[0, 100]。当分数超出范围时,该方法会抛出异常,throw new ScoreException("分数有误");原创 2024-11-28 11:49:12 · 923 阅读 · 0 评论 -
【JavaSE学习笔记】权限修饰符(private、default、protected、public)与状态修饰符(final、static)
类,成员方法,成员变量使用不同的权限修饰符进行修饰,他们的访问权限也会不同。作用范围从小到大依次为private原创 2024-11-27 16:06:43 · 504 阅读 · 0 评论 -
【JavaSE学习笔记】ArrayList类的常用方法及其遍历
ArrayList特点:底层数据结构是数组,查询快,增删慢,ArrayList内的元素可重复。原创 2024-11-27 14:47:58 · 493 阅读 · 0 评论 -
【JavaSE学习笔记】Java中String、StringBuffer、StringBuilder之间的区别与常用方法
System.out.println("字符 " + ch + " 在字符串中首次出现的索引为:" + str.indexOf(ch));System.out.println("字符 " + ch + " 在字符串中最后一次出现的索引为:" + str.lastIndexOf(ch));// 运行结果// 字符 a 在字符串中首次出现的索引为:0// 字符 a 在字符串中最后一次出现的索引为:5。原创 2024-11-27 11:18:51 · 194 阅读 · 0 评论 -
【JavaSE学习笔记】Java数组的常见操作
数组是Java中使用较频繁的一种数据结构。下面将从数组的定义格式、数组的初始化、遍历数组、以及常见问题进行介绍。格式1:数据类型[] 变量名(推荐)格式2:数据类型 变量名[](不推荐)// 格式1:数据类型[] 变量名int[] arr1;// 格式2:数据类型 变量名[]int arr2[];原创 2024-11-26 15:46:36 · 251 阅读 · 0 评论 -
【JavaSE学习笔记】IDEA中常用快捷键
在选中多行代码时,按下“Ctrl+/”则注释多行代码。在使用时不需要选中每行的完整内容,只需要选中部分包含要注释的行就行。在编写Java代码时,最常使用的编辑工具当属IDEA,而IDEA为开发者提供了大量的快捷键,以提高开发效率。“Ctrl + Shift + /”只会注释选中部分的代码,不会注释未选中的代码。鼠标点击爆红位置,按下“Alt + Enter”,选择要导入的包,再按“Enter”键确认导入。:生成输出语句,同时增加了输出内容,前提条件是已经准备好了要输出的对象。:删除选中行的代码。原创 2024-11-26 15:04:00 · 836 阅读 · 0 评论