实验知识点

  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帮助文档的使用。

实验内容及步骤

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

命令行下的程序开发

  • 步骤一(新建文件夹):

    1. 打开windows下的cmd(Windows键+R)
    2. 输入cd Code命令进入Code目录
    3. 输入md 20155330test建立以自己学号命名的文件夹
    4. 输入cd 20155330test进入文件夹
    5. 输入md exp1建立“实验一”文件夹
    6. 输入cd exp1进入“实验一”文件夹

  • 步骤二(编译、运行java程序):

    1. 使用vim编辑器编辑java程序,并在vim编辑器中输入以下内容

    2. 在命令行下编译、运行,结果如下

使用IDEA编辑、编译、运行、调试Java程序

  1. 创建HelloJDB文件,输入下面代码:

     public class HelloJDB {
    public static void main(String[] args) {
    int i = 5;
    int j = 6;
    int sum = add(i, j);
    System.out.println(sum);
    sum = 0;
    for(i=0; i< 100; i++)
    sum += i;
    System.out.println(sum);
    } public static int add(int augend, int addend){
    int sum = augend + addend;
    return sum;
    }
    }

    运行结果如下:

  2. 在需要设置断点的一行左侧单击鼠标,出现红色圆点。如下在第五行设置了断点,Debug单步调试后输出了结果:

    在IDEA中可选择单步调试的方式有如下三种:

  3. 单击Step Over继续向下执行,执行完方法。得到运行结果sum=11。

Debug 常用快捷键

快捷键 介绍
F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果该方法体还有方法,则不会进入该内嵌的方法中 必备
F8 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则不进入当前方法体内 必备
F9 在 Debug 模式下,恢复程序运行,但是如果该断点下面代码还有断点则停在下一个断点上 必备
Alt + F8 在 Debug 的状态下,选中对象,弹出可输入计算表达式调试框,查看该输入内容的调试结果 必备
Ctrl + F8 在 Debug 模式下,设置光标当前行为断点,如果当前已经是断点则去掉断点
Shift + F7 在 Debug 模式下,智能步入。断点所在行上有多个方法调用,会弹出进入哪个方法
Shift + F8 在 Debug 模式下,跳出,表现出来的效果跟 F9 一样
Ctrl + Shift + F8 在 Debug 模式下,指定断点进入条件
Alt + Shift + F7 在 Debug 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入

练习:实现凯撒密码,并进行测试。

  • 实现凯撒密码代码如下:
import java.util.Scanner;
public class Caesar {
public static void main(String args[]) throws Exception {
System.out.println("请输入明文:");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println("请输入密钥:");
Scanner sc1 = new Scanner(System.in);
int key = sc1.nextInt();
Encryption(s, key);
System.out.println("请输入密文:");
Scanner sc2 = new Scanner(System.in);
String s1 = sc2.nextLine();
System.out.println("请输入密钥:");
Scanner sc3 = new Scanner(System.in);
int key1 = sc3.nextInt();
Decrypt(s1, key1);
}
public static void Encryption(String str, int k) {// 加密
String string = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z')
{
c += k % 26;
if (c < 'a')
c += 26;
if (c > 'z')
c -= 26;
} else if (c >= 'A' && c <= 'Z')
{
c += k % 26;
if (c < 'A')
c += 26;
if (c > 'Z')
c -= 26;
}
string += c;
}
System.out.println(str + " 加密后为:" + string);
}
public static void Decrypt(String str, int n) {// 解密
int k = Integer.parseInt("-" + n);
String string = "";
for (int i = 0; i < str.length(); i++) {
char c = str.charAt(i);
if (c >= 'a' && c <= 'z')
{
c += k % 26;
if (c < 'a')
c += 26;
if (c > 'z')
c -= 26;
} else if (c >= 'A' && c <= 'Z')
{
c += k % 26;
if (c < 'A')
c += 26;
if (c > 'Z')
c -= 26;
}
string += c;
}
System.out.println(str + " 解密后为:" + string);
}
}
  • 设计思路:

    凯撒密码的实质是移位密码体制,通过把字母移动一定的位数来实现加密和解密。由于字符在计算机中的存储是以ASCII码的形式存储,那么只要在用户输入的字符串每位加上一定的数字便能得加密到一串密文,解密的过程相似。在程序中给出了输入明文/密文和密钥提示。

  • 运行结果:

实验过程中遇到的问题

  • 问题1:在命令行下编译运行java时出现以下问题
  • 解决方案:在尝试了更改环境变量添加ClASSPATH各种网络上常见方法后发现,是由于将JDK和JRE文件夹存在了电脑上的Program Files而不是Program Files(x86)中,在移动文件夹后问题得到了解决。

实验体会与总结

由于之前的密码学实验刚好也是类似的程序设计,所以在设计代码方面没有太多的难处,核心的思想是差不多的。需要注意的是,在java中的一些语法特别是输入输出方面与之前的C有所不同。这次的程序进行了简单的模块化,将加/解密分别进行了编写。但是java作为一门面向对象语言,在这方面的运用还有所欠缺,目前自编程序大多数还是继承了之前C语言的思想,希望在不断的学习中能够更好的运用java语言。

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

20155330 实验一《Java开发环境的熟悉》(Windows+IDEA)实验报告的更多相关文章

  1. 20145314郑凯杰 《Java程序设计》实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告

    20145314郑凯杰 <Java程序设计>实验一 Java开发环境的熟悉(Windows + Eclipse)实验报告 实验要求 •使用JDK编译.运行简单的Java程序: •使用Ecl ...

  2. 20145239 实验一 Java开发环境的熟悉(Windows + IDEA)

    实验一 Java开发环境的熟悉(Windows + IDEA) 实验内容 1.使用JDK编译.运行简单的Java程序:2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验知识点 1.JV ...

  3. 20155324 《Java程序设计》实验一 Java开发环境的熟悉(Windws + IDEA)实验报告

    20155324 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA 编辑. ...

  4. 20155227 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉(Windws + IDEA)实验报告

    20155227 2016-2017-2 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: ...

  5. 20145219 《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)实验报告

    20145219 <Java程序设计>实验一 Java开发环境的熟悉(Windws + IDEA)实验报告 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA 编辑. ...

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

    实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Java程序. 实验要求 1.没 ...

  7. 20145225《Java程序设计》实验一 Java开发环境的熟悉(Linux + Eclipse)

    20145225<Java程序设计> 实验一 Java开发环境的熟悉(Linux + Eclipse) 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑 ...

  8. 实验一 Java开发环境的熟悉(Linux + Idea) 20175301李锦然

    https://gitee.com/ShengHuoZaiDaXue/20175301.git 实验一 Java开发环境的熟悉(Linux + Idea) 实验内容 1.使用JDK编译.运行简单的Ja ...

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

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

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

    20165206 实验一 Java开发环境的熟悉 一.实验内容及步骤 实验一 Java开发环境的熟悉-1 建立有自己学号的实验目录. 通过vim Hello.java编辑代码. 编译.运行Hello. ...

随机推荐

  1. Math Summary 数论总结

    一.素数 Miller-Rabin 首先介绍一下伪素数:若n是一个正整数,且存在正整数a满足$a^{n-1}\equiv1\;(mod\;n)$ (费马小定理,但n不一定为素数) 那么我们说n是基于a ...

  2. 【【模板】严格次小生成树[BJWC2010]】

    树上的路径怎么能没有树剖 显然,次小生成树和最小生成树只在一条边上有差距,于是我们就可以枚举这一条边,将所有边加入最小生成树,之后再来从这些并不是那么小的生成树中找到那个最小的 我们往最小生成树里加入 ...

  3. P2258 子矩阵

    题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第 222 . 444 行和第 222 ...

  4. python反序列化

    import pickle import os class A(object): def __reduce__(self): a = """python -c 'impo ...

  5. 【PHP】mysql_insert_id() 函数

    mysql_insert_id() 函数返回上一步 INSERT 操作产生的 ID. 如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0. ...

  6. 【webpack】理解配置文件

    学习链接: http://blog.csdn.net/hongchh/article/details/55113751 https://segmentfault.com/a/1190000009356 ...

  7. 6 spark 存储体系 --内存管理

    6.5  memoryMode

  8. javascript中获取dom元素高度和宽度

    javascript中获取dom元素高度和宽度的方法如下: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网 ...

  9. linux mysql access denied for user ‘root’@’localhost'(using password:YES)

    linux安装完mysql后,使用程序连接报以上错误解决方法,重新设置密码,步骤如下 1.先停掉原来的服务 service mysqld stop 2.使用安全模式登陆,跳过密码验证 mysqld_s ...

  10. 所有流媒体协议,编解码规范和媒体封装格式的datasheet的下载地址

    https://github.com/jiayayao/DataSheet All datasheet about stream protocol, encode-decode spec and me ...