第三周作业

后端-第三周作业考核

1、生成10个1到20(范围:[1,20])之间的不重复的随机数

public class CaoGao {
    public static void main(String[] args) {
        List<Integer> randList = new ArrayList<>();

        Random rand = new Random();

        int tmp = 0;

        randList.add(rand.nextInt(20) + 1);

        for (int i = 2; i <=10 ; ) {
            tmp = rand.nextInt(20) + 1;
            if (!randList.contains(tmp)){
                i++;
                randList.add(tmp);

            }
        }
        System.out.println(randList);
    }
}

2、楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,也可以一步上3阶,编一程序计算共有多少种不同的走法。

输入楼梯的台阶数,输出有多少种走法。(递归)(作为思考题

输入样例:

在这里给出一组输入。例如:

8

输出样例:

在这里给出相应的输出。例如:

81
public class CaoGao {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        System.out.println(new CaoGao().upStairs(n));
    }
    public int upStairs(int n ){
        if (n == 1){
            return 1;
        }else if(n == 2){
            return 2;
        }else if (n == 3){
            return 4;
        }else {
            return upStairs(n-1)+upStairs(n-2)+upStairs(n-3);
        }
    }
}

3、让我们用字母 B 来表示“百”、字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<10),换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234,因为它有 2 个“百”、3 个“十”、以及个位的 4。

输入格式:

每个测试输入包含 1 个测试用例,给出正整数 n(<1000)。

输出格式:

每个测试用例的输出占一行,用规定的格式输出 n

输入样例 1:

234

输出样例 1:

BBSSS1234

输入样例 2:

23

输出样例 2:

SS123
public class CaoGao {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        //取余后的整数
        int tmp = scan.nextInt();
        int ge = tmp % 10;
        int shi = tmp % 100 / 10;
        int bai = tmp / 100;
        StringBuilder s = new StringBuilder();
        for (int i = 0; i < bai; i++) {
            s.append("B");
        }
        for (int i = 0; i < shi; i++) {
            s.append("S");
        }
        for (int i = 0; i < ge; i++) {
            s.append(i + 1);
        }
        System.out.println(s);
    }
}

4.为什么重写equals时候被要求重写hashCode()?

我们重写equals时,是为了用自身的方式去判断两个自定义对象是否相等,然而如果此时刚好需要我们用自定义的对象去充当hashmap的健值使用时,就会出现我们认为的同一对象,却因为hash值不同而导致hashmap中存了两个对象,从而才需要进行hashcode方法的覆盖

5.简要谈谈JDK,JVM,JRE三者的区别

jdk:

JDK(Java Development Kit) 是整个JAVA的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar).
      bin:最主要的是编译器(javac.exe)
      include:java和JVM交互用的头文件
      lib:类库
      jre:java运行环境

jre:

JRE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
JRE是指java运行环境。光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 (jre里有运行.class的java.exe)
JRE ( Java Runtime Environment ),是运行 Java 程序必不可少的(除非用其他一些编译环境编译成.exe可执行文件……),JRE的 地位就象一台PC机一样,我们写好的Win64应用程序需要操作系统帮 我们运行,同样的,我们编写的Java程序也必须要JRE才能运行。

jvm:

JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。针对java用户,也就是拥有可运行的.class文件包(jar或者war)的用户。里面主要包含了jvm和java运行时基本类库(rt.jar)。rt.jar可以简单粗暴地理解为:它就是java源码编译成的jar包。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兴趣使然的小小

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值