zoukankan      html  css  js  c++  java
  • 02-实验性问题总结归纳

    02-方法

    动手动脑问题和课后实验性问题总结

    一、编写一个方法,使用以上算法生成指定数目(比如1000个)的随机整数。

    //生成指定数目的随机数

    package suijishu;

    import java.util.*;

    public class Suijishu

    {

           public static void main(String[] args)

           {

                  Random rand=new Random();

                  Scanner input=new Scanner(System.in);

                  int n;

                  System.out.print("输入产生随机数的个数:");

                  n=input.nextInt();

                  for(int i=0;i<n;i++)//通过循环实现输出若干个随机整数

                  {

                         int x=rand.nextInt(100);//随机产生一个种子

                         int seed=(7^5*x+0)%(2147483647-1);

                         System.out.print(seed+" ");//生成随机整数

                  }

           }

    }

    二、请看以下代码,你发现了有什么特殊之处吗?

    public class MethodOverload {

           public static void main(String[] args) {

                  System.out.println("The square of integer 7 is " + square(7));

                  System.out.println(" The square of double 7.5 is " + square(7.5));

           }

           public static int square(int x) {

                  return x * x;

           }

           public static double square(double y) {

                  return y * y;

           }

    }

    此段代码用到了重载的方法,形参分别为int x和double y。其中,两个方法名必须相同,因为此段代码中的参数类型不同,所以能够形成重载的关系。

    三、查看一下JDK中System.out.println()方法,你发现了什么?

    System.out.println()是System提供的标准输出流。

    System.out.println(“12345”);//直接输出12345

    System.out.println(“i=”+i);//+用于拼接

    System.out.println(i);//直接输出变量

    System.out是一个PrintStream实例的引用;System.out::println 是对一个实例方法的引用。该引用同时指定了对实例(System.out)的引用以及对方法(PrintStream::println)的引用。System.out::println 不是 System.out.println 的等价物;前者是一个方法引用表达式,而后者不能单独作为一个表达式,而必须在后面跟上由圆括号包围的参数列表来构成方法调用表达式。System.out::println 可以看作 lambda表达式 e -> System.out.println(e) 的缩写形式。

    四、CalculateN示例程序中的BUG,阶乘数为什么会出现负数?

    import java.math.BigInteger;

    import java.util.Scanner;

    public class CalculateN {

           public static void main(String[] args) {

                  System.out.print("请输入N:");

                  Scanner scanner=new Scanner(System.in);

                  int number=scanner.nextInt();

                  System.out.println(number+"!="+calculateN2(number));

           }

           public static long calculateN(int n) {

                  if(n==1 || n==0){

                         return 1;

                  }

                  return n*calculateN(n-1);

           }

           public static BigInteger calculateN2(int n) {

                  if(n==1 || n==0){

                         return BigInteger.valueOf(1);

                  }

                  return BigInteger.valueOf(n).multiply(calculateN2((n-1)));

           }

    }

    由于计算机使用固定的位数来保存数值,因此,能处理的数值大小是有限的,当要处理的数值超过了这一范围时,计算机将会自动截断数值的二进制表示为它所能处理的最多位数,这将导致错误的处理结果。

  • 相关阅读:
    [001]
    SpringBoot默认首页跳转设置
    Tomcat网站根目录设置
    SpringBoot获取前端传递JSON的几种方法
    MySQL调优性能监控之show profile
    MySQL新特性MTS
    Java线程池拒绝策略
    快速排序与荷兰国旗及Partition问题
    数据结构与算法之返回最小和问题
    MySQL之谓词下推
  • 原文地址:https://www.cnblogs.com/wenqiu1998/p/7658256.html
Copyright © 2011-2022 走看看