20175318 2018-2019-2 实验一《Java开发环境的熟悉》实验报告

实验内容及步骤

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

使用vim编辑器编写代码


编译,运行

(二)使用IDEA进行调试

我们先新建一个项目 名字叫HelloJDB,点击finish就好了

常用的快捷键

用鼠标在「src」上点击右键,选择「New」->「Java Class」新建Java类:

我们新建一个HelloJDB

输入代码

编译运行,没有问题,我们在第五行下一个断点,鼠标单击或者使用Ctrl+F8快捷键

然后单击菜单「Run」->「Debug...」(或使用Alt+Shift+F9快捷键)开始调试Java程序,程序停留在了第5行

此时第五行的代码并没有执行,我们使用单步运行让程序运行到第6行,单步运行有两种:Step Into(快捷捷F7)和Step Over(快捷捷F8)这里和我之前破解外挂用的OD一样,在执行方法调用语句时,Step Into会跳入方法实现,Step Over会直接执行完方法
按下Step Over或F8,可以发现程序停在了第5行,这时查看变量i的值,会看到sum等于11

设置条件断点
在第9行左边断点处单击鼠标右键,弹出断点属性框,设置条件i==56

按一下F9,可以看到i=56

设置临时断点
右键断点,点击More或者按Ctrl+Shift+F8打开断点设置窗口,选中「Remove Once hit」

(三)练习:实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)

程序代码如下:

import java.io.*;
import java.util.Scanner;

public class Caeser {
    public static void main(String[] args) {
        System.out.print("请输入密钥:");
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        C(a);
    }

    public static void C(int n) {
        try {
            char b[];
            BufferedReader br2 = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("请输入一段明文:");
            String str2 = br2.readLine();
            b = str2.toCharArray();
            System.out.println("密文为:");
            int k = n;
            for (int i = 0; i < str2.length(); i++) {
                char ch = (char) ((b[i] - 'a' + k) % 26 + 'a');
                System.out.print(ch);
            }
            System.out.println("密钥K=" + k);
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
}

正常情况

边界情况

实验总结

这一段因为有事情也没有上课,很多东西都还在学习过程中,这篇博客做得不好的地方我会改正,慢慢来吧。

猜你喜欢

转载自www.cnblogs.com/L1079991001/p/10661920.html