实验一 Java开发环境的熟悉
实验一 Java开发环境的熟悉(Linux + Eclipse)
实验内容
1.使用JDK编译、运行简单的Java程序;
2.使用Eclipse 编辑、编译、运行、调试Java程序。
实验要求
1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
2.完成实验、撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);
3.实验报告中统计自己的PSP(Personal Software Process)时间:
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | ||
| 设计 | ||
| 代码实现 | ||
| 测试 | ||
| 分析总结 |
4. 严禁抄袭。
实验知识点
1. JVM、JRE、JDK的安装位置与区别;
2. 命令行运行javac;java;javac -cp; java -cp;
3. PATH,CLASSPATH,SOURCEPATH的设定方法与应用;
4. 包管理:package;import;javac -d ;
5. Eclipse(Netbeans)管理Java项目,调试:断点、单步执行等;
6. Java基础语法:类型与类型转换;变量;运算符;流程控制等;
7. JDK帮助文档的使用。
实验步骤
(一)命令行下Java程序开发
首先双击桌面上的
Xface终端图标,如下图所示:
打开终端(类似Windows下的cmd),之后会自动运行shell程序,如下图所示:
输入
cd Code命令进入Code(注意C要大写)目录,如下图所示:
输入
mkdir 20135100命令建立实验目录,注意目录名一定是自己的学号(学号要体现在实验报告截图中),可以使用ls命令或dir命令查看建立的目录情况。如下图所示:
输入
cd 20135100命令进入实验目录,再输入类似mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径,如下图所示:
输入
gedit Hello.java(注意把代码保存到exp1目录中)或vim Hello.java(建议大家花点时间学习一下Vim)编辑Hello.java,并输入以下代码:
1 package ljp;
2 import java.util.Scanner;
3 public class Hello{
4 public static void main(String[] args){
5 System.out.println("Input your first name, please:");
6 Scanner s = new Scanner(System.in);
7 String name = s.next();
8 System.out.println("Hello " + name + " !");
9 }
10 }
注意代码的第一行,这会影响到我们使用javac编译代码的方式。
注意代码第二行,我们使用到Java类库中的类时,要用import导入相关的类(你可以暂时理解为C语言中include的功能),导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类,路径见下图中红框:
7.输入javac -d . Hello.java命令编译代码,输入java ljp.Hello命令运行
程序。结果如下图所示:
注意:代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀。
(二)Eclipse下Java程序开发、调试
在命令行中输入
eclipse命令并回车或单击桌面上的Eclipse EE图标打开Eclipse,如下图所示:
在Eclipse中单击
File->New-> Java Project新建Java项目,如下图所示:
输入项目名称
HelloJDB(你可以自己起名),并单击Finish按钮完成新建项目,如下图所示:
在Eclipse中单击
File->New->Class新建Java类,如下图所示:
5.根据Java代码规范输入包名ljp(小写,可以自定义),类名HelloJDB(单词首字母大写),并勾选上自动产生main函数选项,最后单击Finish按钮,如下图所示:
6.输入如下代码:
1 package ljp;
2 public class HelloJDB {
3 public static void main(String[] args) {
4 int i = 5;
5 int j = 6;
6 int sum = add(i, j);
7 System.out.println(sum);
8
9 sum = 0;
10 for(i=0; i< 100; i++)
11 sum += i;
12
13 System.out.println(sum);
14 }
15
16 public static int add(int augend, int addend){
17 int sum = augend + addend;
18 return sum;
19 }
20}
7.单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果。如下图所示:
8.下面我们练习调试程序,首先我们通过单击Window->Open Perspective->Debug打开调试视图,如下图所示:
9.调试程序首先要会设置断点和单步运行。设置断点比较简单,如下图所示:
然后单击调试按钮(或使用F11快捷键)开始调试Java程序,我们可以看到程序停留在了第4行,如下图所示:
注意,此时第4行代码并没有执行,我们可以把鼠标放到变量名上来查看变量的值,此时i的值并不是5,我们通过单步运行让程序运行到第5行,单步运行有两种:Step Into(快捷捷F5)和Step Over(快捷捷F5),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,Step Into会跳入函数实现,Step Over会直接执行完函数,实际使用中我们优先使用Step Over,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过Step Into进入函数进行调试。我们单击一下Step Over图标(或F6),程序停在了第5行,这时查看变量i的值,会看到i等于5。如下图所示:
10.单步执行效率比较慢,如果我们感觉到第6行到第10行的代码没有问题了,想让程序直接运行到第11行,怎么办?首先我们要在第11行设置断点,然后单击Resume图标(快捷键F8),程序就运行到了第11行,如下图所示:
11.单步执行效率比较慢还导致另外一个问题,比如一个大循环中间出了问题怎么办?这时可以通过条件断点解决问题。调试循环代码时,会有一个值我们特别关注,这时在Variable标签中查看变量的值,比如我们此时比较关注sum,每次单步执行都可以看到sum的变化情况了,
设置条件断点,我们在第11行左边单击鼠标右键,选择Breakpoint Properties...如下图所示:
我们设置条件“i==50”,如下图所示:
按一下F8,我们可以查看i的是50了。如下图所示:
掌握这些调试的基本技巧可以解决大家平时遇到的大部分问题,其他调试方法可以参见参考资料。
(三)练习(通过命令行和Eclipse两种方式实现,自己的学号后两位与题目总数取余的结果再加上1就是自己要完成的题号,在Eclipse下练习调试程序)
1. 实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)。
2. 实现简单四则运算(能支持分数,加减乘除,支持括号),并进行测试(正常情况,异常情况,边界情况)。
3. 实现Fibonacci数列功能,并进行测试(正常情况,异常情况,边界情况)。
4. 实现学生成绩管理功能(增删改,排序,查找),并进行测试(正常情况,异常情况,边界情况)。
5. 实现求正整数1-N之间所有质数的功能,并进行测试(正常情况,异常情况,边界情况)。
6, 实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
7, 实现求两个数的最大公约数和最小公倍数的功能,数从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
8. 产生一个随机数,让用户猜测,猜错了告诉用户是大了还是小了。 并进行测试(正常情况,异常情况,边界情况)
9. 判断一个数是不是回文数,数从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
参考资料
欢迎关注“rocedu”微信公众号(手机上长按二维码)
做中教,做中学,实践中共同进步!

版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
实验一 Java开发环境的熟悉的更多相关文章
- 20145205 实验一 Java开发环境的熟悉
实验内容 命令行下Java程序开发 IDEA下Java程序开发.调试 练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) 实现凯撒密码,并进行测试 实验要求 使用JDK编译 ...
- 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 ...
- 20175208 实验一 Java开发环境的熟悉
20175208 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张家华 学号:20175208 指导教师:娄嘉鹏 实验日期:2019年4月2日 实 ...
随机推荐
- .NET文档生成工具ADB使用图文教程
.NETv3.0 可再发行组件包 类型:编程辅助大小:2.7M语言:中文 评分:1.8 标签: 立即下载 ADB2.3使用指南 ADB2.3使用方法如下图所示: (1)主界面: (2)批量选择: 4. ...
- composer 学习资料
今天看了一下composer,前几天开始用包依赖,以前一直都是自己手动配.今天用了composer,要学习的话可以按照以下链接学习: 1 官方文档: http://www.phpcomposer.co ...
- (视频)《快速创建网站》 4.1 为啥造软件不同于造汽车,为啥是软件就一定会有Bug - 构建开发运维一体化(DevOps)
本文是<快速创建网站>系列的第9篇,如果你还没有看过之前的内容,建议你点击以下目录中的章节先阅读其他内容再回到本文. 访问本系列目录,请点击:http://devopshub.cn/tag ...
- python中列表、元组、字典内部功能介绍
一.列表(list) 常用功能的介绍:
- 网页实时聊天之js和jQuery实现ajax长轮询
众所周知,HTTP协议是无状态的,所以一次的请求都是一个单独的事件,和前后都没有联系.所以我们在解决网页实时聊天时就遇到一个问题,如何保证与服务器的长时间联系,从而源源不段地获取信息. 一直以来的方式 ...
- activiti入门
一.Activiti简介 Activiti 是一个针对商务人士. 开发人员和系统管理员的轻量级的工作流和业务流程管理 (BPM) 平台.它的核心是Java的高速和可靠的 BPMN 2 流程引擎.它是开 ...
- C语言(函数)学习之strstr strcasestr
C语言(函数)学习之[strstr]&[strcasestr]一.strstr函数使用[1]函数原型char*strstr(constchar*haystack,constchar*needl ...
- 初识JNI
需要用到NDK Android 平台从诞生起,就已经支持 C.C++开发.众所周知,Android 的 SDK 基于 Java 实现,这意味着基于 Android SDK 进行开发的第三方应用都必须使 ...
- seq
Linux 中seq 命令的用法 用于产生从某个数到另外一个数之间的所有整数 用法: seq [选项]... 尾数 或:seq [选项]... 首数 尾数 或:seq [选项]... 首数 增量 尾数 ...
- js对已经对象类型进行类型辨别
typeof() Object.prototype.toString.call(data)