栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

第三周作业

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第三周作业

后端-第三周作业考核

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

public class CaoGao {
    public static void main(String[] args) {
        List 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的能够“一次编译,到处运行”的原因。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/490355.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号