Java System,Math,Integer类的基本用法和特点

864 阅读7分钟

一.System类

System类为Java的系统类,位于Java.lang 包中,由于该类的构造方法是private的,所以该类不能实例化该类,不嫩创建该类对象,其成员变量和方法都是static的,此外还提供了访问操作系统、环境变量、访问虚拟机环境变量、复制数组、垃圾回收等一系列使用方法。

  • 标准输入输出, 如out、in、err
  • 外部定义的属性和环境变量的访问,如getenv()/setenv()和getProperties()/setProperties()
  • 加载文件和类库的方法,如load()和loadLibrary()、
  • 快速拷贝数组的方法:arraycopy()
  • jvm操作:如gc()、runFinalization()、exit(),该部分并未在源码的java
  • doc中提到,可能因为本身不建议主动调用吧。而且这几个方法都仅仅是Runtime.getRuntime()的调用,两者没有区别
  • 获取时间方法:System.nanoTime 和 System.currentTimeMillis System类中提供了一些系统级的操作方法,这些方法实现的功能分别如下:

1.arraycopy方法 System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

  • 参数 含义
  • src 源数组
  • srcPos 源数组开始截取的位置,从 0 开始
  • dest 目标数组
  • destPos 目标数组开始拷贝的位置,从 0 开始
  • length 截取长度

使用实例: int[] a = {1,2,3,4}; int[] b = new int[5]; System.arraycopy(a,1,b,3,2); 该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。

2.System.currentTimeMillis()

获取当前时间戳,单位为毫秒

3.public static void exit(int status)

终止正在运行的java虚拟机。参数用作状态码,根据惯例,非0表示异常终止,0表示正常退出

4.public static void gc()

该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。

二.Math类

Math类包含一系列执行数值运算的方法,如:指数,对数,平方根等,Math类的等效函数的所有实现都没有定义返回相同结果的位。

(1)字段(filed)

Math类的静态属性: static double E:自然对数的底。 static double PI:圆周率

(2)方法

sin:获取正弦值

特点:返回指定的double类型参数的正弦值,如果参数是NaN或无穷大,则结果为NaN。如果参数时0,则结果为0,符号与参数相同。 用法举例:System.out.println(Math.sin(Math.toRadians(90);//1.0

cos:获取余弦值

返回指定double类型参数的余弦值。 特殊情况:如果参数时NaN或无穷大,则结果为NaN。 用法举例:System.out.println(Math.cos(Math.toRadians(45.0);//0.707

tan:获取正切值

返回指定double类型参数的正切值。特殊情况:如果参数是NaN或无穷大,则结果为NaN。如果参数时0,则结果为0,符号与参数相同。 System.out.println(Math.tan(Math.toRadians(45.0)));//1

asin:获取反正弦值

返回指定double类型参数的反正弦值。返回角度在-pi/2到pi/2范围内。特殊情况:如果参数为NaN或其绝对值大于1,则结果为NaN。 如果参数为0,则结果为0,符号与参数相同 //使用toDegrees将参数转成角度 System.out.println(Math.toDegrees(Math.asin(0.7071)));//45°

acos:获取反余弦值

返回指定double类型参数的反余弦值。返回值在0到pi范围。特殊情况:如果参数为NaN或其绝对值大于1,则结果为NaN。 System.out.println(Math.toDegrees(Math.acos(0)));//90°

获取反正切值( atan )

返回指定double类型参数的反正切值。返回角度在-pi/2到pi/2范围内。特殊情况:如果参数为NaN,则结果为NaN。如果参数为0,则结果为0,符号与参数相同。 System.out.println(Math.toDegrees(Math.atan(1)));//45°

toRadians:将角度转化为弧度

将以度为单位的角度转换为以弧度为单位的近似等效角度。从度到弧度的转换通常是不精确的。 System.out.println(Math.toRadians(45.0));//0.785

exp:返回自然数底数e的参数次方

返回自然数底数e的参数次方。特殊情况:如果参数值是NaN,则返回NaN。如果参数值是正无穷大,则返回正无穷大。如果参数值是负无穷大,则返回0。 System.out.println(Math.exp(4.0));//54.60

toDegrees:将参数转化为度数

将以弧度为单位的角度转换为以度为单位的近似等效角度。从弧度到度数的转换通常是不精确的。 System.out.println(Math.toDegrees(0.785));//45°

log:返回自然数底数的对数值

返回参数的自然数底数的对数值。特殊情况:如果参数为NaN或小于0,则结果为NaN。 如果参数为正无穷大,则结果为正无穷大。 如果参数为0,则结果为负无穷大。 System.out.println(Math.log(54.60));//4.0

log10返回以10为底数的对数值

返回以10为底数的对数值。特殊情况如果参数为NaN或小于0,则返回NaN。如果参数为正无穷大,则结果为正无穷大。如果参数为0,则结果为负无穷大。如果整数n的参数等于10n,则结果为n。 System.out.println(Math.log10(100));//2.0

sqrt:算术平方根

求参数的算术平方根。特殊情况:如果参数为NaN或小于0,则结果为NaN。如果参数为正无穷大,则结果为正无穷大。如果参数为0,则结果与参数相同。 System.out.println(Math.sqrt(-4));//NaN System.out.println(Math.sqrt(16));//4.0 System.out.println(Math.sqrt(0));//0.0 返回参数的绝对值

abs:返回参数的绝对值。

System.out.println(Math.abs(-2.5));//2.5 返回最小整数返回大于或等于参数的最小整数。特殊情况:如果参数值已经等于数学整数,则结果与参数相同。如果参数时NaN或无穷大或0,则结果与参数相同。如果参数值小于0但大于-1.0,则结果为0.
System.out.println(Math.ceil(1.0));//1.0 System.out.println(Math.ceil(-0.5));//-0.0

floor:返回最接近的整数

返回小于等于给定参数的最大整数。特殊情况:如果参数值已经等于数学整数,则结果与参数相同。如果参数时NaN或无穷大或0,则结果与参数相同。 System.out.println(Math.floor(2.8));//2.0 System.out.println(Math.floor(-0.5));//-1.0

rint:返回与参数最接近的整数

System.out.println(Math.rint(1.6));//2.0 幂次方

pow:返回第一个参数的幂次方。

System.out.println(Math.pow(2, 2));//4.0

round:四舍五入。

System.out.println(Math.round(0.6));//1.0 随机数

random:返回随机数

System.out.println(Math.random());//0.264 最小值

min:返回两个参数中的最小值。

System.out.println(Math.min(2.6, 4.5));//2.6 最大值

max:返回两个参数中的最大值。

System.out.println(Math.max(2.6, 4.5));//4.5

三.Integer类

Integer类在对象中包装了一个基本类型int的值。也就是说Integer类对象中含有int类型的字段,该类有多种方法,能在int和String类型之间相互转换,还提供了处理int类型的一些常量和方法。

1.Integer类的构造方法

Integer类有两种构造方法: 从本质上说没有区别,第二种方法也就是将传入的String参数转换为了int

  • Integer(int value):构造一个新分配的Integer对象,它表示指定的 int 值。
  • Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。
Integer integer1=new Integer(100);    //以 int 型变量作为参数创建 Integer 对象
Integer integer2=new Integer("100");    //以 String 型变量作为参数创建 Integer 对象

Integer 类的常用方法

            Integer类常用方法

int和String类型的转换

String str="456";
int num=Integer.parseInt(str);    //将字符串转换为int类型的数值
int i=789;
String s=Integer.toString(i);    //将int类型的数值转换为字符串

在实现将字符串转换为int类型数值时,字符串中不能出现非数值类型的字符,否则程序执行异常。

  • toBinaryString(num):将数字转换为二进制
  • toHexString(num):将数字转换为八进制
  • toOctalString(num):将数字转换为十六进制

Integer类的常量

  • MAX_VALUE:值为 231-1 的常量,它表示 int 类型能够表示的最大值。
  • MIN_VALUE:值为 -231 的常量,它表示 int 类型能够SIZE:用来以二进制补码形式表示 int 值的比特位数。表示的最小值。
  • SIZE:用来以二进制补码形式表示 int 值的比特位数。
  • TYPE:表示基本类型 int 的 Class 实例。