Java中System类、Integer类、Math类学习

System类

  • System类包含几个有用的类字段和方法。它不能被实例化。
    系统类提供的工具包括标准输入、标准输出和错误输出流;访问外部定义的属性和环境变量;加载文件和库的方法;以及快速复制数组一部分的实用方法。
  • System类代表系统,系统级的很多属性和控制方法都放在该类的内部。
  • 该类位于java.lang包
  • 由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类

1.基本字段(field)

err
“标准”错误输出流。此流已打开并准备接受输出数据。
通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。按照惯例,此输出流用于显示错误消息或其他应立即引起用户注意的信息,即使主输出流(变量out的值)已重定向到通常不是连续的监视。
in
“标准”输入流。此流已打开并准备好提供输入数据。通常,此流对应于键盘输入或主机环境或用户指定的另一个输入源。
out
“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示输出或由主机环境或用户指定的另一个输出目标。
对于简单的独立Java应用程序,编写输出数据行的一种典型方式是:

System.out.println(data);

2. 常用方法(method)

arraycopy

public static void arraycopy(Object src,
                             int srcPos,
                             Object dest,
                             int destPos,
                             int length)

参数: src-源数组。
srcpos—源数组中的起始位置。
dest-目标数组。
destpos—目标数据中的起始位置。
length—要复制的数组元素数。

其实就是System.arraycopy(a,b,c,d,e);
参数从左到右依次是原数组,原数组中被复制的起始位置,目标数组,目标数组的起始位置,复制到目标数组的结束位置(长度、数目)。

从指定的源数组(从指定位置开始)将数组复制到目标数组的指定位置。数组组件的子序列从src引用的源数组复制到dest引用的目标数组。复制的组件数等于length参数。源数组中srcpos到srcpos+length-1位置的组件分别复制到目标数组的destpos到destpos+length-1位置。

1.如果dest为空,则抛出一个nullpointerexception。
2.如果src为空,则抛出一个nullpointerexception,并且不修改目标数组。

  • 会引发ArrayStoreException的情况,并且不会修改目标:
    src参数引用的对象不是数组。
    dest参数引用的对象不是数组。
    src参数和dest参数引用其组件类型为不同基元类型的数组。
    src参数引用具有基元组件类型的数组,dest参数引用具有引用组件类型的数组。
    src参数引用具有引用组件类型的数组,dest参数引用具有基元组件类型的数组。
  • 将引发IndexOutboundsException的情况,并且不会修改目标:
    srcpos参数为负。
    destpos参数为负。
    长度参数为负。
    srcpos+length大于源数组的长度src.length。
    destpos+length大于dest.length,即目标数组的长度。

currentTimeMillis

public static long currentTimeMillis()

返回当前时间(毫秒)。注意,虽然返回值的时间单位是毫秒,但该值的粒度取决于底层操作系统,并且可能更大。例如,许多操作系统以几十毫秒为单位测量时间。

gc

public static void gc()

运行垃圾收集器。
调用GC方法表明Java虚拟机花费精力去回收未使用的对象,以便使它们当前占据的内存能够快速重用。当控件从方法调用返回时,Java虚拟机尽最大努力从所有丢弃的对象中回收空间。

exit

public static void exit(int status)

终止当前运行的Java虚拟机。参数用作状态代码;按照惯例,非零状态代码表示异常终止。
此方法在类运行时调用exit方法。此方法从不正常返回。
如果status是非零参数,那么表示是非正常退出。

  • System.exit(0)是将你的整个虚拟机里的内容都停掉了,而dispose()只是关闭这个窗口,但是并没有停止整个application 。exit() ,无论如何,内存都释放了!也就是说连JVM都关闭了,内存里根本不可能还有什么东西
  • System.exit(0)是正常退出程序,而System.exit(1)或者说非0表示非正常退出程序
  • System.exit(status)不管status为何值都会退出程序。和return 相比有以下不同点:return是回到上一层,而System.exit(status)是回到最上层
    这里附上原文链接:https://blog.csdn.net/maihilton/article/details/41541707

Math类

math类包含执行基本数值运算的方法,如初等指数、对数、平方根和三角函数。 给我的感觉是很实用,很清晰。
与类StrictMath的一些数值方法不同,类Math的所有等价函数的实现都没有定义为返回位对位相同的结果。这种放宽允许在不需要严格再现性的情况下更好地执行实现。

1.基本字段(filed)

E

public static final double E

比任何其他值都更接近自然对数的底e的double类型数据。
PI

public static final double PI

比其他任何一个都更接近π的double类型数据

2.常用方法(method)

sin

public static double sin(double a)

返回角度的三角正弦。

特殊情况:如果参数是NaN或无穷大,则结果是NaN。
如果参数为零,则结果为零,其符号与参数相同。

另外,类似的,cos、tan、还有atan(返回值的反正切值)、acos(反余弦)、asin(反正弦)

exp

public static double exp(double a)

返回欧拉数e的乘幂。
特殊情况:
如果参数是NaN,则结果是NaN。
如果参数为正无穷大,则结果为正无穷大。
如果参数为负无穷大,则结果为正零。

log

public static double log(double a)

返回双精度值的自然对数(以e为底)。
特殊情况:
如果参数为NaN或小于零,则结果为NaN。
如果参数为正无穷大,则结果为正无穷大。
如果参数为正零或负零,则结果为负无穷大。

log10

public static double log10(double a)

返回双精度值的以10为底的对数。特殊情况:
如果参数为NaN或小于零,则结果为NaN。
如果参数为正无穷大,则结果为正无穷大。
如果参数为正零或负零,则结果为负无穷大。
如果整数n的参数等于10n,则结果为n。

sqrt

public static double sqrt(double a)

返回正确舍入的双精度值的正平方根。特殊情况:
如果参数为NaN或小于零,则结果为NaN。
如果参数为正无穷大,则结果为正无穷大。
如果参数为正零或负零,则结果与参数相同。

crbt

public static double crbt(double a)

返回双精度值的立方根。

其他

abs:求绝对值
ceil:返回大于或等于参数且等于数学整数的最小(最接近负无穷大)双精度值。比如-11.3.会返回-11
floor:返回小于或等于参数且等于数学整数的最大(最接近正无穷大)双精度值。比如11.3会返回11
pow:public static double pow(double a,double b);
返回将第一个参数的值提升为第二个参数的幂。即a的b次方
很多都是和其他语言一样。
拿一些出来测试:

class TestNumber{
public static void main(String[] args){
System.out.println(Math.ceil(5.3));
System.out.println(Math.floor(3.5));
System.out.println(Math.round(2.8));
System.out.println(Math.pow(2,3));
}
}

Integer类

integer类在对象中包装原语类型int的值。整数类型的对象包含一个类型为int的字段。
此外,该类还提供了几种将int转换为字符串和字符串转换为int的方法,以及处理int时有用的其他常量和方法。

1.基本字段(field)

BYTES

public static final int BYTES

以二进制补码形式表示整型值的字节数。

MAX_VALUE

public static final int MAX_VALUE

一个常数,保持一个int可以有的最大值,2的31次方减一

MIN_VALUE

public static final int MIN_VALUE

一个常数,保持int可以有的最小值,负2的31次方

SIZE

public static final int SIZE

用二进制补码形式表示整型值的位数。

TYPE

public static final Class<Integer> TYPE

表示原始数据类型int的类实例。

2.常用方法(method)

toString

public static String toString(int i,
                              int radix)

以第二个参数指定的基数返回第一个参数的字符串表示形式。
如果基数小于character.min_基数或大于character.max_基数,则改用基数10。
如果第一个参数为负,则结果的第一个元素是ascii减号字符“-”(’\u002d’)。如果第一个参数不是负数,则结果中不会出现符号字符。

valueOf

public static Integer valueOf(int i)

返回表示指定int值的整数实例。如果不需要新的整数实例,则通常应优先使用此方法而不是构造函数integer(int),因为通过缓存频繁请求的值,此方法可能会显著提高空间和时间性能。此方法将始终缓存-128到127(含)范围内的值,并可能缓存此范围之外的其他值。

compare

public static int compare(int x,
                          int y)

若x==y,返回0
若x大于y,返回一大于0的数
若x小于y,返回一小于0的数

sum

public static int sum(int a,
                      int b)

返回a加b

and so on

学习总结:

现在主要是学会查看jdk API(SE8),有很多类,每个类下面又有很多方法。API是全英文版的,边看边翻译,还是蛮累的。感觉其中一些方法不会常用吧,就现阶段的我来说。
(有错误请指正哦)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值