“你好,士兵!”
“你好,船长!”
“我有一些好消息要告诉你。这里有几道练习题,可以增强你的技能。每天练习练习,你的技能会得到飞速进步。它们是专门针对 IntelliJ IDEA 创建的。”
18
任务
Java 核心, 第 7 级, 课程 10
CRUD
CrUD:创建、更新、删除。
程序使用以下参数集之一运行:
-c 姓名 性别 生日
-u id 姓名 性别 生日
-d id
-i id
参数值:
姓名 (String)
性别(“m”或“f”)
生日(生日采用以下格式:“04 15 1990”)
-c(将具有指定参数的人员添加到 allPeople 的末尾;在屏幕上显示 id)
-u(更新具有指定 id 的人员数据)
-d(对具有指定 id 的人员执行逻辑删除;将其所有数据替换为 null)
-i(显示具有指定 id 的人员的信息:姓名 性别 (m/f) 生日 (格式 Apr 15 1990))
id 与列表中的索引相对应。
所有人员都应存储
18
任务
Java 核心, 第 7 级, 课程 10
CRUD 2
批处理 CrUD: 多个创建、更新、删除。
程序使用以下参数集之一运行:
-c 姓名1 性别1 生日1 姓名2 性别2 生日2 ...
-u id1 姓名1 性别1 生日1 id2 姓名2 性别2 生日2 ...
-d id1 id2 id3 id4 ...
-i id1 id2 id3 id4 ...
参数值:
姓名 (String)
性别(“m”或“f”)
生日(生日采用以下格式:04 15 1990)
-c(将具有指定参数的所有人员添加到 allPeople 的末尾;以相应的顺序显示其 id)
-u(更新具有指定 id 的人员的相应数据)
-d(对具有指定 id 的人员执行逻辑删除;将
18
任务
Java 核心, 第 7 级, 课程 10
餐厅
1.弄明白程序的功能。出于某种原因,服务员没有将准备好的菜肴端到餐桌上 :(
2.请修复错误。
提示:一行有错
18
任务
Java 核心, 第 7 级, 课程 10
共享列表
1.更改 Solution 类,让其成为列表。(它必须实现 java.util.List 接口)。
2.Solution 列表只应使用 Longs。
3.使用 original 字段。
4.此列表将由 threads 使用,因此你需要确保所有的方法都是 synchronized。
9
任务
Java 核心, 第 7 级, 课程 10
Comparable
在 Beach 类中实现 Comparable<Beach> 接口。Beaches 将由 threads 使用,因此你需要确保所有的方法都是 synchronized。
实现 compareTo 方法,当两个海滩 (beach) 在比较时,如果第一个海滩较好,该方法返回正数,
如果第二个海滩较好,该方法返回负数。数字的大小表示海滩有多好。
18
任务
Java 核心, 第 7 级, 课程 10
Pharmacy(药房)
在 Pharmacy 和 Person 类中实现 Runnable 接口。
所有线程都应运行到 isStopped 为 true 为止。
这是 Pharmacy 类的逻辑:drugController 应随机购买(调用 void buy(Drug drug, int count) 方法)随机数量 (getRandomCount) 的随机药品 (getRandomDrug) 并等待 300 毫秒。
这是 Person 类的逻辑:drugController 应随机销售(调用 void sell(Drug drug, int count) 方法)随机数量 (getRandomCount) 的随机药
5
任务
Java 核心, 第 7 级, 课程 10
同步的方法
仅在需要的方法中设置 synchronized 修饰符。
Solution 对象将由线程使用。
9
任务
Java 核心, 第 7 级, 课程 10
多余的同步
synchronized 关键字会大幅拖累程序的运行速度,因此在方法中删除不需要的 synchronized 语句。
5
任务
Java 核心, 第 7 级, 课程 10
熨衣服
回到日常生活...
添加一个 synchronized 关键字,让戴安娜和史蒂夫轮流熨烫衣服,因为只有一个熨斗!
提示:
使用类级锁定。
5
任务
Java 核心, 第 7 级, 课程 10
ApplicationContext
ApplicationContext 类将由许多线程访问。
确保没有丢失数据:想想将放置哪个关键字以及放在哪里。
“以前的练习题是针对新手的。我为老学员添加了一些更高级的奖励练习题。只为老学员提供哦。”
9
任务
Java 核心, 第 7 级, 课程 10
ATM
弄明白程序是如何工作的。
在测试期间,发现日志包含下列内容:
.....
存款 100,帐户余额 1100
存款 100,帐户余额 1200
支取 1000,帐户余额 100
金额不足
.....
这是一个错误:
借记账户时,金额会损失。
请找到并修复该错误。
18
任务
Java 核心, 第 7 级, 课程 10
事务性
让 joinData 方法成为事务性方法,即如果该方法失败,则数据不得更改。
1.从控制台读取 2 个文件名。
2.逐行从文件中读取。将第一个文件的内容读取到 allLines,将第二个文件的内容读取到 linesForRemoval。
在 joinData 方法中:
3.如果 allLines 列表包含 linesForRemoval 中的所有行,则从 allLines 列表中删除 linesForRemoval 中存在的所有含行。
4.如果项目 3 中的条件未得到满足,则:
4.1. 清除 allLines 中的数据
4.2. 抛出 CorruptedDataException
joinD
9
任务
Java 核心, 第 7 级, 课程 10
我们来计数
1.进行计数以便针对数组的所有元素计算结果,不使用 main(String[] args) 方法中的 Thread.sleep。
2.更正 synchronized 块,以便使用 1 填充 values 数组。