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

  1. package Weekly_Task;
  2. import java.util.HashSet;
  3. import java.util.Iterator;
  4. /**
  5. * @author Devil
  6. * @create 2021-10-31-23:13
  7. */
  8. public class Demo9 {
  9. public static void main(String[] args) {
  10. HashSet<Integer> set = new HashSet<>();
  11. while(set.size()<10) {
  12. set.add((int)(Math.random()*20+1));
  13. }
  14. Iterator<Integer> iter = set.iterator();
  15. while(iter.hasNext()) {
  16. System.out.print(iter.next()+" ");
  17. }
  18. }
  19. }

控制台输出:

  1. 17 18 3 19 4 5 6 9 10 12

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

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

  1. package Weekly_Task;
  2. import java.util.Scanner;
  3. /**
  4. * @author Devil
  5. * @create 2021-11-01-10:30
  6. */
  7. public class Demo10 {
  8. public static void main(String[] args) {
  9. Scanner input = new Scanner(System.in);
  10. int n = input.nextInt();
  11. System.out.println(upStairs(n));
  12. }
  13. public static int upStairs(int n) {
  14. if (n <= 0) {
  15. return 0;
  16. } else if (n == 1) {
  17. return 1;
  18. } else if (n == 2) {
  19. return 2;
  20. } else if (n == 3) {
  21. return 4;
  22. } else {
  23. return upStairs(n - 1) + upStairs(n - 2) + upStairs(n - 3);
  24. }
  25. }
  26. }

代码:

  1. package Weekly_Task;
  2. import java.util.Scanner;
  3. /**
  4. * @auther Devil(丁杨维)
  5. * @create 2021-11-01-10:33
  6. */
  7. public class Demo11 {
  8. public static void main(String[] args) {
  9. Scanner input = new Scanner(System.in);
  10. int n = input.nextInt();
  11. int ge = 0;
  12. int shi = 0;
  13. int bai = 0;
  14. ge = n%10;
  15. shi = n/10%10;
  16. bai = n/100;
  17. for(int i = 0; i<bai; i++) {
  18. System.out.print("B");
  19. }
  20. for(int i = 0; i<shi; i++) {
  21. System.out.print("S");
  22. }
  23. for(int i = 1; i<=ge; i++) {
  24. System.out.print(i);
  25. }
  26. }
  27. }

输入样例:

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

  1. 8

输出样例:

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

  1. 81

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

输入格式:

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

输出格式:

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

输入样例 1:

  1. 234

输出样例 1:

  1. BBSSS1234

输入样例 2:

  1. 23

输出样例 2:

  1. SS123

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

  1. 根据Object.HashCode的通用约定的第二条

    1. 如果两个对象根据equals(Object)方法是相等的,那么调用这两个对象中任一个对象的hashCode方法必须产生同样的整数结果。 如果我们只重写equals方法而没有重写HashCode方法就可能会出现equals方法判断为true但HashCode却不同的情况如创建一个类重写一个equals方法,只要比较其中某一个属性就判断两个对象是否相等,但未重写HashCode方法,这样就会营造出造成HashSet添加了相同的对象的情况,违背了HashCode的通用约定的第二条。

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

JDK包含JRE,JRE包含JVM。 JDK:开发者工具包、JRE:Java的运行环境和运行时类库、JVM:Java虚拟机,JDK是面向开发者使用的,JRE和JVM是面向普通用户使用的。