Java API (下)

一、System类和Runtime类

         (一)System类

System类定义了一些与系统相关的属性和方法,比如之前所使用的打印结果的语句“System.out.println();”,它所提供的方法和属性都是静态的,因此,想要引用这些属性和方法,直接使用System类调用即可。

下图是System类的常用方法

下面进行逐一演示

1.arraycopy()方法 

arraycopy()方法用于将数组从原数组复制到目标数组,注意在进行复制时,目标数组必须有足够的空间来存放复制的元素,否则会发生角标越界异常。下面进行演示

package Text4;

public class text2 {
    public static void main(String[] args) {
        int [] fromArray={ 10,11,12,13,14,15 };  //原数组
        int [] toArray={ 20,21,22,23,24,25,26 };  //目标数组
        System.arraycopy(fromArray,2,toArray,3,4);
            //打印复制后数组的元素
        System.out.println("复制后的数组元素为:");
        for(int i=0;i<toArray.length;i++){
            System.out.println(i+":"+toArray[i]);
        }
    }
}
运行结果

2.currentTimeMillis()方法 

currentTimeMillis()方法用于获取当前系统的时间,返回值是long类型的值,该值表示当前时间与1970年1月1日0点0分0秒之间的时间差,单位是毫秒,通常也将该值称为时间截。下面通过代码进行演示

package Text4;

public class text2 {
    public static void main(String[] args) {
        long stareTime=System.currentTimeMillis();//循环开始时的当前时间
        int sum=0;
        for (int i=0;i<1000000000;i++){
            sum +=i;
        }
        long endTime =System.currentTimeMillis();//循环结束后的当前时间
        System.out.println("程序运行的时间为:"+(endTime-stareTime)+"毫秒");
    }
}
运行结果

 3.getProperties()和getProperty()方法

getProperties()和getProperty()方法用于获取当前系统的全部属性,该方法会返回一个Properties对象,其中封装了系统的所有属性,这些属性是以键值对形式存在的。getProperty()方法用于根据系统的属性名获取对应的属性值。下面进行演示

package Text4;

import java.util.Enumeration;
import java.util.Properties;

public class text2 {
    public static void main(String[] args) {
        //获取当前系统属性
        Properties properties = System.getProperties();
        //获得所有系统属性的key,返回Enumeration对象
        Enumeration  propertyNames= properties.propertyNames();
        while (propertyNames.hasMoreElements()){
            //获取系统属性的key
            String key =(String)propertyNames.nextElement();
            //获得当前key对应的value
            String value=System.getProperty(key);
            System.out.println(key + "--->" + value);
        }
    }
}
运行结果

 这些系统属性包括虚拟机版本、用户所在国家、操作系统架构和版本等。

4.gc()方法

在Java中,当一个对象成为垃圾后仍会占用内存空间,时间一长,就会导致内存不足。针对这一情况,Java引入了垃圾回收机制,会自动回收垃圾对象所占据的内存空间。除了等待Java虚拟机进行自动回收外,还可以调用System.gc()方法通知虚拟机立即进行垃圾回收。当一个对象在内存中被释放时,它的finalize()方法会被自动调用。从而达到清理内存空间的效果。

除了前面涉及的方法外,System类还有一个常见的方法exit(int status),该方法用于终止当前正在运行的Java虚拟机,其中参数status用于表示当前发生的异常状态,通常指定为0,表示正常退出,否则表示异常终止。

        (二)Runtime类

Runtime类用于表示虚拟机运行时的状态,用于封装虚拟机进程。每次使用Java命令启动虚拟机都对应一个Runtime实例,并且只有一个实例 ,因此在定义时,它的构造方法已经被私有化了,同时对象不可以直接实例化。若想在程序中获得一个Runtime实例,只能

Runtime run = Runtime.getRuntime();

 以下是Runtime类常用的方法

 案例:获取当前虚拟机的信息 

package Text4;

public class text2 {
    public static void main(String[] args) {
        Runtime rt=Runtime.getRuntime();//获取
        System.out.println("处理器的个数:"+ rt.availableProcessors()+"个");
        System.out.println("空闲内存数量:"+rt.freeMemory()/1024/1024+"M");
        System.out.println("最大可用内存数量:"+rt.maxMemory()/1024/1024+"M");
        System.out.println("虚拟机中内存总量:"+rt.totalMemory()/1024/1024+"M");
    }
}
代码运行结果

 二、Math类与Random类

        (一)Math类

Math类提供了大量的静态方法以便人们实现数学计算,如求绝对值、取最大值或最小值等。方法如下

 

 下面用代码进行演示

package Text4;

public class text2 {
    public static void main(String[] args) {
        System.out.println("计算绝对值的结果"+Math.abs(-10));
        System.out.println("求大于参数的最小整数:"+Math.ceil(5.6));
        System.out.println("求小于参数的最小整数:"+Math.floor(-4.2));
        System.out.println("对小数进行四舍五入的结果:"+Math.round(-4.6));
        System.out.println("求两个数的较大值:"+Math.max(2.1,-2.1));
        System.out.println("求两个数的较小值:"+Math.min(1,6));
        System.out.println("生成一个大于等于0.0小于1.0的随机值:"+Math.random());
        System.out.println("开平方的结果:"+Math.sqrt(4));
        System.out.println("指数函数的值:"+Math.pow(2,3));
    }
}
代码运行结果

         (二)、Random类

在java.util包中有一个Random类,它可以在指定的取值范围内随机产生数字,提供了两个构造方法。

 第一个是无参的,生成的随机数是不同的。第二个是有参的,传入相同的参数,就可以获得相同的随机数

下表是常用的方法

 代码演示:

package Text4;

import java.util.Random;

public class text2 {
    public static void main(String[] args) {
        Random r1=new Random();//创建Random实例对象
        System.out.println("产生float类型随机数:"+r1.nextFloat());
        System.out.println("产生double类型的随机数:"+r1.nextDouble());
        System.out.println("产生int类型的随机数:"+r1.nextInt());
        System.out.println("产生0~100之间的int类型的随机数:"+r1.nextInt(100));
    }
}
代码运行结果

 在Java API中除了String类、System类和Runtime类、Math类与Random类以外,还有日期时间类和包装类等

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值