一、实验内容及步骤

使用JDK编译、运行简单的Java程序

cd code进入code文件夹

mkdir 20175313创建20175313文件夹

ls查看当前目录

cd 20175313,mkdir exp1,cd exp1,用pwd查看当前工作路径

vim Hello.java编辑Hello.java

javac -d . Hello.java编译代码

java zlx.Hello运行代码

实验截图如下:

使用IDEA调试Java程序

设置断点

单步运行

step into(快捷键F5)

step over(快捷键F6)

两个断点之间的跳跃Resume(快捷键F8)

设置条件断点

实验截图如下:

二、练习

题目5:实现求正整数1-N之间所有质数的功能,并进行测试(正常情况,异常情况,边界情况)。

代码为:

import java.util.*;

public class primeNumber2 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int flag=0;

System.out.println("请输入一个数:");

int number = scanner.nextInt();

//while(scanner.hasNextInt()){

System.out.println(number);

if(number<0){

System.out.println("负数没有素数与合数之分");

}

else if(number==1||number==0){

System.out.println(number+"既不是素数也不是合数");

}

else {

for(int j=2;j

flag=0;

for (int i = 2; i < j; i++) {

if (j % i == 0) {

flag = 1;

break;

}

}

if(flag==0){

System.out.println(number+"是素数");

}

}

}

}

}

运行结果截图:

三、实验过程的理解

javac -d . Hello.java-d参数的作用

是指定生成java包的根目录,-d .是在当前目录上编译生成java包。

如果省略了-d,则仅仅是在当前目录生成的class文件。

JVM、JRE、JDK的安装位置与区别:

JVM:只认识*.class文件,能够将class文件中的字节码指令进行识别并调用操作 系统上的API完成动作。

JRE:JRE = JVM+Java类库

JDK:JDK = JRE+小工具

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

带有package的编译运行问题及解决方案

问题:在编辑*.java源文件中含有包名为zlx时,我首先在当前目录建立了一个名为zlx的文件夹,然后进入该文件夹,进行vim Hello.java,javac -d . Hello.java,java zlx.Hello,我cd一下发现,在zlx文件夹下又建了一个文件夹名为zlx。

解决方案:通过各种途径了解到javac -d . Hello.java 中-d参数表达的意义,从而明白的出现该现象的原因。

分析:javac -d . Hello.java -d参数的作用是指定生成java包的根目录,该程序中有zlx这个包,-d后会在当前目录下生成zlx这个包,因此,不需要我们自己去创建zlx这个文件夹然后再将源文件写入zlx目录下。

启示:这使我联想到了教材中tom.jiafei的那个例子,它是在源程序中定义了package tom.jiafei这个包名,我当初的解决方法 (https://www.cnblogs.com/xiannvyeye/p/10544611.html) 了解的-d的用法之后,我的解决方法是:

程序运行结果与预期不符问题及解决方案

问题:运行结果本应该输出1-100的所有素数,但是却什么也没有输出。

解决方案:通过IDEA调试查看问题出现在哪里。

更改后运行结果截图:

五、实验体会与总结

一个程序是由很多模块构成的,也就是所谓的类,虽然我这个实验比较简单不需要多个类,但是很多内容是共通的,比如一个带包源文件的编译,在我们解决了一个问题之后,相应的一类的问题就都解决了。例如:编译带包源文件Hello.java就联想到了tom.jiafei那个例子的编译。

当程序运行结果与自己意料中的不一样时,可以使用调试工具,IDEA可以很清楚的查看到每一步每一个变量的变化。

像这类的实验我觉得如果能够通过结对来完成,应该能够达到较好的效果。就像我的System.out.println()放错了位置,如果是结对一起写的话,这个问题应该在当场就会被发现,这样就能节省调试的时间,提高效率。而且两个人结对还能够提高代码的质量,设计出一个更好的实现该功能的程序。

步骤

耗时

百分比

需求分析

10min

10%

设计

10min

10%

代码实现

45min

45%

测试

25min

25%

分析总结

10min

10%

java实验的技术问题及解决方法,2018-2019-2 20175313 实验一《Java开发环境的熟悉》实验报告...相关推荐

  1. java.util.ConcurrentModificationException异常原因及解决方法

    java.util.ConcurrentModificationException异常原因及解决方法 参考文章: (1)java.util.ConcurrentModificationExceptio ...

  2. Java compiler level does not match解决方法

    Java compiler level does not match解决方法 参考文章: (1)Java compiler level does not match解决方法 (2)https://ww ...

  3. 2018-2019-2 20175227张雪莹 《Java程序设计》 实验一 Java开发环境的熟悉

    2018-2019-2 20175227张雪莹<Java程序设计> 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:2017 ...

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

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

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

    20175208 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张家华  学号:20175208 指导教师:娄嘉鹏 实验日期:2019年4月2日 实 ...

  6. 2017-2018-1 20155301 20155307 20155339 《信息安全系统设计基础》 实验一 开发环境的熟悉...

    2017-2018-1 20155301 20155307 20155339 <信息安全系统设计基础> 实验一 开发环境的熟悉 实验一 交叉编译环境 实验步骤 安装老师提供的softwar ...

  7. “ Error:(1, 1) java: 非法字符: ‘\ufeff‘ ”错误的解决方法

    前言:今天为了做作业,在 github 上面下载了个项目,然后在运行项目时发现报错,在此记录一下 " Error:(1, 1) java: 非法字符: '\ufeff' "错误的解 ...

  8. 求解哈夫曼编码Java实现,用Java实现哈夫曼编码解决方法

    当前位置:我的异常网» J2SE » 用Java实现哈夫曼编码解决方法 用Java实现哈夫曼编码解决方法 www.myexceptions.net  网友分享于:2013-01-08  浏览:13次 ...

  9. mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法

    mybatis项目报错:java.sql.SQLException: ORA-00911: 无效字符 解决方法 参考文章: (1)mybatis项目报错:java.sql.SQLException: ...

最新文章

  1. python⾯向对象学员管理系统
  2. C++编程进阶7(何时使用成员函数模板,模板类的实参推断与类型转换、继承与数组)
  3. .NET零基础入门之01:开篇及CSharp程序、解决方案的结构
  4. FLASH与E²PROM的区别
  5. homelede软路由设置方法_斐讯无线路由器怎么设置 斐讯无线路由器设置方法【详解】...
  6. 云计算架构师分享:容器云在金融企业的落地方案 | 周末送资料(原题:某保险公司容器云PaaS平台建设实践经验分享)
  7. 如何使用PHP开发高效的WEB系统
  8. OpenLayers 在Vue中增删改
  9. 轻松自动化---selenium-webdriver(python) (十一)
  10. 【竞赛02-a】【题解】第十二届电工杯全国大学生数学建模大赛B题
  11. hugo部署到Githut Pages
  12. 保护眼睛缓解疲劳的方法(常用电脑的朋友)
  13. 关于 opengl3.3 - 4.1 ABO 的感触. 传统 VBO往 ABO+VBO的 代码移植
  14. IOS开发之——音乐播放器-概述(01)
  15. 微信短信显示服务器解包异常,最新微信小程序解包反编译bug处理 解决 $gwx is not defined 错误...
  16. 个人如何办理注册商标
  17. AMBA总线协议AHB、APB、AXI对比分析
  18. 前端秋招面试(7)- 微众银行
  19. python循环语句continue_在Python中嵌套for循环中使用Continue语句
  20. html中css的注释怎么写,css注释怎么写?

热门文章

  1. R语言使用timeROC包计算无竞争情况下的生存资料多个标记物在相同时间下的cox及协变量分析AUC值、并可视化多个标记物在相同时间下的ROC值、多指标的ROC曲线
  2. python使用matplotlib可视化阶梯图、使用step函数可视化阶梯图、可视化时间序列数据的波动周期和规律
  3. R语言使用randomForest包构建随机森林模型的步骤和流程、随机森林算法包括抽样样本(观察)和变量来创建大量的决策树(多个树,构成了森林,而且通过样本抽样和变量抽样,让多个树尽量不同)
  4. R语言使用lm构建线性回归模型、并将目标变量对数化实战:模型训练集和测试集的残差总结信息(residiual summary)、模型训练(测试)集自由度计算、模型训练(测试)集残差标准误计算
  5. R语言set.seed函数的意义及实战
  6. 奥卡姆剃刀是什么?机器学习实践中那些学习模型或者那些评估指标践行了这一理论?
  7. java+构建+工具+Ant+Maven+Gradle
  8. 数据不平衡(class_weight、评估方法、上采样、下采样)、详解及实战
  9. pandas新字段(数据列)生成、使用np.where或者apply lambda函数结合if else生成新的字段,详解及实战
  10. The Third Revolution in Sequencing Technology