20165202 实验一 Java开发环境的熟悉
一、实验内容及步骤
(一)使用JDK编译、运行简单的Java程序
建立“自己学号exp1”的目录
mkdir 20165202exp1进入目录
cd 20165202exp1在“自己学号exp1”目录下建立src,bin等目录
mkdir binmkdir srcvim编辑代码
vi Hello.java
javac,java的执行在“自己学号exp1”目录
javac -d bin src/Hello.java运行程序
java Hello
运行截图

(二)使用IDEA编辑、编译、运行、调试Java程序
设置断点只需在要设置断点的行号旁用鼠标单击一下即可使用。使用
Alt+Shift+F9快捷键调试Java程序
单步运行有两种:
Step Into(快捷捷F7)和Step Over(快捷捷F8)实际使用中我们优先使用Step Over,只有方法执行出错了,说明程序问题在被调用方法中,这时再回来通过Step Into进入方法进行调试。临时断点:最简单的方法是把光标移到要添加断点的行,使用菜单「Run」->「Toggle Temporary Line Breakpoint」或使用快捷键
Ctrl+Alt+Shift+F8
条件断点: 在第9行左边断点处单击鼠标右键,弹出断点属性框,我们设置条件“i==50”

方法断点:把光标移到方法中的任一行,使用菜单「Run」->「Toggle Method Breakpoint

(三)练习(通过命令行和IDEA两种方式实现,并使用IDEA进行调试)
实现Fibonacci数列功能,并进行测试(正常情况,异常情况,边界情况)
- 程序代码
1 import java.util.Scanner;
2
3 public class fibonacci {
4
5 public static void main(String[] args) {
6
7 Scanner scanner = new Scanner(System.in);
8
9 System.out.println("请输入一个整数:");
10
11 int n = scanner.nextInt();
12
13 System.out.println("fibonacci数列为:");
14 if(n<=0) {
15 System.out.println("非法输入");
16 }
17 else {
18 for (int j = 1; j <= n; j++) {
19
20 System.out.println(" a["+j+"] = "+fibonacci(j));
21
22 }
23 }
24 scanner.close();
25
26 }
27
28 private static int fibonacci(int i) {
29
30 if (i == 1 || i == 2){
31
32 return 1;
33
34 }else{
35
36 return fibonacci(i - 1) + fibonacci(i - 2);
37
38 }
39
40 }
41
42 }
命令行运行:
(1)正常情况

(2)异常情况

(3)边界情况

IDEA运行:
(1)正常情况

(2)异常情况

(3)边界情况

IDEA调试
单步调试:在第6、9行设置断点

方法断点:在第4、23行设置断点

二、实验过程中遇到的问题
开始写练习代码Fibonacci实现时错误理解了题意,输出值为对应数字下的F函数

后来只能输出固定前n项(例如20),结合之前学习的Scanner这一用法
System.out.println("请输入一个整数:");
int n = scanner.nextInt();
通过调用解决了无法通过输入改变n的问题
三、实验体会与总结
统计PSP(Personal Software Process)时间:
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 2min | 2.5% |
| 设计 | 8min | 10% |
| 代码实现 | 25min | 31.25% |
| 测试 | 5min | 6.25% |
| 分析总结 | 40min | 50% |
个人总结
本次实验内容较为基础,主要考察java开发环境的熟悉和一些基本操作。编程有一套完整的流程:分析需求、设计、代码实现、测试、总结,这也是我们今后编程的一个基本框架。在试验过程中学习掌握了idea的相关用法,确实比vim命令行要好用一些,调试过程的显示更加清晰。每周敲入课本代码只是最基本的一项工作,在实际应用中我发现还需要结合更多的思考理解才能真正“学会应用”,不能机械地“为了敲代码而敲”。
20165202 实验一 Java开发环境的熟悉的更多相关文章
- 20145205 实验一 Java开发环境的熟悉
实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...
- 实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)
20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...
- 20145208实验一 Java开发环境的熟悉
20145208实验一 Java开发环境的熟悉 使用JDK编译.运行简单的java程序 命令行下程序开发 在命令行下建立实验目录,然后创建并进入该目录后的子目录. 编译并运行一个代码 使用IDEA 编 ...
- 实验一 Java开发环境的熟悉(Linux + Eclipse)
学号 20175206 实验一 <Java开发环境的熟悉>实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实 ...
- 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然
https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...
- 2018-2019-2 实验一 Java开发环境的熟悉
实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编辑.编译.运行.调试Java程序 实验知识点 1. JVM.JRE.JDK的安装位置与区别: 2. 命令行运行javac:ja ...
随机推荐
- 制作RPM包
RPM包制作过程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象 ...
- hadoop cgroup+container配置
配置container-executor.cfg vim etc/hadoop/container-executor.cfg yarn.nodemanager.linux-container-exec ...
- 20145329 《Java程序设计》实验二总结
实验指导教师:娄嘉鹏老师 实验日期:2016.4.12 实验时间:15:30~17:30 实验序号:实验二 实验名称:Java面向对象程序设计 实验目的与要求: 1.初步掌握单元测试和TDD 2.理解 ...
- let与const心智模型
let 与 const 心智模型: let与const分别是变量与常量的块级声明关键字: 其主要目的是为了约束开发者编写出逻辑更加清晰,阅读性更好的代码: 它们体现了JavaScript的" ...
- Android studio 2.3安装遇到的问题
我的安装系统环境:windows 10+jdk1.8.0_111 . 1.在安装Android studio 2.3之前,请安装最新的java jdk.Android studio的安装包里是不包含j ...
- apt get update无法正常使用解决方案(转载)
apt get update无法正常使用 解决方法参考博客 [问题描述] 前几天执行apt相关命令(如apt-get update),都会长时间停在``等待报头'',超时后,显示连接超时. 换了快速指 ...
- 2018 ICPC北京 H ac自动机
n=40的01串,求有多少m=40的01串中包含它,包含的定义是存在子串有至多一个字符不相同 600组n=15的数据 15组n=40的数据,所以我们只能支持n^5的算法. 陷入两个比较有意思的坑: 1 ...
- js从一个select选择数据添加到另一个select(包括移除)
一.实现效果 二.要求 1.选中左侧的菜单,点击“>>”,该菜单(1项或多项选中的)将添加到右侧菜单 2.选中右侧菜单,点击“<<”,则移除选中的菜单 3.点击“>> ...
- Java 练习题摘录
2018-01-21 23:23:08 1.finally与return同时出现的情况 finally中有return语句则会使try...catch中的return语句失效 public stati ...
- 关系型数据库(RDBMS)与 MongoDB 的对应关系
谈一下关系型数据库(RDBMS)与 MongoDB 的对应关系: