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("\nThe 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
来源: http://www.bubuko.com/infodetail-2807482.html