• System & Runtime &Math



    package com.shushine.framework.第七章Java标准类库;

    /**
     *
     * <p>
     * 描述该类情况 {@link 代表跟谁有关系}
     * </p>
     *
     * @author 王超
     * @since 1.0
     * @date 2016年10月21日 上午11:27:48
     * @see 新建|修改|放弃
     * @see com.shushine.framework.第七章Java标准类库.SystemAndRuntimeAndMath
     *      System类包含了许多静态方法和变量,有:标准的输入(in)、输出(out)和错误输出(error),
     *      对外部定义的属性和环境变量的访问,加载文件和库的方法,还有快速复制数组的一部分的实用方法
     *      Runtime类封装了运行时的环境。用户一般不实例化一个Runtime对象,但是可以通过调用静态方法Runtime.getRuntime()
     *      从而获得当前Runtime的对象。 一旦获得了当前对象的引用,就可以调用几个控制Java虚拟机的状态和行为的方法
     *      Math类用于数学计算,包含了所有用于几何学、三角函数计算以及几种一般用途的方法的浮点函数,这些函数都被定义成静态方法
     */

    public class SystemAndRuntimeAndMath {
        public static void main(String[] args) {
            long start, end, sum = 0, times = 100000000;
            System.out.println("执行" + times + "次循环所需要的时间");
            // 计时器开始
            start = System.nanoTime();
            for (int i = 0; i < times; i++) {
                sum = sum + i * i;
            }
            // 计时器结束
            end = System.nanoTime();
            System.out.println("需要的时间是:" + (end - start) + "纳秒");
            // 复制数组
            byte a[] = { 65, 64, 68, 69, 55, 70 };
            byte b[] = { 8, 88, 8, 8, 88, 88, 88, 88 };
            // 数组转换相对应的字符串
            System.out.println("a=" + new String(a));
            System.out.println("b=" + new String(b));
            // 把a数组复制给b数组 从a[0]开始到a[a.length-1] 赋给b[0]到b[a.length-1]
            System.arraycopy(a, 0, b, 0, a.length);
            System.out.println("b=" + new String(b));
            System.arraycopy(a, 0, a, 1, a.length - 1);
            System.arraycopy(b, 1, b, 0, b.length - 1);
            System.out.println("a=" + new String(a));
            System.out.println("b=" + new String(b));
            // 访问一些JVM的属性
            System.out.println(System.getProperty("java.class.path"));
            System.out.println(System.getProperty("user.dir"));
            // 计算内存使用量
            // 获取Runtime的对象
            Runtime r = Runtime.getRuntime();
            long mem1, mem2;
            Integer someints[] = new Integer[1000];
            // 总可用内存,不是计算机的总内存,是JVM中可用的总内存
            System.out.println("总内存是:" + r.totalMemory());
            // 空闲内存
            mem1 = r.freeMemory();
            System.out.println("初始内存是:" + mem1);
            // 垃圾回收方法
            r.gc();
            // 垃圾回收后的内存
            mem1 = r.freeMemory();
            System.out.println("垃圾回收后的内存是:" + mem1);
            // 进行内存分配
            for (int i = 0; i < someints.length; i++) {
                someints[i] = new Integer(i);
            }
            // 分配内存后可用内存空间
            mem2 = r.freeMemory();
            System.out.println("分配内存后的可用内存是:" + mem2);
            // 数组占用内存
            System.out.println("数组占用内存是:" + (mem1 - mem2));
            // 释放对象
            for (int i = 0; i < someints.length; i++) {
                someints[i] = null;
            }
            r.gc();
            mem2 = r.freeMemory();
            System.out.println("垃圾回收后的内存是:" + mem2);
            // Math类中的一些方法应用举例
            double d1 = 3.1415926;
            System.out.println("ceil函数:" + Math.ceil(d1) + " Round函数:" + Math.round(d1) + " floor函数:" + Math.floor(d1)
                    + " exp函数:" + Math.exp(d1) + " pow函数:" + Math.pow(Math.E, d1) + " random函数:" + Math.random());

        }
    }

  • 相关阅读:
    [代码]codeforces 150c Smart Cheater
    [存档]Young Tableau
    [转载][毁童年]种太阳
    [转载]教练,我也想再要一个同桌
    静夜
    CodeProject每日精选: Applications
    设计模式 装饰模式(Decorator) 精选经验合集
    槟榔味儿办公室
    盗不盗非常盗
    月末之周末
  • 原文地址:https://www.cnblogs.com/qingtianBKY/p/5986155.html
Copyright © 2020-2023  润新知