实验知识点

  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文件,输入下面代码:

    1. public class HelloJDB {
    2. public static void main(String[] args) {
    3. int i = 5;
    4. int j = 6;
    5. int sum = add(i, j);
    6. System.out.println(sum);
    7. sum = 0;
    8. for(i=0; i< 100; i++)
    9. sum += i;
    10. System.out.println(sum);
    11. }
    12. public static int add(int augend, int addend){
    13. int sum = augend + addend;
    14. return sum;
    15. }
    16. }

    运行结果如下:

  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 模式下,进入下一步,如果当前行断点是一个方法,则进入当前方法体内,如果方法体还有方法,则会进入该内嵌的方法中,依此循环进入

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

  • 实现凯撒密码代码如下:
  1. import java.util.Scanner;
  2. public class Caesar {
  3. public static void main(String args[]) throws Exception {
  4. System.out.println("请输入明文:");
  5. Scanner sc = new Scanner(System.in);
  6. String s = sc.nextLine();
  7. System.out.println("请输入密钥:");
  8. Scanner sc1 = new Scanner(System.in);
  9. int key = sc1.nextInt();
  10. Encryption(s, key);
  11. System.out.println("请输入密文:");
  12. Scanner sc2 = new Scanner(System.in);
  13. String s1 = sc2.nextLine();
  14. System.out.println("请输入密钥:");
  15. Scanner sc3 = new Scanner(System.in);
  16. int key1 = sc3.nextInt();
  17. Decrypt(s1, key1);
  18. }
  19. public static void Encryption(String str, int k) {// 加密
  20. String string = "";
  21. for (int i = 0; i < str.length(); i++) {
  22. char c = str.charAt(i);
  23. if (c >= 'a' && c <= 'z')
  24. {
  25. c += k % 26;
  26. if (c < 'a')
  27. c += 26;
  28. if (c > 'z')
  29. c -= 26;
  30. } else if (c >= 'A' && c <= 'Z')
  31. {
  32. c += k % 26;
  33. if (c < 'A')
  34. c += 26;
  35. if (c > 'Z')
  36. c -= 26;
  37. }
  38. string += c;
  39. }
  40. System.out.println(str + " 加密后为:" + string);
  41. }
  42. public static void Decrypt(String str, int n) {// 解密
  43. int k = Integer.parseInt("-" + n);
  44. String string = "";
  45. for (int i = 0; i < str.length(); i++) {
  46. char c = str.charAt(i);
  47. if (c >= 'a' && c <= 'z')
  48. {
  49. c += k % 26;
  50. if (c < 'a')
  51. c += 26;
  52. if (c > 'z')
  53. c -= 26;
  54. } else if (c >= 'A' && c <= 'Z')
  55. {
  56. c += k % 26;
  57. if (c < 'A')
  58. c += 26;
  59. if (c > 'Z')
  60. c -= 26;
  61. }
  62. string += c;
  63. }
  64. System.out.println(str + " 解密后为:" + string);
  65. }
  66. }
  • 设计思路:

    凯撒密码的实质是移位密码体制,通过把字母移动一定的位数来实现加密和解密。由于字符在计算机中的存储是以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. 021.1 IO流——File类

    ########################################IO流:    IO:用于处理设备上的数据的技术.设备:内存,硬盘,光盘    流:系统资源,Windows系统本身就可 ...

  2. Maven经常使用命令

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/UP19910522/article/details/25985021 Maven库: http:// ...

  3. POJ1066 Treasure Hunt

    嘟嘟嘟 题意看题中的图就行:问你从给定的点出发最少需要穿过几条线段才能从正方形中出去(边界也算). 因为\(n\)很小,可以考虑比较暴力的做法.枚举在边界中的哪一个点离开的.也就是枚举四周的点\((x ...

  4. CF284A Cows and Primitive Roots

    嘟嘟嘟 这道题就是求一个奇素数\(p\)的原根数量. 公式是\(\varphi(\varphi(p))\).又因为\(p\)是质数,所以就是\(\varphi(p - 1)\). (证明啥的我不会-- ...

  5. [Java123] JDBC and Multi-Threading 多线程编程学习笔记

    项目实际需求:DB交互使用多线程实现 多线程编程基础:1.5  :( (假设总分10) 计划一个半月从头学习梳理Java多线程编程基础以及Oracle数据库交互相关的多线程实现 学习如何通过代码去验证 ...

  6. ThinkPHP5入门(一)----框架篇

    一.命名规范: 下划线法: 函数的命名 配置参数 常量(大写) 数据表和字段 驼峰法: 属性的命名 方法的命名 帕斯卡法: 类名 类文件名 类的命名

  7. sqoop mysql--->hive 报错 (ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf)

    ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apa ...

  8. 深入理解Java虚拟机(一) 运行时数据区划分

    前言:从我学Java的第一天开始,我的大学老师就告诉我 Java语言相比C.C++的语言有一个非常强大的功能,那就是自动内存管理:我们用Java编码时不需要申请或释放内存等,这些工作全部交由我们的Ja ...

  9. spring 包的依赖关系

    转自:http://www.cnblogs.com/ywlaker/p/6136625.html 很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring ...

  10. Web—07-JQuery

    jquery是一个函数库,一个js文件,页面用script标签引入这个js文件就可以使用. <script type="text/javascript" src=" ...