JAVA API中System、Integer、Math类学习总结

首先,我想在此解释一下JAVA API。其英文全称为:Java Application Programming Interface,翻译过来就是:Java 应用程序接口。它是一种预先定义的类,我们在写程序时可以直接使用这些被打包好的类来做具体的应用。
在这里插入图片描述
1、System类:

System类包含几个有用的类字段和方法。由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。
系统类提供的功能包括标准输入、标准输出和错误输出流;访问外部定义的属性和环境变量;加载文件和库的一种方法;以及用于快速复制数组的一部分的实用程序方法。

标准输入、标准输出和错误输出流:in,out,err
访问外部定义的属性和环境变量:如getenv(),setenv()和getProperties(),setProperties()
加载文件和库的一种方法:如load()和loadLibrary()
快速拷贝数组的方法:arraycopy()

1.1 arraycopy方法
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
将数组从指定的源数组(从指定位置开始)复制到目标数组的指定位置。

使用示例:

public class Hello{
	public static void main(String[] args) {
		int[] a = {1,2,3,4};
		int[] b = new int[5];
		System.arraycopy(a,1,b,3,2);
		for(int i=0;i<5;i++)
		System.out.print(b[i]+" ");

}
}

/*输出结果为:0 0 0 2 3 */

该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。

1.2 currentTimeMillis ()

返回当前时间(以毫秒为单位)。这个方法可以用来计算某个程序或循环执行了多长时间。

使用示例:

public class Hello{
	public static void main(String[] args) {
		long start = System.currentTimeMillis( );
		for(int i=0;i<1000;i++){ 
			System.out.print(i);
		}
        long end=System.currentTimeMillis( );
        System.out.println(end-start);
}
}

则这里变量time的值就代表该代码中间的for循环执行需要的毫秒数,使用这种方式可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。

2、Integer类
在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的。而程序开发中,我们需要把字符串数据根据需求转换成指定的基本数据类型,如年龄需要转换成int类型,考试成绩需要转换成double类型等。那么,想实现字符串与基本数据之间转换应该怎么办呢?这时就要用到Java的包装类。
我们以Integer类为例:
Integer类将原始类型int的值封装在对象中;Integer类型的对象包含一个类型为int的字段。此外,该类还提供了几个方法,用于将int转换为字符串,将字符串转换为int,以及在处理int时有用的其他常量和方法。

将int转换为字符串:valueOf(int i)
将字符串转换为int:parseInt(String s)

2.1 ParseInt(String s)方法
将字符串参数解析为带符号的十进制整数。ParseInt(String s)方法用于将字符串转换成基本数据类型(int),要求字符串必须是数字格式。

使用示例:

public class Hello{
	public static void main(String[] args){
		String year = "2018";
		int i = Integer.parseInt(year);
		System.out.println(i/2);	
}
}

/*     输出结果为:1009     */

2.2 valueOf()

Integer valueOf(int i):返回一个表示指定的 int 值的 Integer 实例。
Integer valueOf(String s):返回保存指定的 String 的值的 Integer 对象。

i – Integer 对象的整数。
s – Integer 对象的字符串。

使用示例:

public class Hello{ 
public static void main(String args[]){
        Integer a=Integer.valueOf(123);
        Integer b=Integer.valueOf("123");
        System.out.println(a);
        System.out.println(b);
    }
}

/*     
 输出结果为:
123
123
*/

3、Math类:

Math类包含执行基本数值运算的方法,如基本指数、对数、平方根和三角函数。

Math.PI 记录的圆周率
Math.E 记录e的常量
Math中还有一些类似的常量,都是一些工程数学常用量。
Math.abs 求绝对值
Math.sin 正弦函数 Math.asin 反正弦函数
Math.cos 余弦函数 Math.acos 反余弦函数
Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数
Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度
Math.ceil 得到不小于某数的最大整数
Math.floor 得到不大于某数的最大整数
Math.max 求两数中最大
Math.min 求两数中最小
Math.sqrt 求开方
Math.pow 求某数的任意次方, 抛出ArithmeticException处理溢出异常
Math.exp 求e的任意次方
Math.log10 以10为底的对数
Math.log 自然对数
Math.rint 求距离某数最近的整数(可能比某数大,也可能比它小)
Math.round 四舍五入,返回int型或者long型(上一个函数返回double型)
Math.random 返回0,1之间的一个随机数

使用示例:

public class Hello{
     public static void main(String args[]){    
            /**
             * abs求绝对值  
             */    
            System.out.println(Math.abs(-10.4));    //10.4    
            System.out.println(Math.abs(10.1));     //10.1 
            
            /**
             * log取对数,求log2,8要转换。
             */  
            System.out.println(Math.log(8)/Math.log(2));    //3.0   
            
            /**
             * 三角函数:当然因为π是个近似值,所以得出的结果也和0.5,1有些差别。
             */   
            System.out.println(Math.sin(Math.PI*30/180));    //0.49999999999999994 
            System.out.println(Math.tan(Math.PI/4));     //0.9999999999999999 
                
            /**  
             * ceil天花板的意思,就是返回大的值,注意一些特殊值  
             */    
            System.out.println(Math.ceil(-10.1));   //-10.0    
            System.out.println(Math.ceil(10.7));    //11.0    
            System.out.println(Math.ceil(-0.7));    //-0.0    
            System.out.println(Math.ceil(0.0));     //0.0    
            System.out.println(Math.ceil(-0.0));    //-0.0 
            System.out.println("my name is -0.5 "+Math.ceil(-0.5));
                
            /**  
             * floor地板的意思,就是返回小的值  
             */    
            System.out.println(Math.floor(-10.1));  //-11.0    
            System.out.println(Math.floor(10.7));   //10.0    
            System.out.println(Math.floor(-0.7));   //-1.0    
            System.out.println(Math.floor(0.0));    //0.0    
            System.out.println(Math.floor(-0.0));   //-0.0    
                
            /**  
             * max 两个中返回大的值,min和它相反,就不举例了  
             */    
            System.out.println(Math.max(-10.1, -10));   //-10.0    
            System.out.println(Math.max(10.7, 10));     //10.7    
            System.out.println(Math.max(0.0, -0.0));    //0.0    
                
            /**  
             * random 取得一个大于或者等于0.0小于不等于1.0的随机数  
             */    
            System.out.println(Math.random());  //0.9255369316104106
            System.out.println(Math.random());  //0.2512676804491438  
                
            /**  
             * rint 四舍五入,返回double值  
             * 注意.5的时候会取偶数  
             */    
            System.out.println(Math.rint(10.1));    //10.0    
            System.out.println(Math.rint(10.7));    //11.0    
            System.out.println(Math.rint(11.5));    //12.0    
            System.out.println(Math.rint(10.5));    //10.0    
            System.out.println(Math.rint(10.51));   //11.0    
            System.out.println(Math.rint(-10.5));   //-10.0    
            System.out.println(Math.rint(-11.5));   //-12.0    
            System.out.println(Math.rint(-10.51));  //-11.0    
            System.out.println(Math.rint(-10.6));   //-11.0    
            System.out.println(Math.rint(-10.2));   //-10.0    
                
            /**  
             * round 四舍五入,float时返回int值,double时返回long值  
             */    
            System.out.println(Math.round(10.1));   //10    
            System.out.println(Math.round(10.7));   //11    
            System.out.println(Math.round(10.5));   //11    
            System.out.println(Math.round(10.51));  //11    
            System.out.println(Math.round(-10.5));  //-10    
            System.out.println(Math.round(-10.51)); //-11    
            System.out.println(Math.round(-10.6));  //-11    
            System.out.println(Math.round(-10.2));  //-10    
        }    
}

学习过程中,要善于利用这些类库解决问题,往往能使得问题得到极大简化,从而快速高效地完成任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值