2018-2019-2 20175205实验一《Java开发环境的熟悉》实验报告
2018-2019-20175205实验一《Java开发环境的熟悉》实验报告
实验步骤
(一)命令行下Java程序开发
在Linux下运行结果:
在IDEA中运行结果:
(二)IDEA下Java程序开发、调试:学会通过调试(Debug)来定位逻辑错误
1.调试程序首先要会设置断点和单步运行。设置断点,在要设置断点的行号旁用鼠标单击一下就行(或使用Ctrl+F8快捷键)
2. 然后单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9
快捷键)开始调试Java程序
此时第5行代码没有被执行,变量sum的值并不是11,如图
3. 通过单步运行让程序运行到第6行,单步运行有两种:Step Into
(快捷捷F7)和Step Over
(快捷捷F8),优先使用Step Over,这时查看变量i的值,会看到sum等于11。如图:
4. 让程序直接运行到第9行,首先我们要在第9行设置断点,然后单击Resume图标(快捷键F9),如图:
5. 单步执行效率比较慢还导致另外一个问题,若一个大循环中间出了问题,这时可以通过条件断点解决问题。设置条件断点,我们在第9行左边断点处单击鼠标右键,弹出断点属性框,我们设置条件“i==50”,按F9,如图:
6. 临时断点,断点只中断一次,比如我们想把第9,10行的for循环一下子运行完,我们就需要在第12行设个条件断点。我们可以在第十二行设个断点,然后鼠标右击断点:然后点「More」或按快捷键Ctrl+Shift+F8打开断点设置窗口,选中「Remove Once hit」
7. 方法断点:认为某个方法出错了,就可以设置方法断点。把光标移到方法中的任一行,使用菜单「Run」->「Toggle Method Breakpoint」.
(三)练习
练习题目:实现求排列数P(n,m)的功能,m,n从命令行输入,并进行测试(正常情况,异常情况,边界情况)。
代码编写:
import java.util.Scanner;
class Arrangement{
int m,n;
int temp1=1,temp2=1;
void getMN(int x,int y){
n = x;
m = y;
}
int Arrangement(){
for(int i=1; i<=n; i++){
temp1 = temp1*i;
}
for(int i=1; i<=n-m; i++){
temp2 = temp2*i;
}
return temp1/temp2;
}
}
public class Experiment1 {
public static void main(String[] args) {
System.out.println("请输入n和m:");
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int m = in.nextInt();
while(m<=0||n<=0){
System.out.println("请输入大于0的数:");
n = in.nextInt();
m = in.nextInt();
}
while (n<m){
System.out.println("n应大于m,请重新输入:");
n = in.nextInt();
m = in.nextInt();
}
Arrangement arr = new Arrangement();
arr.getMN(n,m);
int result = arr.Arrangement();
System.out.println("result="+result);
}
}
写程序的时候考虑到了以下问题:
1.输入的n,m应当大于等于0
2.n应当大于等于m
因此输入n,m时,考虑到了边界值,使程序更健全。
用debug调试
实验中遇到的问题
Q:IDEA的快捷键和Windows有冲突,调试时会出现如按F8显示投影的相关内容。
A:同时按Fn+Esc,关闭Windows的快捷键
参考了[Link]https://zhidao.baidu.com/question/1178784346146518699.html
Q:在设置条件断点时还出现了如下问题:
A:在设置条件时,只输入了50,导致发生了错误,应该输入i==50.
Q:无法运行程序,出现了文件加时钟的符号
A:符号的意思是:java class located out of the source root.refer to the section Configuring Content Roots for details.经过查询,主要是因为没有设置output的路径,文件不可编译,所以会出现如上图标。
参考[Link]https://blog.csdn.net/jielinku29/article/details/79678467
代码托管Link
学习总结
在IDEA中学了一些简单快捷键的使用方法:
1.CTRL+Z
倒退(撤销)
2.alt+F8
debug时选中查看值
3.Alt+Shift+F9
选择 Debug
4.Alt+Shift+F10
选择 Run
5.Ctrl+Shift+F9
编译
6.psvm
生成main方法--public static void main(String[] args) { }
7.sout
生成--System.out.orintln()
这个代码是我自己第一次独立完成的程序,编完之后还输出了正确结果,并且也做到了边界测试,非常自豪。在编写过程中,还遇到一些知识性的问题,通过翻书查找,巩固记忆,锻炼了能力,纸上得来终觉浅,还是要亲身实践,自己去做,才可能发现自己的不足之处,加以改进,得到提升。
参考博客
快捷键的使用[Link]https://github.com/judasn/IntelliJ-IDEA-Tutorial/blob/master/keymap-introduce.md#ctrl
2018-2019-2 20175205实验一《Java开发环境的熟悉》实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...
- 20165205 实验一 java开发环境的熟悉 实验报告
20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...
- 20162327实验一Java开发环境的熟悉实验报告
20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...
- 实验一Java开发环境的熟悉
实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...
- 20175316 盛茂淞 实验一 Java开发环境的熟悉
20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...
- 20155327实验一 Java开发环境的熟悉
20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...
- 20165233 实验一 Java开发环境的熟悉
20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...
- 20155231 java实验一 Java开发环境的熟悉
20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...
随机推荐
- JS _函数作用域及变量提升
虽然看了多次js函数作用域及变量提升的理论知识,但也是一知半解~ 这几天做了几道js小题,对这部分进行了从新的理解,还是有所收获的~ 主要参考书籍: <你不知道的JavaScript(上卷)&g ...
- [LeetCode] Flatten a Multilevel Doubly Linked List 压平一个多层的双向链表
You are given a doubly linked list which in addition to the next and previous pointers, it could hav ...
- C语言企业级的需要学习的知识
建立正确程序运行内存的布局图(印象图) 内存四区模型图: 函数调用模型图: 数据类型的本质:固定大小内存块的别名 对于数组变量b[10]; b+1,与&b+1结果不一样: b代表的是数组首元素 ...
- 常用的当前时间(返回String类型)
public class TimeUtil { /** * 创建人:zhiyuan * 创建时间:2018年6月9日上午11:31:02 * 方法描述:以yyyy-MM-dd查询当前时间 */ pub ...
- 【LookLook文档】通过less 定制自己的Bootstrap 样式
闲话 学习还是看文档最快,看文档要仔细点,不可走马观花.感谢 “Bootstrap中文网” 思路 1.早在2015开始接触,由于公司中使用的是easyui 固一直没完全使用Bootstrap,开始接触 ...
- 我了解到的新知识之----遇到路由器DNS被篡改我该怎么办?
最近一则新闻让我不得不开始重视家中一直沉默在角落里路由器了. http://www.21ic.com/tougao/article/8346.html 于是立刻搜索了一些关于如何检查DNS地址是否被修 ...
- VS2015中使用报表控件(ReportViewer)的方法
没有报表,一般默认安装之后会出现这种情况,在安装的时候选择自定义安装,把Microsoft Office 开发人员工具.Microsoft SQL Server Data Tools勾选上,安装之后就 ...
- 是否能设计一种DNN的特定网络结构来改善DNN,使得其学习起来更加高效
小结: 1. 是否能设计一种DNN的特定网络结构来改善DNN,使得其学习起来更加高效 https://mp.weixin.qq.com/s/lF_WLAn6JyQqf10076hsjA Deep &a ...
- JAVA RPC (四) 之thrift序列化普通对象
先简单写一个thrift文件 本地通过thrift编译之后会生成一个java源文件.------编译口令 :thrift -gen java mytestrequest.thrift 编译后的源代码如 ...
- oracle学习笔记第二天
一.连接查询 --笛卡尔积(表 * 表),连接的基础select * from emp,dept;--等值连接select * from emp e,dept d where e.deptno = d ...