北京电子科技学院(BESTI)实验报告

课程:Java2实用教程 班级:201752 姓名:姚明宇 学号:20175223
成绩: 指导教师:娄嘉鹏 实验日期:4月5日
实验密级: 预习程度: 实验时间:
仪器组次: 必修/选修:选修 实验序号:

目录

实验名称:实验一 Java开发环境的熟悉

实验仪器:

名称 型号 数量
PC端 1

实验内容、步骤与体会:


一、实验一 Java开发环境的熟悉-1

00 实验

0 参考实验要求

1 建立“自己学号exp1”的目录

2 在“自己学号exp1”目录下建立src,bin等目录

3 javac,java的执行在“自己学号exp1”目录

4 提交 Linux或Window或macOS中命令行下运行Java的全屏截图, 运行结果包含自己学号等证明自己身份的信息


二、实验一 Java开发环境的熟悉-2

00 实验

参考http://www.cnblogs.com/rocedu/p/6371315.html

提交 Linux或Window或macOS环境中 IDEA中调试设置条件断点的全屏截图,截图打上自己学号的水印。

其他内容包括截图在实验报告中体现

步骤:

  1. 设置断点,选择菜单「Run」->「Debug...」开始调试程序运行至断点处,Step Over(F8) 单步运行;

  1. 多行运行,设置断点第 8 行,然后单击 Resume(F9) 运行至断点处;

  1. 通过条件断点,解决个大循环中间的问题:断点处单击鼠标右键,弹出断点属性框,设置条件“i==50”,单击 Resume(F9) 运行;

  1. 要跳出 for 循环,在 10 行设置条件断点,鼠标右击断点,点「More(Ctrl+Shift+F8)」打开断点设置窗口,选中「Remove Once hit」,Done 即可(或把光标移到第 10 行,选择菜单「Run」->「Toggle Temporary Line Breakpoint」或(Ctrl+Alt+Shift+F8) );

  1. 设置方法断点:把光标移到方法中的任一行,选择菜单「Run」->「Toggle Method Breakpoint」,单击 Resume(F9) 运行至断点处。


三、实验一 Java开发环境的熟悉-3

00 实验

参考实验一 Java开发环境的熟悉(Linux + Eclipse)http://www.cnblogs.com/rocedu/p/4421202.html (三)练习

提交自己练习项目的码云链接和运行结果的截图。

实验题目6. 实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。

正常情况:n>=0且(n-m)>=0。例:n=4,m=3,P(n,m)=24。

异常情况:n<0或(n-m)<0。例:n=3,m=4,Error。

边界情况:MAX_INT=2147483647,13!=6227020800,则13!>MAX_INT,超出int容量。

[图片:正常情况]

[图片:异常情况]

[图片:边界情况]

码云链接:( https://gitee.com/Yogile/YogileOne.git )。在仓库 2018-2019-第2学期\Java 程序设计基础,项目名为:P(n,m) 。


实验过程中遇到的问题以及解决方案

1. 问题:在Linux中无法运行已经编译完成的源文件

root@yogile-VirtualBox:/alive/string# javac -d bin string/name.java
root@yogile-VirtualBox:/alive/string# java string/name
错误: 找不到或无法加载主类 string.name

或者是出现这种情况:

root@yogile-VirtualBox:/alive/string# java -cp string name
错误: 找不到或无法加载主类 name

解决方案:

两种情况均是解释文件的格式不对。解释器java.exe解释的并不是源文件本身,而是编译后的文件xxx.class。由于javac -d bin string/name.java将编译name.java生成的name.class字节码文件生成到bin文件夹中,所以应该用java -cd bin name运行。

如果程序中含有package,需要在package定义的上一个目录中进行编译。

2. 问题:阶乘的运算结果不单独运算,而是继续叠加。

9!的值supnum=362880
10!的值supnum=-1736015872

解决方案:

为什么9!的值是对的,但10!就不对了呢?

重点是:类中的变量分为两种:成员变量和局部变量。成员变量在声明的方法外,成员变量的值一旦通过命令改变就不会恢复初始,进行垃圾回收。但局部变量在方法内,在方法运行完成后就会回收,下次再用方法时,会重新定义为初始值。

而tet中的supnum是成员变量,supnum是不会随着tet中方法mult的结束而恢复初始1。在进行9!的运算后,supnum=362880;但在进行10!的运算的时候,supnum就不是1了,还是362880。这时进行的运算就是362880*10!,这个算式的结果超过了int类型的最大容量2^31-1,结果就变成了错误的值。

3. 问题:阶乘的运算出现负数。

认知不同基本数据类型的大小及调用。

解决方案:

对于复杂运算而言(阶乘等),计算的数值很容易超出初始值设定的范围(byte、int等)。

编写程序的时候,要注重Java基本数据类型大小及其包装类

否则运算结果会出现乱码或复数。


体会

JAVA的学习是进一步的,而非停留在阅读表面。

学习JAVA开发真的有难度,精力的付出是学习好JAVA的基本,而耐心不只是学习JAVA,而且是学习所有东西的必要条件。

实验是知识运用的输出。我在实验的过程中,确确实实是沉迷其中,每解决一个遇到的问题,都有一种成就感。


PSP

步骤 耗时 百分比
需求分析 5min 5%
设计 5min 5%
代码实现 70min 70%
测试 10min 10%
分析总结 10min 10%

20175223 实验一 《JAVA开发环境的熟悉》实验报告的更多相关文章

  1. 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

  3. 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...

  4. 20165205 实验一 java开发环境的熟悉 实验报告

    20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...

  5. 20162327实验一Java开发环境的熟悉实验报告

    20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...

  6. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  7. 20175316 盛茂淞 实验一 Java开发环境的熟悉

    20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

  8. 20155327实验一 Java开发环境的熟悉

    20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...

  9. 20165233 实验一 Java开发环境的熟悉

    20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...

  10. 20155231 java实验一 Java开发环境的熟悉

    20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...

随机推荐

  1. 思科模拟器PacketTracer7-----2台PC通过交叉线互连

    实验二—3 实验工具:思科模拟器PacketTracer7(可在思科官网下载,免费) 实验设备: PC两台,交叉线 实验步骤: 一.配置网络拓扑图 二.配置PC0和PC1的IP地址,掩码和网关 四.通 ...

  2. 2019ccpc-HN省赛-A/C/F/I

    A.最大下降矩阵 时间限制: 1 Sec  内存限制: 512 MB提交: 508  解决: 107[提交] [状态] [讨论版] [命题人:外部导入] 题目描述 我们称一个矩阵是下降矩阵,当且仅当, ...

  3. python3 doc2vec文本聚类实现

    import sys #doc2vev import gensim import sklearn import numpy as np from gensim.models.doc2vec impor ...

  4. 合并两个 Lambda 表达式

    概述 在开发工作中,有些时候需要对一些增删改查进行封装(用 Lambda 表达式来筛选数据),但是又有一部分条件总是相同的,对于相同的部分可以直接写到方法里,而不同的部分作为参数传进去. 定义扩展方法 ...

  5. Azkaban启动web--javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at sun.se

    javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at sun.se javax.net.ssl. ...

  6. js 获取二级域名

    js获取页面完整地址: window.location.href; var s =" https://ejym.baidu.com";            var h = s.s ...

  7. 泛在电力物联网建设大纲ppt

    “三型两网”,国家电网在2019年提出的新战略目标.其中,“两网”分别代表着,“坚强智能电网”和“泛在电力物联网”.“坚强智能电网”的概念已经随着特高压的持续建设而被大家渐渐熟知,那么“泛在电力物联网 ...

  8. Nmap UDP扫描缓慢问题探究(无结果)

    一.说明 在网络原理中我们经常说TCP是面向连接的要进行三次握手和四次挥手所以速度比较慢,UDP是无连接的直接发送和接收所以速度快(说到这个快慢我总想起多年前有篇分析MSN为什么被QQ淘汰的一篇文章其 ...

  9. boost第 4 章 事件处理

    http://zh.highscore.de/cpp/boost/ 1.信号 Signals 2.一旦对象 被销毁,连接就会自动释放. 让 FF类继承自 boost::signals::trackab ...

  10. jenkins log文件突然占满磁盘空间

    今天早上同事反应jenkins构建job发生异常,于是登录机器查看发现磁盘空间已满.进一步排查之后发现jenkins的catalina.out文件已占满磁盘空间. 用tail看了下日志后面都是关于DN ...