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)));

           }

    }

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

  • 相关阅读:
    APP性能之终端兼容优化分享
    Java反射机制
    语音编码的WAVE文件头格式剖析
    【原创】ASP.NET MVC3开发中遇到问题以及解决方法
    linux常用命令(基础)
    vue中粘贴板clipboard的使用方法
    解决部署zabbix中zabbixagent的状态为灰色现象
    IAR Embedded Workbench for ARM: Porting code from V4 to V5 ( for stm32)
    MSDN帮助文档 "无法显示该网页" 的问题解决方案(转)
    二叉排序树求每个结点平衡因子程序
  • 原文地址:https://www.cnblogs.com/wenqiu1998/p/7658256.html
Copyright © 2011-2022 走看看