20155314 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉(macOS + IDEA)
20155314 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉(macOS + IDEA)
实验内容
-
使用JDK编译、运行简单的Java程序;
-
使用IDEA 编辑、编译、运行、调试Java程序。
实验知识点
-
JVM、JRE、JDK的安装位置与区别;
-
命令行运行
javac
;java
;javac -cp
;java -cp
; -
PATH,CLASSPATH,SOURCEPATH的设定方法与应用;
-
包管理:
package
;import
;javac -d
; -
IDEA管理Java项目,调试:断点、单步执行等;
-
Java基础语法:类型与类型转换;变量;运算符;流程控制等;
-
JDK帮助文档的使用。
实验步骤
(一)macOS终端命令行下Java程序开发
- 步骤一:在终端中新建实验目录
- 按快捷键
contrl + alt + T
打开macOS终端 - 输入
cd Code
命令,发现进入Code
目录失败,原因是Code
目录根本不存在(什么嘛你们之前早都建好的怎么不说一声>_<)于是输入mkdir Code
命令新建Code
目录再cd Code
一下进入就好啦~ - 输入
mkdir 20155314test
建立以我学号命名的实验目录 - 输入
cd 20155314test
进入实验目录 - 输入
mkdir exp1
建立第一个实验目录 - 输入
cd exp1
进入实验一目录 - 输入
pwd
命令查看当前工作路径,如下图所示:
- 按快捷键
- 步骤二:vim下编译、运行Java程序
-
输入
vim Hello.java
编辑Hello.java,按下i
并输入以下代码:import java.util.Scanner; public class Hello{ public static void main(String[] args){ System.out.println("Input your first name, please:"); Scanner s = new Scanner(System.in); String name = s.next(); System.out.println("Hello " + name + " !"); } }
-
-
然后按
esc
退出编辑模式,再按:
输入wq
后回车保存并退出~注意代码第一行,我们使用到Java类库中的类时,要用import导入相关的类(可以暂时理解为C语言中include的功能),导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类,路径见下图中红框:
- 输入
javac -d . Hello.java
命令编译代码,输入java Hello命令运行程序。结果如下图所示:
诶?!什么情况?居然编译错误啦(>_<)好在终端指出了错误之处:结尾处多了一个}
(???) - 再次输入
vim Hello.java
回头查看刚才编写的代码,仔细一看果然少打了一个}
~😂😂
看来还是不细心啊咳咳( ̀⌄ ́) - 再次输入
javac -d . Hello.java
命令编译代码,回车后没有任何提示说明编译通过~ - 输入
java Hello
命令运行,这回终于成功啦~输入name:Liuzijian后回车输出Hello Liuzijian ! (>_<)
- 输入
(二)IDEA下Java程序开发、调试
- 步骤一:在IDEA中新建Java程序
-
macOS下打开IDEA:
-
新建Java项目「CrazymosquitoJDB」:
-
进入该项目:
-
新建「HelloJDB」类,输入如下代码:
public class HelloJDB { public static void main(String[] args) { int i = 5; int j = 6; int sum = add(i, j); System.out.println(sum); sum = 0; for(i=0; i< 100; i++) sum += i; System.out.println(sum); } public static int add(int augend, int addend){ int sum = augend + addend; return sum; } }
睁大眼睛仔细瞅了很多遍,嗯,这回没毛病!😂😂
-
- 步骤二:调试
- 设置断点:在需要设置断点的一行左侧灰色区域单击鼠标,出现红色圆点,比如我想在第8行设置断点:
- 开始调试:按
ctrl + alt + R
快捷键或在上方菜单栏Run
里点击Debug...
进行单步调试,如下图:
或
调试结果在IDEA下方显示:
- 设置条件断点:在设置好的断点(红色圆点)上右击,在Condition一框里设置条件“i==50”,如下图所示:
- 再次
Debug
,得到调试结果如下:
- 设置断点:在需要设置断点的一行左侧灰色区域单击鼠标,出现红色圆点,比如我想在第8行设置断点:
(三)练习(通过命令行和IDEA两种方式实现,自己的学号后两位与题目总数取余的结果再加上1就是自己要完成的题号,在IDEA下练习调试程序)
- 实现求正整数1-N之间所有质数的功能,并进行测试。
-
代码:
import java.util.Scanner; public class PrimeNumber { public static int[] getPrimeNumber(int n){ int[] retArr=new int[n]; boolean isPrime; //isPrime作为当前这个数是否为质数的标记位 for(int i=2;i<n;i++){ isPrime=true; for(int j=2;j<i;j++){ if(i%j==0){ isPrime=false; break; } } if(isPrime){ retArr[i]=i; } } return retArr; } public static void main(String[] args) { Scanner n=new Scanner(System.in); System.out.print("请输入一个整数:"); int[] retArr=getPrimeNumber(n.nextInt()); for(int i=0;i<retArr.length;i++){ if(retArr[i] !=0){ System.out.println(retArr[i]); } } } }
-
测试:
-
实验过程中遇到的问题
- 关于macOS下vim的问题
- 关于IDEA条件断点报错(Breakpoint Condition Error)的问题
实验体会与总结
“实践是检验认识真理性的唯一标准。”
第一次实验看上去虽然比较简单,但是自己真正按要求走一遍下来还是出现不少问题的,比如对macOS下Vim使用方法不熟悉、终端命令行下使用Vim写代码由于粗心导致花括号不匹配的问题以及IDEA中单步调试设置条件断点时误将判断相等的条件==
(boolean
型)打成了赋值号=
导致错误等等,全部解决上述问题还是有很大收获的(。ì _ í。)
“自己动手,丰衣足食。”
本次Java实验让我更切身感受到动手实践的重要性,避免眼高手低,勤于动手、热衷实践才是学好一切的王道。
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 6min | 6.5% |
设计 | 20min | 21.7% |
代码实现 | 25min | 27.2% |
测试 | 11min | 12.0% |
分析总结 | 30min | 32.6% |