System 类 和 Runtime 类的常用用法介绍
发布时间:2023-11-21 10:07:55
标签:java,System,Runtime
System类的常用用法
1,主要获取系统的环境变量信息
public static void sysProp()throws Exception{
Map<String,String> env = System.getenv();
//获取系统的所有环境变量
for(String name : env.keySet()){
System.out.println(name + " : " +env.get(name));
}
//获取系统的指定环境变量的值
System.out.println(env.get("JAVA_HOME"));
//获取系统的所有属性
Properties prop = System.getProperties();
//将系统的属性保存到配置文件中去
prop.store(new FileOutputStream("Prop.properties"),"System properties");
//输出特定的系统属性
System.out.println(System.getProperty("os.name"));
}
2,与系统时间有关的方法操作
public static void sysTime(){
//获取系统当前的时间毫秒currentTimeMillis()(返回当前时刻距离UTC 1970.1.1 00:00的时间差)
Long time = System.currentTimeMillis();
System.out.println(time);
Long time1 = System.nanoTime();//主要用于计算时间差单位纳秒
Long time3 = System.currentTimeMillis();
for(Long i =0l ;i <999l; i++){}
Long time2 = System.nanoTime();
Long time4 = System.currentTimeMillis();
System.out.println(time2 - time1+ " : " +(time4 - time3));
}
3,鉴别两个对象在堆内存当中是否是同一个
public static void identityHashCode(){
//str1 str2为两个不同的String对象
String str1 = new String("helloWorld");
String str2 = new String("helloWorld");
//由于String类重写了hashCode()方法 所以 他们的HashCode是一样的
System.out.println(str1.hashCode()+" : "+str2.hashCode());
//由于他们不是同一个对象所以他们的计算出来的HashCode时不同的。
//实际上该方法使用的时最原始的HashCode计算方法即Object的HashCode计算方法
System.out.println(System.identityHashCode(str1) + " : "+ System.identityHashCode(str2));
String str3 = "hello";
String str4 = "hello";
//由于他们引用的是常量池中的同一个对象 所以他们的HashCode是一样的
System.out.println(System.identityHashCode(str3) + " : "+ System.identityHashCode(str4));
/*输出如下
-1554135584 : -1554135584
28705408 : 6182315
21648882 : 21648882
*/
}
Runtime类的常用用法
每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
class RunTimeTest
{
public static void main(String[] args) throws Exception
{
getJvmInfo();
//execTest();
}
public static void getJvmInfo(){
//获取Java运行时相关的运行时对象
Runtime rt = Runtime.getRuntime();
System.out.println("处理器数量:" + rt.availableProcessors()+" byte");
System.out.println("Jvm总内存数 :"+ rt.totalMemory()+" byte");
System.out.println("Jvm空闲内存数: "+ rt.freeMemory()+" byte");
System.out.println("Jvm可用最大内存数: "+ rt.maxMemory()+" byte");
}
public static void execTest()throws Exception{
Runtime rt = Runtime.getRuntime();
//在单独的进程中执行指定的字符串命令。
rt.exec("mspaint E:\\mmm.jpg");
}
}


猜你喜欢
- 平时工作中,很多时候都会用到对数据进行分组操作,例如一个学生对象,有班级、名字、性别、分数等,需要按班级分组统计,该怎么操作呢?一个合理的算
- 本文实例为大家分享了Unity实现场景漫游相机的具体代码,供大家参考,具体内容如下前言拿到场景后总喜欢在场景里面玩一段时间,那这个脚本就是你
- 下拉刷新对于一个app来说是必不可少的一个功能,在早期大多数使用的是chrisbanes的PullToRefresh,或是修改自该框架的其他
- 常用命令:打包:mvn package编译:mvn compile清空:mvn clean(清除编译后目录,默认是target目录)运行测试
- 每日一笑下班和实习生一起回家,公交站等车,一乞丐把碗推向实习生乞讨。这时,实习生不慌不忙的说了句:“我不要你的钱,你这钱
- [java]public static Bitmap getBitmapFromServer(String imagePath) { &nb
- 本文实例为大家分享了java实现三角形分形山脉的具体代码,供大家参考,具体内容如下三角形分形山脉原理原型图如图,这是三角形分形山脉的一个原型
- 在Android开发过程中,如果Android系统自带的属性不能满足我们日常开发的需求,那么就需要我们给系统控件添加额外的属性了。假如有个需
- application.properties大家都不陌生,我们在开发的时候,经常使用它来配置一些可以手动修改而且不用编译的变量,这样的作用在
- Android Service是分为两种:本地服务(Local Service): 同一个apk内被调用远程服务(Remote Servic
- 这篇文章主要介绍了Java实现TCP/IP协议的收发数据(服务端)代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参
- 实现备份短信到xml文件和像短信中插入一条数据一、实现短信将备份到xml文件中在布局文件中定义一个按钮,定义点击事件为copyClickMa
- 本文实例讲述了C#实现的上传图片、保存图片、加水印、生成缩略图功能。分享给大家供大家参考,具体如下:伴随移动设备地普及,处理图片、视频等需求
- /** * Name: 求数组中元素重复次数对多的数和重复次数 * Description: * 数组中的元
- 当对象改变其可达性状态时,对该对象的引用就可能会被置于引用队列(reference queue)中。这些队列被垃圾回收器用来与我们的代码沟通
- INotifyPropertyChanged:该接口包含一个事件, 针对属性发生变更时, 执行该事件发生。// /
- 本文实例讲述了java简单列出文件夹下所有文件的方法。分享给大家供大家参考,具体如下:import Java.io.*;public cla
- 代码很简单,直接上代码,大家参考使用吧package com.it.login.service;import java.io.Buffere
- 本文实例为大家分享了Android实现3D云标签效果的具体代码,供大家参考,具体内容如下一、自定义Viewpublic class TagC
- 一、图示二、多线程编程何为多线程,通俗的讲就是让你的代码同时干好几件事。而我们的一个代码文件或者一个项目就是一个进程,而如果我们想提高效率,