北京电子科技学院(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. 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% 
设计 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的更多相关文章

  1. 2018-2019-2 20165232《网络对抗技术》Exp1 缓冲区溢出实验

    2018-2019-2 20165232<网络对抗技术>Exp1 缓冲区溢出实验 实验点1:逆向及Bof基础实践 实践任务 用一个pwn1文件. 该程序正常执行流程是:main调用foo函 ...

  2. 20155324《网络对抗》Exp1 PC平台逆向破解(5)M

    20155324<网络对抗>Exp1 PC平台逆向破解(5)M 实验目标 本次实践的对象是一个名为~pwn1~的~linux~可执行文件. 该程序正常执行流程是:~main~调用~foo~ ...

  3. 2018-2019-2 20165237《网络攻防技术》Exp1 PC平台逆向破解

    2018-2019-2 20165237<网络攻防技术>Exp1 PC平台逆向破解 一.实践目标 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调 ...

  4. 20165221 《网络对抗技术》EXP1 PC平台逆向破解

    20165221 <网络对抗技术>EXP1 PC平台逆向破解 一.实验内容 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:main调用foo函数,foo函 ...

  5. 2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解

    2018-2019-2 网络对抗技术 20165325 Exp1 PC平台逆向破解(BOF实验) 实验有三个模块: (一)直接修改程序机器指令,改变程序执行流程: (二)通过构造输入参数,造成BOF攻 ...

  6. 2018-2019-2 20165206《网络对抗技术》Exp1 PC平台逆向破解

    - 2018-2019-2 20165206<网络对抗技术>Exp1 PC平台逆向破解 - 实验任务 本次实践的对象是一个名为pwn1的linux可执行文件. 该程序正常执行流程是:mai ...

  7. Exp1 PC平台逆向破解 20165235 祁瑛

    Exp1 PC平台逆向破解 20165235 祁瑛 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常执行流程是:main调用foo函数,foo函数会简单回显任何用户输入的字 ...

  8. 2018-2019-2 20165317《网络对抗技术》Exp1 PC平台逆向破解

    2018-2019-2 20165317<网络对抗技术>Exp1 PC平台逆向破解 实验目的 掌握NOP, JNE, JE, JMP, CMP汇编指令的机器码 NOP:无作用,英文&quo ...

  9. 2018-2019-2 20165225《网络对抗技术》Exp1 缓冲区溢出实验

    2018-2019-2 20165225<网络对抗技术>Exp1 缓冲区溢出实验 声明 虽然老师在邮箱中要求要把虚拟机名改为个人名字缩写,但是我的kali好像不是很听话...重启数次也没用 ...

  10. 2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解

    2018-2019-2 网络对抗技术 20165336 Exp1 PC平台逆向破解 1. 逆向及Bof基础实践说明 1.1 实践目标 本次实践的对象是一个名为pwn1的linux可执行文件.该程序正常 ...

随机推荐

  1. NYOJ 18 The Triangle 填表法,普通dp

    题目链接: http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=18 The Triangle 时间限制:1000 ms  |  内存限制:6553 ...

  2. 参加360前端星计划总结(二)--HTML&CSS

    HTML学习手册(英文版)html:the living standard 重要知识点 文档声明的作用a. 指定html的文档标准和版本b. 告诉浏览器渲染模式,有怪异模式(较为古老的模式,不写文档声 ...

  3. 关于NSStringFromClass的一点见解

    今天做项目的时候遇到一个需求,就是子view视图弹出时,屏蔽掉父view的所有手势,然后想到用 UIGestureRecognizerDelegate代理方法,中间省一些文字(无奈脸),言归正传,NS ...

  4. iOS 判断两个颜色是否相同

    今天做项目的时候,遇到一个小问题,就是获取UIButton的背景颜色用来和已知颜色做对比,进行点击事件.去查了下文档,有个方法正好可以处理这个问题. bool CGColorEqualToColor ...

  5. 使用Jquery Viewer 展示图片信息

    <!DOCTYPE html><html lang="en"><head> <meta charset="utf-8" ...

  6. 2017-2018-1 20155220 《信息安全系统设计基础》课下实践——实现mypwd

    学习pwd命令 输入pwd命令 于是man 1 pwd查看pwd详细 然后查看pwd实现需要的系统调用man -k; grep 在这发现了一个功能相同的内核函数getcwd 到这步就很简单了,先查看这 ...

  7. 【LG3240】[HNOI2015]实验比较

    题面 洛谷 题解 30pts 爆搜即可. 100pts 题意描述里有一句:"对每张图片\(i\),小\(D\)都最多只记住了某一张质量不比\(i\)差的另一张图片\(K_i\)." ...

  8. c# 抓取和解析网页,并将table数据保存到datatable中(其他格式也可以,自己去修改)

    使用HtmlAgilityPack 基础请参考这篇博客:https://www.cnblogs.com/fishyues/p/10232822.html 下面是根据抓取的页面string 来解析并保存 ...

  9. [JOISC2018]道路建设 LCT

    [JOISC2018]道路建设 LOJ传送门 考的时候打的大暴力,其实想到了LCT,但是思路有点没转过来.就算想到了估计也不能切,我没有在考场写LCT的自信... 其实这题不是让你直接用LCT维护答案 ...

  10. JavaScript函数作用域与对象以及实用技巧

    1. JS作用域 1.1 全局作用域和局部作用域 函数外面声明的就是 全局作用域 函数内是局部作用域 全局变量可以直接在函数内修改和使用 变量,使用var是声明,没有var是使用变量. 如果在函数内使 ...