Java基础20-System、Math、Arrays、BigDecimal/Integer

一、Arrays类

此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。

1.常用方法

    public static void main(String[] args) {
     int[] arr= {1,5,6,8,3,5,2,4,9};
     //将int数组转化为字符串
     String ret=Arrays.toString(arr);
     System.out.println(ret);
     //排序,第二到第六个数进行排序
     Arrays.sort(arr,2,6);
     System.out.println(Arrays.toString(arr));
     //所有书进行排序,从小到大
     Arrays.sort(arr);
     System.out.println(Arrays.toString(arr));
     //在指定数组中,查找给定元素值出现的位置。若没有查询到,返回位置为-1。要求该数组必须是个有序的数组。
     System.out.println(Arrays.binarySearch(arr,6));
    }

二、System类

System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。

1.常用方法

public static void main(String[] args) {
//?获取当前系统时间与1970年01月01日00:00点之间的毫秒差值
    long time=System.currentTimeMillis();
    //可以用来测试程序运行的时长
    System.out.println(time);
    //?用来结束正在运行的Java程序。参数传入一个数字即可。通常传入0记为正常状态,其他为异常状态
    System.exit(0);
    System.out.println("ending");
}

public static void main(String[] args) {
    //System类中数组拷贝方法arrayCopy
    //该方法没有方法体,该方法使用了native修饰符(本地方法),底层使用了c/c++语言
    int[] src={1,2,3,65,6,9};
    //System.arraycopy(src, srcPos, dest, destPos, length);
//    src - 源数组。
//    srcPos - 源数组中的起始位置。
//    dest - 目标数组。
//    destPos - 目标数据中的起始位置。
//    length - 要复制的数组元素的数量。
    //从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
}

二、Math类

Math包含了用于执行基本数学运算的方法,如初等质数、对数、平方根和三角函数等,都是静态方法。

1.常用方法

?//abs方法,结果都为正数
double d1 = Math.abs(-5); // d1的值为5
double d2 = Math.abs(5); // d2的值为5
?//ceil方法,结果为比参数值大的最小整数的double值
double d1 = Math.ceil(3.3); //d1的值为 4.0
double d2 = Math.ceil(-3.3); //d2的值为 -3.0
double d3 = Math.ceil(5.1); // d3的值为 6.0
?//floor方法,结果为比参数值小的最大整数的double值
double d1 = Math.floor(3.3); //d1的值为3.0
double d2 = Math.floor(-3.3); //d2的值为-4.0
double d3 = Math.floor(5.1); //d3的值为 5.0
?//max方法,返回两个参数值中较大的值
double d1 = Math.max(3.3, 5.5); //d1的值为5.5
double d2 = Math.max(-3.3, -5.5); //d2的值为-3.3
//?min方法,返回两个参数值中较小的值
double d1 = Math.min(3.3, 5.5); //d1的值为3.3
double d2 = Math.max(-3.3, -5.5); //d2的值为-5.5
//?pow方法,返回第一个参数的第二个参数次幂的值
double d1 = Math.pow(2.0, 3.0); //d1的值为 8.0
double d2 = Math.pow(3.0, 3.0); //d2的值为27.0
//?round方法,返回参数值四舍五入的结果
double d1 = Math.round(5.5); //d1的值为6.0
double d2 = Math.round(5.4); //d2的值为5.0
//?random方法,产生一个大于等于0.0且小于1.0的double小数
double d1 = Math.random();

四、BigDecimal/BigInteger

float和double都不能表示精确的小数,此时使用Bigdecimal,用于处理金钱和精度要求高的数据

Bigdecimal

可以实现浮点数据的高精度运算

但这样加起来的数据也并不准确,那怎么办呢?

原来这个地方需要用到字符串类型才可以保证数据的准确性

BigInteger

java中long型为最大整数类型,对于超过long型的数据如何去表示呢.在Java的世界中,超过long型的整数已经不能被称为整数了,它们被封装成BigInteger对象.在BigInteger类中,实现四则运算都是方法来实现,并不是采用运算符.

public static void main(String[] args) {
        //大数据封装为BigInteger对象
          BigInteger big1 = new BigInteger("12345678909876543210");
          BigInteger big2 = new BigInteger("98765432101234567890");
          //add实现加法运算
          BigInteger bigAdd = big1.add(big2);
          //subtract实现减法运算
          BigInteger bigSub = big1.subtract(big2);
          //multiply实现乘法运算
          BigInteger bigMul = big1.multiply(big2);
          //divide实现除法运算
          BigInteger bigDiv = big2.divide(big1);
}

原文地址:https://www.cnblogs.com/LuckyGJX/p/9069897.html

时间: 2024-10-12 02:50:32

Java基础20-System、Math、Arrays、BigDecimal/Integer的相关文章

Java基础 之 System.getProperty()方法

Java基础 之 System.getProperty()方法大全 1 public static void main(String[] args) { 2 System.out.println("java版本号:" + System.getProperty("java.version")); // java版本号 3 System.out.println("Java提供商名称:" + System.getProperty("java.

Java基础知识强化89:BigDecimal类之BigDecimal类引入和概述 以及 BigDecimal的使用(加减乘除)

1. BigDecimal类概述: 由于在运算的时候,float类型和double很容易丢失精度.所以为了能够精确的表达.计算浮点数,Java提供了BigDecimal. BigDecimal:不可变.任意精度的有符号十进制数. 2. BigDecimal构造方法 1 public BigDecimal(String val) 3. BigDecimal的使用(加减乘除) 1 public BigDecimal add(BigDecimal augend):加 2 public BigDecim

1.Java基础之System对象

毕向东老师Java基础学习笔记——System对象 今天学习Java中的System对象后,感觉这个对象对我们主要有以下几点用处. 1.获取当前操作系统版本和类型. 2.获取当前操作系统的path中的环境变量. 范例代码如下: /* System:类中的方法和属性都是静态的. out:标准输出,默认是控制台. in:标准输入,默认是键盘. 描述系统一些信息 获取系统属性信息:Propcrtics */ import java.util.*; class SystemDemo { public s

整理Java基础知识--Number&Math类

Java Number内置数据类型:byte int long short double 等 int i = 10: float i = 10.5f; 实际开发中,经常遇到使用对象,而不是内置数据类型,包装类(Integer Long Double Float Short)都是抽象类 Number的子类内置数据类型被当作对象使用时,编译器会把内置类型装箱为包装类 class Test{ public static void main(String[] args){ Integer i = 10;

Java基础语法<六> 数组 Arrays

允许数组长度为0 new element[0] 数组长度为0与null不同 数组拷贝 允许将一个数组变量拷贝给另一个数组变量.这时,两个变量将引用同一个数组: int[] ele1 = ele2; ele1[5] = 12; //now ele2[5] is also 12 如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyTo方法: int[] copiedele = Arrays.copyOf(ele1,ele1.length); 第2个参数为数组的长度,通常

Java基础之System类

System类主要用于:计算代码的执行时间     进行垃圾收集操作 public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)//实现数组拷贝. src -源阵列. srcPos -源数组中的起始位置. dest -目标数组. destPos在目标数据的起始位置. length -数组元素的数目被复制. public static long currentTimeMilli

Java基础(38)Arrays.binarySearch方法

1.源码中可以看到,binarySearch方法调用了binarySearch0方法,binarySearch0方法才是标准的二分查找实现. 2.对于binarySearch0方法来说,注意最后的return语句return -(low + 1); // key not found.,也就是说,在没有发现要查找的key的时候,返回的是负的插入点值,所谓插入点值就是第一个比key大的元素在数组中的索引,而且这个索引是从1开始的. 例如:有数组{4,6,10,21,25,95} 分别执行下面的查询操

Java基础-重写System.out.println方法

PrintStream myStream = new PrintStream(System.out) { @Override public void println(String x) { super.println(System.currentTimeMillis() + ": " + x); } }; System.setOut(myStream); System.out.println("Hello World!"); --------------------

04、Java基础语法(循环嵌套、break、continue、方法、方法的重载、数组动态初始化)

复习: 流程控制语句 - 顺序结构 - 分支结构 - if-else - switch - 循环结构 - for - while - do...while 1.循环嵌套 2.控制循环的语句 3.方法 4.方法的重载 5.数组的动态初始化 1.循环嵌套 ctrl + alt + L 格式化代码 "\n"换行符 "\t"制表符 九九乘法表 for (int i = 1; i < 10; i++) { for (int j = 1; j <= i; j++)