20135313-exp1
北京电子科技学院(BESTI)
实 验 报 告
课程:Java程序设计 班级:1353 姓名:吴子怡 学号:20135313
成绩: 指导教师:娄嘉鹏 实验日期:2015.4.13
实验密级: 预习程度: 实验时间:——
仪器组次: 13 必修/选修:选修 实验序号:1
实验名称: JAVA开发环境的熟悉
(一)实验目的与要求:
1. 使用JDK编译、运行简单的Java程序。
2.在命令行和Eclipse下编辑、编译、运行、调试简单的Java程序。
3.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》课程。
(二)实验材料
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帮助文档的使用;
(三)实验仪器
|
名称 |
型号 |
数量 |
|
PC |
Dell |
1 |
|
虚拟机 |
实验楼 |
1 |
四、实验步骤
1、命令行下JAVA的程序开发
(1)首先双击桌面上的Xface终端图标,打开终端(类似Windows下的cmd),之后会自动运行shell程序。
(2)输入cd Code命令进入Code(注意C要大写)目录,输入mkdir 20135313命令建立实验目录,可以使用ls命令或dir命令查看建立的目录情况。
(3)输入cd 20135313命令进入实验目录,再输入mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,可以输入pwd命令查看当前工作路径。
(4)输入gedit Hello.java编辑Hello.java,并输入以下代码:
1 package wzy;
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导入相关的类,导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类。
(心得:当熟练使用eclipse以后,发现不需要在程序首加入import语句,在程序中调用类时会自动补全import语句!)
(6)输入javac -d . Hello.java命令编译代码,输入java wzy.Hello命令运行程序结果如下图所示:
2、Eclipse下JAVA程序开发、调试
(1)在命令行中输入eclipse命令并回车或单击桌面上的Eclipse EE图标打开Eclipse
(2)在Eclipse中单击File->New-> Java Project新建Java项目。输入项目名称HelloJDB,并单击Finish按钮完成新建项目。
(3)在Eclipse中单击File->New->Class新建Java类。
(4)根据Java代码规范输入包名wuziyi,类名wuziyi,并勾选上自动产生main函数选项,最后单击Finish按钮。
(5)输入代码,单击运行按钮(或使用Ctrl+F11快捷键),就可以在控制台(Console)中看到运行结果。
(6)调试程序。通过单击Window->Open Perspective->Debug打开调试视图。
(7)设置断点和单步运行。设置条件断点,在累加的左边单击鼠标右键,选择Breakpoint Properties.输入条件,按F8运行到条件停止。

3、练习:学号后两位取余——斐波那契数列:
代码如下:
五、实验分析
PSP时间
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 15 | 30% |
| 设计 | 5 | 10% |
| 代码实现 | 10 | 20% |
| 测试 | 5 | 10% |
| 分析总结 | 15 | 30% |
六、遇到的问题与解决方法
第一个小实验中,我在命令行中输入指令后,出现编程的窗口,但后来回到命令行中却无法再执行指令,后来我学会了运用快捷键Ctrl+C可以先强制关闭上个步骤,开启新的命令行输入。
另外,我在做第二个实验时,操作的平台与老师实验指导的截图不一样,很多图标都不在同一个地方,加上虚拟机实验环境字体很小,在实验操作中花了很多功夫,心里又特别着急导致实验做了好多遍。以后要更加细心,遇到不明白的地方要善于查询搜索答案,也要提高心理素质,不要遇事着急,降低效率,甚至犯不必要的错误。
实验三当时做实验早,实验指导书中的要求是根据学号直接做斐波那契数列,因此与后来实验要求不符。但是完整代码如上。
七、实验收获
1、调试按钮(或使用F11快捷键)
Resume图标(快捷键F8)
2、单步运行有两种:Step Into(快捷捷F5)和Step Over(快捷捷F6),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,Step Into会跳入函数实现,Step Over会直接执行完函数,实际使用中我们优先使用Step Over,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过Step Into进入函数进行调试。
3、单步执行效率比较慢,若大循环中出错,可以通过条件断点解决问题。调试循环代码时,可在Variable标签中查看变量的值,但此处虽然学会操作,却不知道到底实际应用会在哪里使用到这个方法,因为我在实际操作时一般会直接查看错误而不善长调试。
20135313-exp1的更多相关文章
- 2018-2019-2 20165232《网络对抗技术》Exp1 缓冲区溢出实验
2018-2019-2 20165232<网络对抗技术>Exp1 缓冲区溢出实验 实验点1:逆向及Bof基础实践 实践任务 用一个pwn1文件. 该程序正常执行流程是:main调用foo函 ...
- 20155324《网络对抗》Exp1 PC平台逆向破解(5)M
20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~ ...
- 2018-2019-2 20165237《网络攻防技术》Exp1 PC平台逆向破解
2018-2019-2 20165237<网络攻防技术>Exp1 PC平台逆向破解 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调 ...
- 20165221 《网络对抗技术》EXP1 PC平台逆向破解
20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函 ...
- 2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻 ...
- 2018-2019-2 20165206《网络对抗技术》Exp1 PC平台逆向破解
- 2018-2019-2 20165206<网络对抗技术>Exp1 PC平台逆向破解 - 实验任务 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:mai ...
- Exp1 PC平台逆向破解 20165235 祁瑛
Exp1 PC平台逆向破解 20165235 祁瑛 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字 ...
- 2018-2019-2 20165317《网络对抗技术》Exp1 PC平台逆向破解
2018-2019-2 20165317<网络对抗技术>Exp1 PC平台逆向破解 实验目的 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:无作用,英文&quo ...
- 2018-2019-2 20165225《网络对抗技术》Exp1 缓冲区溢出实验
2018-2019-2 20165225<网络对抗技术>Exp1 缓冲区溢出实验 声明 虽然老师在邮箱中要求要把虚拟机名改为个人名字缩写,但是我的kali好像不是很听话...重启数次也没用 ...
- 2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解
2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常 ...
随机推荐
- P1877 [HAOI2012]音量调节
题目描述 一个吉他手准备参加一场演出.他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都需要改变一次音量.在演出开始之前,他已经做好一个列表,里面写着每首歌开始之前他想要改变的音量是多少. ...
- UVa 10377 - Maze Traversal
題目:一個機器人在迷宮中行走,它的指令是方向控制(前進.左轉.右轉).給你初始位置和一些指令: 問最後停在那個位置. 分析:模擬.直接模擬就可以,注意一下細節. 假设,不能行走(邊界或者是墻壁)則停在 ...
- js 设计模式——观察者模式
观察者模式 定义 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状 ...
- CentOS 7 配置阿里云本地yum源
删除原有的yum源: rm -f /etc/yum.repos.d/* 重新下载阿里云的yum源: wget -O /etc/yum.repos.d/CentOS-Base.repo http://m ...
- 8.Generics 泛型(Dart中文文档)
这篇翻译的不好 如果你看API文档中的数组篇,你会发现类型一般写成List.<...>的写法表示通用类型的数组(未明确指定数组中的数据类型).通常情况泛型类型用E,T,S,K,V表示. W ...
- eclipse各种小图标含义
参考:https://wenku.baidu.com/view/69a0854df7ec4afe04a1df63.html outline: 实心的代表方法 空心的代表属性 绿色的圆表示公有pu ...
- 学习笔记:启动对特定用户的会话的sql跟踪
学习 Oracle性能诊断艺术 制作一个role: CREATE ROLE sql_trace; 然后再作一个数据库登录级别的触发器: CREATE OR REPLACE TRIGGER enable ...
- [并发并行]_[线程模型]_[Pthread线程使用模型之三 客户端/服务端模型(Client/Server]
Pthread线程使用模型之三 客户端/服务端模型(Client/Server) 场景 1.在客户端/服务端模型时,客户端向服务端请求一些数据集的操作. 服务端执行执行操作独立的(多进程或跨网络)– ...
- 洛咕 P2468 [SDOI2010]粟粟的书架
强行二合一啊... 前面直接二分最小值,二维前缀和.后面用主席树查最小值.注意要写\(nlogn\). // luogu-judger-enable-o2 #include<bits/stdc+ ...
- DNS DHCP 路由 FTP
第1章 网络基础 1.1 IP地址分类 IP地址的类别-按IP地址数值范围划分 IP地址的类别-按IP地址用途分类 IP地址的类别-按网络通信方式划分 1.2 局域网上网原理过程 DHCP原理过程详情 ...
