文章目录

  • JAVA常用类——Math:
  • JAVA常用类——Random
  • JAVA常用类——System
  • JAVA常用类——BigDecimal
  • JAVA常用类——BigInteger


JAVA常用类——Math:

  • 概念:Math类中包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数!
  • 特点:Math类里面的属性和方法,全是静态修饰,直接使用类名调用
  • 成员属性:
public static final double E : 			自然底数
public static final double PI:			圆周率
  • 成员方法:
public static int abs(int a)			取绝对值
public static double ceil(double a)		向上取整
public static double floor(double a)	向下取整
public static int max(int a,int b)      获取最大值
public static int min(int a, int b)		获取最小值
public static double pow(double a,double b) 获取a的b次幂
public static double random()			获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
public static int round(float a) 		四舍五入
public static double sqrt(double a)		获取正平方根

JAVA常用类——Random

  • 概念:
    此类用于产生随机数。
    如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列。
  • 构造方法:
public Random()			 没有给定种子,使用的是默认的(当前系统的毫秒值)
public Random(long seed)		 给定一个long类型的种子,给定以后每一次生成的随机数是相同的
  • 成员方法:
public int nextInt()//没有参数 表示的随机数范围 是int类型的范围
	----------------------------------
	public int nextInt(int n)//可以指定一个随机数范围 
	num = random.nextInt(100); //生成的是范围是0-99
	-------------------------------------------
	void nextBytes(byte[] bytes)  生成随机字节并将其置于用户提供的空的 byte 数组中。
	---------------------------------------
	double num2 = random.nextDouble(); //生成随机小数,范围是0-1之间的小数
  • 随机类的初始化构造函数还可以调用有参数的构造(传入一个种子数),传入以后,每次利用该random生成的随机数就不变了!
public class MyTest3 {
    public static void main(String[] args) {
      /*  Random( long seed)
        使用单个 long 种子创建一个新的随机数生成器。*/

      //传入这个种子,每次重新运行,生成的随机数据就不会变
        Random random = new Random(0L);
        for (int i = 0; i < 10; i++) {
            int num = random.nextInt(10);

            System.out.println(num);
        }
    }
}
--------------
输出:(每次运行的结果都一样!)
0
8
9
7
5
3
1
1
9
4

JAVA常用类——System

  • 概念:System 类包含一些有用的类字段和方法。它不能被实例化。
  • in 或 out 示例:
public class MyTest {
public static void main(String[] args) {
   // new Scanner(System.in);
  //  System 类包含一些有用的类字段和方法。它不能被实例化。
    InputStream in = System.in;
    //in “标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输
    PrintStream out = System.out;
    //out “标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器
    /*对于简单独立的 Java 应用程序,编写一行输出数据的典型方式是:

    System.out.println(data)*/

    out.println("abc");
    System.out.println("abc");
// System.err.println("abc");
    }
}
  • exit(终止当前正在运行的 Java虚拟机)
System.exit(0);
  • 运行垃圾回收器:
两种回收方式:
int[] ints = new in[20]
(自动:)
ints = null;
(手动催促:(还是自动,不知道具体的执行时间,只能起到一个加快的作用!))
ints = null;
System.gc();
  • 获取当前系统的时间的毫秒值:
1s = 1000ms
//获取从 1970 01 01 00:00:00 到当前日期的一个间隔毫秒值
// 统计循环耗费时长:
long start = Sysem.currentTimeMillis();
for(*****){
    *****
}
long end = Sysem.currentTimeMillis();

System.out.println("耗费了"+(end-start)+"毫秒时!")

JAVA常用类——BigDecimal

  • 概念:由于在运算的时候,float类型和double很容易丢失精度对精度要求比较高,原生JAVA的double已经不能满足需求了,这时候就可以用BigDecimal,可以指定任意位的精度!。
  • 示例:
BigDecimal num1 = new BigDecimal("10.23562345032452345");
BigDecimal num2 = new BigDecimal("3.23562345032452345");
BigDecimal multiply = num1.multiply(num2);
---------------
除法需要注意一些问题:
如果不能整除,那么需要你定义保留的位数(不指定的话会报错!)
BigDecimal num1 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("3");
BigDecimal divide = num1.divide(num1,30,BigDecimal.ROUND_CEILING)
    								保留位数  最后一位的进位方法!

JAVA常用类——BigInteger

  • 概念:比long还长的数值范围(与BigDecimal类似)
  • 示例:
public class MyTest {
    public static void main(String[] args) {
    	------------------
    	如下:这样操作会使得结果超出long的最大表示范围,从而导致数值不正常!
      	long maxValue = Long.MAX_VALUE;
       	long num= maxValue+1;
        System.out.println(num);
        -------------------------
        大数字运算的方法:
        BigInteger bigInteger = new BigInteger(Long.MAX_VALUE + "");
        BigInteger bigInteger2 = new BigInteger("100");
        BigInteger multiply = bigInteger.multiply(bigInteger2);
        System.out.println(multiply);
    	}
}