Java第02次实验提纲(Java基本语法与类库)
实验目标
- 加入Gitee高校版,并将IDEA的项目与远程仓库关联
- 进一步熟悉Scanner的使用。
- 熟练掌握IDE常用快捷键
- 掌握常用类(String、Integer、StringBuilder等)及JDK文档的基本使用
- 掌握数组与ArrayList
试验任务书及相关材料
Java第2次实验文件.zip
1. 使用Git管理你的代码
实验目标
- 学会Git管理代码的基本概念
- 将IDEA中的项目与远程仓库相关联
实验前准备
-
阅读推荐阅读-拓展阅读:促进团队合作的代码管理之Git学会一些关于git的基本概念(如,工作区、暂存区、本地仓库、远程仓库、add、commit、push、pull)。掌握了基本概念,在后续的实验步骤中才不会知其然不知其所以然。
-
阅读 https://gitee.com/cyber-security-25/2025001learnjava 仓库中的文档实验1:Gitee 高校版远程仓库创建与 IDEA 项目关联.md完成实验。
实验步骤
- 根据老师提供的链接或者二维码加入团队,然后修改昵称为姓名。
- 进入https://gitee.com/cyber-security-25创建自己的远程仓库
- 在IDEA中新建Java项目
- 在 IDEA 中初始化 Git 本地仓库
- 创建初始 Java 代码文件(如,Main.java)添加(
add)并提交(commit)到本地仓库。 - 将 IDEA 项目与 Gitee 远程仓库关联。
- 注意:需要将本地(local)仓库与远程(remote)仓库关联。
- 远程仓库的地址形如 https://gitee.com/cyber-security-25/20250001.git ,可到网页上的仓库中复制。
- 将项目中的Java代码文件推送(
push)到远程仓库 - 在远程仓库网页端修改Main.java,然后提交。
- 在IDEA中将远程仓库的有修改的文件拉取(pull)下来。
- 在IDEA中按章节创建几个module,然后添加一些 Java 代码文件,尝试提交并推送(
Commit And Push) - 可选:fork老师提供的代码库项目。
重要提示:
使用Git来管理你的代码以后,当你在本地项目中开始编写新的代码之前,一定首先要将远程仓库的最新代码pull到本地仓库,这可以降低冲突发生的可能。
参考链接:
0.推荐阅读-拓展阅读:促进团队合作的代码管理之Git
1.意义-现代软件工程讲义 源代码管理(为什么要用源代码管理)
2.教程-Git与码云(gitee)入门-如何在实验室和宿舍同步你的代码(1)
3.Gitee帮助
4.教程-猴子都能懂得Git入门
5.gitee高校版
2. PTA:题集jmu-Java-02-Java基本语法
本节参考资料:
PTA提交说明
- 代码首行的
package要去掉。 - public class的类名称一定要是
Main。 - 快速测试方法:将样例输入复制到记事本(命令行使用notepad打开),并在最后一行回车换行,然后全选复制(
Ctrl+a,Ctrl+c),粘贴到控制台即可测试。
2.1 综合小测验(重点讲)
对于控制台输入的处理,nextLine()方法与其他nextXXX方法混用会产生吞回车问题。建议全部使用Scanner.nextLine()处理输入以免碰到行尾回车换行问题。
主讲:
- IDEA代码模板:尝试使用
sout、fori、iter、while。快捷键:Alt + Enter(快速修复),Ctrl+F12(查看文件结构)`、 - 使用IDE快速创建代码框架(可利用IDE的"重构-extract"功能针对代码块抽取方法)。
- Eclipse代码片段快捷键
Alt+/,如switch、for、while、sysout、main。 - 使用Eclipse快速创建程序框架(利用Eclipse的quick fix功能快速创建方法)。
- 不要重复创建Scanner对象。
String.split("\\s+")的用法。
其他:缩进, Tab、Shift+Tab。运行, Shift+F10(IDEA),Ctrl+F11(Eclipse)。
注意:
- 如果JDK为1.6版本(最新版PTA已支持1.8),switch不支持字符串。需先将字将String转化为int(早期的PTA 中使用的Open JDK6)
2.2 身份证排序(略讲)
- 主要讲:sort1可直接使用
Arrays.sort,String的subString。 - 采用结构化编程方式,针对
sort1、sort2各写一个方法处理。 - 其他:nextInt()与nextLine()混用可能产生的后果。建议:全部使用
Scanner的nextLine()处理输入以免碰到行尾回车换行问题。
2.3 StringBuilder(自行完成)
使用+进行字符串拼接的弊端
2.4 动态数组(自行完成)
动态生成不规则大小的数组。定义数组时数组第一维需事先确定大小,第二维大小可在程序运行中动态确定。
2.5 ArrayList入门(讲)
2.5.1 略讲:ArrayList的常用方法add(e)、add(index, e)等
使用ArrayList可以代替数组,见如下代码,ArrayList用法请参考JDK文档。
import java.util.ArrayList;
import java.util.List;
public class ArrayListDemo {
public static void main(String[] args) {
// 泛型,Integer
List<Integer> integerList = new ArrayList<>();
integerList.add(1);
integerList.add(new Integer(1));// 和上句效果一样。但有删除线,怎么去掉?
// 1.底下这个for循环输出什么?
for (Integer e : integerList) { // 使用foreach循环遍历ArrayList
System.out.println(e+" ");
}
System.out.println();
// 泛型,String
List<String> strList = new ArrayList<String>();
strList.add(3+"");
strList.add("abc");
strList.add(1, "def");
strList.set(0, "def");//随机存取,设置0号位置的元素
// 2.底下这个for循环输出什么?
for (int i = 0; i < strList.size(); i++) { // 使用size()而不是length获取ArrayList中元素个数
System.out.print(strList.get(i)+" ");
}
System.out.println();
}
}
2.5.2 使用重构快速将代码片段抽取为方法
编程过程中常需使用某些代码片段来进行测试。如上述代码中,常需遍历数组列表。
可将鼠标框选如下代码,右键点击,在Refactor下选择Extract Method,将其抽取为方法。
for (int i = 0; i < strList.size(); i++) {
System.out.print(strList.get(i)+" ");
}
System.out.println();
2.6 浮点数的精确运算(略讲)
浮点数不精确,使用BigDecimal解决。
- BigDecimal对象的构造(以字符串的方式构造)
- 熟悉以面向对象的方式进行各种操作(加减乘除)。
- BigDecimal的不可变性,如何体现?
3. 加分题
实验任务书中的题目2(Math类应用)
特别加分:6(一个实用的身份证信息查询程序)、8(作业随机分配)

浙公网安备 33010602011771号