动手动脑2

Posted wxy2000

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动手动脑2相关的知识,希望对你有一定的参考价值。

1.纯随机数生成方法:

我们可以用math.random来生成随机数,但是通过这种方法生成的随机数会出现重复,因此它生成的随机数称为伪随机数。为了避免发生重复,可以运用种子和random类共同生成随机数,这种方法通过对种子的不断更新进行随机数的输出,而使重复的概率大大降低,以下是老师提供的生成随机数的公式x[n+1]=(ax[n]+c) mod m,生成的随机数可以称为纯随机数。

生成纯随机数的源代码如下:

package suijishu;
import java.util.Random;
import java.util.Scanner;
public class Dong_1 {
	public static void main(String[] args)
	{
		shengcheng();//调用随机数生成的函数
	}
	private static void shengcheng()//定义生成随机数的方法
	{
		long seed=1000;
		Scanner reader=new Scanner(System.in);
		System.out.println("请输入所生成随机数的个数")	;
		int ge=reader.nextInt();
		for(int i=0;i<ge;i++)
		{
			seed=setseed(seed);
			Random a=new Random(seed);//种子
			System.out.println(a.nextInt());
		}
		
		
	}
	private static long setseed(long seed)
	{//生成种子
		long seeds;
		seeds=(long) ((16807*seed)%(2e31-1));
		return seeds;
	}

}

2.jdk的System.out.println方法

以下是jdk中此方法的源码

//System.out.println()的jdk源码:
    /**
     * Prints a String and then terminate the line.  This method behaves as
     * though it invokes <code>{@link #print(String)}</code> and then
     * <code>{@link #println()}</code>.
     *
     * @param x  The <code>String</code> to be printed.
     */
    public void println(String x) {
        synchronized (this) {
            print(x);
            newLine();
        }
    }

  通过源码可知System是一个类,继承自根类Object,out是类PrintStream类实例化的一个对象,且是System类的静态成员变量,println()是PrintStream的成员方法,被对象out调用。通过查询可知在Java项目中日志输出不建议使用System.out.println(),和log4j等日志工具相比,除了不能对日志进行灵活配置还会影响其性能,代码中的System.out.println()和Java运行程序在同一线程,业务程序会等待system.out的动作导致资源被占用。所以得出结论大量使用system.out.println()势必会影响项目的性能。

3.以下程序的特殊之处

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 squre(int x)
	{
		return x*x;
	}
	public static double square(double y) {
		return y*y;
	}

}

  此程序运行后的结果为

The square of integer 7 is49.0

The square of double 7.5 is56.25

  通过观察两个函数的函数名相同,数据类型不同,所以使用相同的函数名可以执行不同的操作。

4.Java的方法重载

方法名相同

方法的参数类型,参数个数不一样

方法的返回值类型可以不相同(返回值不作为方法重载的判断条件)

方法的修饰符可以不相同

main方法也可以被重载

  

以上是关于动手动脑2的主要内容,如果未能解决你的问题,请参考以下文章

方法的动手动脑

动手动脑02

第七周动手动脑(2018.10.29-11.4)

动手动脑2

第三次 动手动脑

JAVA09异常处理之动手动脑问题