- 基本类型包装类
- System
- Math
- Arrays
- BigInteger
- 基本类型包装类概述
在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据,根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等。那么,想实现字符串与基本数据之间转换怎么办呢?
Java中提供了相应的对象来解决该问题,基本数据类型对象包装类:java将基本数据类型值封装成了对象。封装成对象有什么好处?可以提供更多的操作基本数值的功能。
2.System类
在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。
System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象。System类中的都是static方法,类名访问即可。在JDK中,有许多这样的类。
/**
* 验证for循环打印数字1-9999所需要使用的时间(毫秒)
*/
private static void fun1(){
long start = System.currentTimeMillis();//开始时间
for (int i = 1;i < 10000;i ++){
System.out.println(i);
}
long end = System.currentTimeMillis();//结束时间
System.out.println("for循环执行了" + (end - start) + "毫秒");
}
/**
* 将src数组中前3个元素,复制到dest数组的前3个位置上
* 复制元素前:src数组元素[1,2,3,4,5],dest数组元素[6,7,8,9,10]
* 复制元素后:src数组元素[1,2,3,4,5],dest数组元素[1,2,3,9,10]
*/
private static void fun2(){
int[] src = {1,2,3,4,5};
int[] dest = {6,7,8,9,10};
System.out.println("修改前");
System.out.println(Arrays.toString(src));
System.out.println(Arrays.toString(dest));
System.arraycopy(src,0,dest,0,3);
System.out.println("修改后");
System.out.println(Arrays.toString(src));
System.out.println(Arrays.toString(dest));
}
/**
* 循环生成100-999之间的的三位数并进行打印该数,当该数能被10整除时,结束运行的程序
*/
private static void fun3(){
for(int i = 100;i < 1000;i ++){
System.out.println(i);
if(i % 10 == 0){
System.exit(0);
}
}
}
3.Math类
Math
类是包含用于执行基本数学运算的方法的数学工具类,如初等指数、对数、平方根和三角函数。
类似这样的工具类,其所有方法均为静态方法,并且一般不会创建对象。如System类
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();
4.Arrays类
此类包含用来操作数组(比如排序和搜索)的各种方法。需要注意,如果指定数组引用为 null,则访问此类中的方法都会抛出空指针异常NullPointerException。
public static void main(String[] args) {
//返回一个受指定数组支持的固定大小的列表(将其转换成list集合)
List<Integer> integers = Arrays.asList(1, 2, 3, 4, 5);
System.out.println(integers);
//复制指定的数组,截取或用0填充(如有必要),以使副本具有指定的长度
int[] arr = {1,2,3,4,5,6};
int[] ints = Arrays.copyOf(arr, 6);
System.out.println(Arrays.toString(ints));
//将指定数组的指定范围复制到一个新数组
int[] ints1 =Arrays.copyOfRange(arr,1,4);
System.out.println(Arrays.toString(ints1));
//将制定的值分配给指定数组的每个元素
Arrays.fill(ints1,100);
System.out.println(Arrays.toString(ints1));
}
5.大数据运算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);
}