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());
}
}
System & Runtime &Math的更多相关文章
- 工具类System,Runtime,Math,Date,Calendar
API--- java.lang.System: 属性和行为都是静态的. long currentTimeMillis(); // 返回当前时间毫秒值 exit(); // 退出虚拟机 Prop ...
- VS2015 出现 .NETSystem.Runtime.Remoting.RemotingException: TCP 错误
错误内容: 界面显示内容为: .NET�������������System.Runtime.Remoting.RemotingException: TCP 淇¢亾鍗忚鍐茬獊: 搴斾负鎶ュご銆� 鍦 ...
- 找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”的解决办法
找不到方法:“Boolean System.Runtime.Serialization.DataContractAttribute.get_IsReference()”.的解决办法站点发布后部署到了两 ...
- Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute'
[TypeLoadException: Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from as ...
- 重写成员“log4net.Util.ReadOnlyPropertiesDictionary.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)”时违反了继承安全性规则
在.NET 4.0下使用最新版本的log4Net 1.2.10,会遇到下面这样的错误: 重写成员“log4net.Util.ReadOnlyPropertiesDictionary.GetObject ...
- IIS提示“异常详细信息: System.Runtime.InteropServices.ExternalException: 无法执行程序”
先来看错误提示: 无法执行程序.所执行的命令为 "C:/Windows/Microsoft.NET/Framework/v3.5/csc.exe" /noconfig /fullp ...
- System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800AC472
更新至服务器后运行出错: System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x800AC472 解决方法 注册 ...
- System.Runtime.InteropServices.COMException (0x800706BA) 解决方法
提示“操作失败:无法获取MAC地址.”错误的解决方法. .NET 获取 MAC地址可能会遇到 System.Runtime.InteropServices.COMException (0x8007 ...
- 缺少编译器要求的成员“System.Runtime.CompilerServices.ExtensionAttribute..ctor” 解决方案
我自己使用的解决方法 错误产生环境及非完美解决办法 错误提示:缺少编译器要求的成员"System.Runtime.CompilerServices.ExtensionAttribute..c ...
随机推荐
- 解决PHP下导出csv乱码小记
我们之前都是使用PHPexcel导出我们的一些数据的,由于Phpexcel对导出超出1万条数据会导至超时和内存暴涨,后来我们就改用数据导出成csv格式的. 相信很多朋友们在用PHP导出csv文件时都遇 ...
- IOS第三天
第三天 ******** 九宫格代码的现实 @interface HMViewController () /** 应用程序列表 */ @property (nonatomic, strong) NSA ...
- Yii源码阅读笔记(二十九)
动态模型DynamicModel类,用于实现模型内数据验证: namespace yii\base; use yii\validators\Validator; /** * DynamicModel ...
- 10/12 study
[患者版]加号选择页: 这是四个TableView放在Scrollview上 上面是个xib封装的view 整体就是个scrollView,用xib摆上去的控件: 上面加了黄条,旧的控件统一修改y ...
- 【转】ArcGIS 创建切片缓存方法工具总结
ArcGIS 创建切片缓存方法工具总结 http://wenku.baidu.com/link?url=Bm8AkmcJBzfiyat9N_Me6vlfSHEDCC_D1qBk5IB4X4CIDeKI ...
- 【转】Unity中的协同程序-使用Promise进行封装(三)
原文:http://gad.qq.com/program/translateview/7170967 译者:崔国军(飞扬971) 审校:王磊(未来的未来) 在这个系列的最后一部分文章,我们要通过 ...
- zepto源码--核心方法4(包装)--学习笔记
主要介绍一下wrap, wrapAll, wrapInner, unwrap方法. wrapAll 在所有匹配元素外面包一个单独的结构.结构可以是单个元素或 几个嵌套的元素,并且可以是html字符串或 ...
- win7下VS2015+opencv3.1.0配置
由于opencv与vs的适配版本不同,本人在官网下载opencv3.1.0,其可以和VS2013.VS2015适配,文中以VS2015为例 opencv2.4.13-----vc11;vc12 ope ...
- 利用insert,update和delete注入获取数据
0x00 简介 利用SQL注入获取数据库数据,利用的方法可以大致分为联合查询.报错.布尔盲注以及延时注入,通常这些方法都是基于select查询语句中的SQL注射点来实现的.那么,当我们发现了一个基于i ...
- 关于preg_match输出多个数组的解释,使用()时
第一个数组显示的是所有的匹配,第二个显示的是第一个括号里的内容,第三个显示的是第二个括号里的内容