代码托管

一、命令行下Java程序开发

在码云上建立以学号命名的仓库,再克隆到本地,建立子目录bin和src,使用vim编写程序(见码云链接exp1.java),javac编译后使用java命令运行,输出自己的学号姓名。

二、IDEA下Java程序开发、调试

(1)建立与Git的链接

首先从码云将仓库克隆到本地,选择File->New->Project from Version Control->Git,然后将仓库的链接复制到url栏并设置路径。

这样就完成了IDEA与码云的链接。



(2)开发、调试程序

右击建立的目录,选择New->Java Class,就可以创建新的类。

调试代码时可以在行号左边单击设置断点,使用Alt + shift + 9开始debug,接下来可以使用F7:step into 和F8:step over单步执行。

遇到循环是可以设置条件断点,右击断点,设置条件i==50后按F9运行到条件处

(3)上传代码至码云

ctrl + k commit

ctrl + shift + k push

三、练习

实现Fibonacci数列功能,并进行测试(正常情况,异常情况,边界情况)

我想创建一个Fibonacci类来实现

用数组迭代来避免递归效率过低的问题,代码见托管链接

测试了正常、边界(n=0)和异常(n<0)情况

四、问题及解决

  • 问题1:从码云克隆仓库以后,传下来的java无法运行,也无法新建类。原因是IDEA没有把这个目录当做源码目录。

  • 问题1解决方法:右击src目录,选择Mark dictory as中的source root就可以解决。

操作后变成这样

  • 问题2:斐波那契数列类在接收到负数参数时,无法很好的反馈异常,本来想在存入数据时判断calcNextFib()结果是否为-1来处理负数输入,但还是抛出异常。
import java.util.Arrays;

public class Fibonacci {
int length;
int[] fib; Fibonacci(int n) {
this.length = n;
fib = new int[length];
System.out.println("Please Input a positive number");
if(calcNextFib(n)<0){
for (int i = 0; i < n; i++) {
fib[i] = calcNextFib(i);
}
} else {
System.out.println("Invalid Input");
}
} private int calcNextFib(int n) {
if (n == 0 || n == 1) {
return 1;
} else if (n > 1) {
return fib[n - 1] + fib[n - 2];
} else {
return -1;
}
} void printFib() {
System.out.println(Arrays.toString(fib));
}
}

  • 问题2解决方案:查看文档,搜索抛出的异常

原来是数组定义的时候长度不能为负数,所以在给数组赋值的时候检查并没有什么用。而我用这种方式来构造斐波那契数列,正好可以用数组长度来检测输入数据的合法性,所以我想到可以直接catch这个异常,修改代码如下

···
Fibonacci(int n) {
this.length = n;
try {
fib = new int[length];
} catch (NegativeArraySizeException e) {
System.out.println("Please Input a positive number");
}
for (int i = 0; i < n; i++) {
fib[i] = calcNextFib(i);
}
}
···

之后我又测试了长度为0时,是可以的,结果创建了一个空数组,测试结果如下

五、学习总结

2018-2019-2 20175211 实验一《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. python实现类似于Matlab中的magic函数

    参考这篇文章的代码封装了一个类似Matlab中的magic函数,用来生成魔方矩阵. #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy ...

  2. sqoop导入数据到hive中元数据问题

    简单配置了sqoop之后开始使用,之前用的时候很好用,也不记得有没有启动hivemetastore,今天用的时候没有启动,结果导入数据时,如果使用了db.tablename,就会出现找不到数据库的错, ...

  3. Android Studio项目导入aar包报错

    最近在试着接入TrPay的sdk,根据它家文档需要导入它们的aar包(paysdk-release-1.2.2.aar). 在AS中怎么给安卓项目导入aar包,网上搜一下就能看到无非也就下面三步: 1 ...

  4. 推荐使用@Resource,不推荐使用@Autowired

    @Autowired 默认根据ByType, 当一个类有两个对象的时候,会报错. @Resource 默认是ByName,可以精准的找到<bean>的配置项. jar包推送,应该级联推送: ...

  5. Java编程的逻辑 (95) - Java 8的日期和时间API

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  6. SqlServer 行转一列逗号隔开

    SELECT STUFF( (SELECT ',' + convert(varchar(10),PID) FROM tt WHERE a='老王' FOR xml path('') ),1,1,'' ...

  7. redis安装相关下载

    redis-4.0.1.gem下载网址 https://rubygems.org/gems/redis/ rubyinstaller-2.3.3-x64.exe下载网址 http://dl.bintr ...

  8. The processing instruction target matching &quot;[xX][mM][lL]&quot; is not allowed.

    现象: ERROR   : The processing instruction target matching "[xX][mM][lL]" is not allowed.  异 ...

  9. 定时 清理 elasticsearch 6.5.4 的 索引 文件

    #!/bin/sh ip='127.0.0.1' port=' day=`date -d "2 days ago" +%Y%m%d` #day=`date -d "5 h ...

  10. 使用Newtonsoft将DataTable转Json

    Newtonsoft提供的将DataTable转成Json: /// <summary> /// DataTable转Json /// </summary> /// <p ...