zoukankan      html  css  js  c++  java
  • 0129 System类 Math类 Arrays类 大数据运算

    1、System系统类

    系统类不能创建对象,因为是系统不能随随便便访问

    常见类成员方法,这些成员方法是被静态修饰的,所以可以直接通过类名直接调用

    (1)currentTimeMillis() 创建当前系统日期时间的毫秒值,返回值是一个long类型

    例:long time=System.currentTimeMillis();

    还有date类中的gettime()方法也可以创建当前系统日期的毫秒值

    例:long time2=new Date().gettime();

    (2)exit(int index)终止java运行虚拟机,如果index是非零的时候是异常终止

    例:

    for(int i=1;i<100;i++){
      System.out.println(i);
      if(i==50){
    	System.exit(0);
        }
      }
    

    (3)gc()运行垃圾回收器

    例:

    创建一个person类

    public class Person {
            //当当前对象被销毁时调用
    	protected void finalize() throws Throwable {
    		System.out.println("对象被销毁了");
    	}
    }    
    

      创建一个测试类

    public class Demo02 {
    
    	public static void main(String[] args) {
    		new Person();
    		new Person();
    		new Person();
    		new Person();
    		new Person();
    		//调用这个gc垃圾回收方法,就会调用这个类中的finallize方法
    		System.gc();
    	}
    //运行结果
    //对象被销毁了
    //对象被销毁了
    //对象被销毁了
    //对象被销毁了
    //对象被销毁了
    }
    

      (4)arraycopy(arr,index,brr,index2,length)含义是:将arr数组中的从index开始,复制到brr数组从index2开始,复制length长度

    例:

    public class Demo03 {
    
    	public static void main(String[] args) {
    		//原数组
    		int[] arr={1,2,3,4,5,6};
    		//目标数组
    		int[] brr={22,33,44,55};
    		//复制
    		System.arraycopy(arr, 0, brr, 2, 2);
    		for(int i=0;i<brr.length;i++){
    			System.out.print(brr[i]+"	");
    		}
    	}
    
    }
    

      

    2、Math类

    常用类方法

    (1)abs(double a);返回a的绝对值,返回值是double类型

    (2)celis(double a)向上取整,返回值是double类型

    (3)floor(double a)向下取整,返回值是double类型

    (4)max(double a,double b)a,b中的最大值,返回值是double类型

    (5)min(double a,double b)a,b中最小值,返回值是double类型

    (6)pow(double a,int b)a的b次方幂,返回值是double类型

    (7)random();0-1之间的随机小数,包含0不包含1,返回值是double类型

    (8)round(double a)四舍五入,返回值是double类型

    例:

    public class Demo04 {
    
    	public static void main(String[] args) {
    		//绝对值
    		System.out.println(Math.abs(-12.1));
    		//向上取整
    		System.out.println((int)Math.ceil(12.1));
    		//向下取整
    		System.out.println((int)Math.floor(12.9));
    		//最大值
    		System.out.println(Math.max(12.1, 12.9));
    		//最小值
    		System.out.println(Math.min(12, 11));
    		//幂次方
    		System.out.println(Math.pow(2, 10));
    		//随机小数
    		System.out.println(Math.random());
    		//四舍五入
    		System.out.println(Math.round(12.5));
    	}
    
    }
    

    3、Arrays类

    常用类方法,这些方法都是用static 修饰

    (1)sort(int [] a);排序,将a数组按照升序排列

    int[] arr={56,84,23,6,12,45};
    //排序
    Arrays.sort(arr);
    System.out.println(Arrays.toString(arr));            
    

    (2)binarySearch(int [] a,index);返回index在a数组中的位置下标,如果index不在数组中,则返回负的他应该在的位置减一

    //查找元素在数组中的位置
    		int index=Arrays.binarySearch(arr, 13);//如果元素不存在就返回负的该在位置减一
    		System.out.println(index);
    

    4、大数据运算

    (1)BigInterger类

    构造方法

    BigInterger(string a);在创建对象的时候就将字符串a转变成了大类型数据,就可以调用方法进行相应的运算

    成员运算方法:

    add(BigInterger b)//加法

    subtract(BigInterger b)//减法

    multiply(BigInterger b)//成

    divde(BigInterger b)//除

    例:

    public class Demo06 {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    
    		BigInteger b1=new BigInteger("1000000000000000000000000000000000");
    		BigInteger b2=new BigInteger("1000000000000000000000000000000000");
    		//加法
    		System.out.println(b1.add(b2));
    		//减法
    		System.out.println(b2.subtract(b1));
    		//惩罚
    		System.out.println(b1.multiply(b2));
    		//触发
    		System.out.println(b2.divide(b1));
    	}
    
    }
    

      (2) BigDecimal类

    java在运算过程中经常出现丢精度的问题

    例如

    System.out.println(0.09 + 0.01);
    System.out.println(1.0 - 0.32);
    System.out.println(1.015 * 100);
    System.out.println(1.301 / 100);
    //运行结果
    //0.09999999999999999
    //0.6799999999999999
    //101.49999999999999
    //0.013009999999999999
    

      就通过 BigDecimal类来解决这个问题

    构造方法  BigDecimal(string a)

    成员类方法与BigInterger类中的运算类方法一样

    例如;

    BigDecimal b1=new BigDecimal("0.09");
    BigDecimal b2=new BigDecimal("0.01");
     //加法
    System.out.println(b1.add(b2));
    
    BigDecimal b3=new BigDecimal("1.0");
    BigDecimal b4=new BigDecimal("0.32");
     //减法
    System.out.println(b3.subtract(b4));
    
    BigDecimal b5=new BigDecimal("1.015");
    BigDecimal b6=new BigDecimal("100");
    //乘法
    System.out.println(b5.multiply(b6));
    
    BigDecimal b7=new BigDecimal("1.301");
    BigDecimal b8=new BigDecimal("100");
    //除法
    System.out.println(b7.divide(b8));
    

      运行结果

    0.10
    0.68
    101.500
    0.01301

  • 相关阅读:
    Mac上的USB存储设备使用痕迹在新版操作系统有所变化
    Beware of the encrypted VM
    A barrier for Mobile Forensics
    Second Space could let suspect play two different roles easily
    Take advantage of Checkra1n to Jailbreak iDevice for App analysis
    Find out "Who" and "Where"
    Where is the clone one and how to extract it?
    Downgrade extraction on phones running Android 7/8/9
    高版本安卓手机的取证未来
    How to extract WeChat chat messages from a smartphone running Android 7.x or above
  • 原文地址:https://www.cnblogs.com/-gongxue/p/14344136.html
Copyright © 2011-2022 走看看