Java基础教程——System类
System类
java.lang.System类代表当前Java程序的运行平台。
|-可以做输入输出,垃圾回收;(此处不讲)
|-可以获取时间;
|-可以获取环境变量;
|-可以获取系统信息;
|-可以获取对象的原始HashCode。(比如String类就改写了hashCode方法,不能唯一地标识一个对象)
获取时间
public class System1时间 {
public static void main(String[] args) {
System.out.println("--currentTimeMillis():UTC(世界标准时间) 1970.1.1开始到现在的时间差");
System.out.println("毫秒:" + System.currentTimeMillis());
System.out.println("nanoTime()只能用于测量已过的时间");
System.out.println("纳秒:" + System.nanoTime());
}
}
System.currentTimeMillis()可以用户计算一段代码运行所消耗的时间。
System.nanoTime()精确度太高,硬件环境不一定能精确到纳秒,因此这个方法并不常用。
获取环境变量
import java.util.Map;
public class System2环境变量 {
public static void main(String[] args) {
String _环境变量名 = "JAVA_HOME";
System.out.println(_环境变量名 + " = " + System.getenv(_环境变量名));
System.out.println("-----环境变量(全部)-----");
Map<String, String> env = System.getenv();
for (String name : env.keySet()) {
System.out.println(name + " = " + env.get(name));
}
}
}
获取系统信息
import java.util.Properties;
public class System3getProperty {
public static void main(String[] args) {
System.out.println(System.getProperty("os.name"));
System.out.println(System.getProperty("user.dir"));// 用户工作路径
System.out.println("-----System Property(ALL)-----");
Properties props = System.getProperties();
for (Object k : props.keySet()) {
String v = props.getProperty(k.toString());
System.out.println(k);
System.out.println(k + " = " + v);
}
}
}
获取对象的原始HashCode
(比如String类就改写了hashCode方法,不能唯一地标识一个对象)
public class System4IdentityHashCode {
public static void main(String[] args) {
System.out.println("---identityHashCode():不同对象,此结果必不同---");
System.out.println("---因为hashCode()可能被重写(比如String类),无法准确确定对象---");
// s1和s2是两个不同对象
String s1 = new String("Hello");
String s2 = new String("Hello");
// String重写了hashCode()方法——改为“根据字符序列计算hashCode值”,
// 因为s1和s2的字符序列相同,所以它们的hashCode()相同
// (和equals无关,equals不是根据hashCode判断,但是也是根据字符序列比较,殊途同归)
System.out.println("new String 1.hashCode() = " + s1.hashCode());
System.out.println("new String 2.hashCode() = " + s2.hashCode());
// s1和s2是不同的字符串对象,所以它们的identityHashCode值不同
System.out.println("new String 1.identityHashCode() = " + System.identityHashCode(s1));
System.out.println("new String 2.identityHashCode() = " + System.identityHashCode(s2));
String s3 = "Java";
String s4 = "Java";
// s3和s4是相同的字符串对象,所以它们的identityHashCode值相同
System.out.println("String 3.identityHashCode() = " + System.identityHashCode(s3));
System.out.println("String 4.identityHashCode() = " + System.identityHashCode(s4));
}
}
运行结果(每次运行的结果可能不同)
---identityHashCode():不同对象,此结果必不同---
---因为hashCode()可能被重写(比如String类),无法准确确定对象---
new String 1.hashCode() = 69609650
new String 2.hashCode() = 69609650
new String 1.identityHashCode() = 366712642
new String 2.identityHashCode() = 1829164700
String 3.identityHashCode() = 2018699554
String 4.identityHashCode() = 2018699554
Java基础教程——System类的更多相关文章
- java基础21 System类和Runtime类
一.System系统类 1.1.System系统类 主要用于获取系统信息 1.2.System类的常用方法 arraycopy(Object src, int srcPos, Object dest, ...
- java基础之System类
System类概述System 类包含一些有用的类字段和方法.它不能被实例化. 成员方法 public static void gc()运行垃圾回收器 public static void exit( ...
- Java基础教程(10)--类
一.声明类 你已经见过了以如下方式定义的类: class MyClass { // field, constructor, and method declarations } 上面是声明类的最 ...
- Java基础教程——File类、Paths类、Files类
File类 File类在java.io包中.io代表input和output,输入和输出. 代表与平台无关的文件和目录. 可以新建.删除.重命名,但不能访问文件内容. File类里的常量: impor ...
- Java基础教程——BigDecimal类
BigDecimal类 float.double类型的数字在计算的时候,容易发生精度丢失. 使用java.math.BigDecimal类可以解决此类问题. 前面讲过Math类,现在的BigDecim ...
- Java基础教程——Date类和Calendar类
Date类和Calendar类都是关于日期的类,都在java.util包中,使用时需要import. Date java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时 ...
- Java基础教程——Scanner类
Scanner属于java.util包. java.util包是Java内置的一个工具包,其中包含一系列常用的工具类,如处理日期.日历.集合类: 如果要使用到该包中的类,必须显式引入包名:import ...
- Java基础教程——RunTime类
RunTime类 java.lang.RunTime类代表Java程序的运行时环境. 可以进行垃圾回收(gc()),可以进行系统资源清理(runFinalization()): 可以加载文件(load ...
- Java基础教程——Object类
Object类 Object类是Java所有类类型的父类(或者说祖先类更合适) <Thinking in Java(Java编程思想)>的第一章名字就叫"everything i ...
随机推荐
- Redis常用命令(3)——Hash
HDEL 格式:HDEL key field [field ...] 作用:删除哈希表中的一个或多个域. 返回值:删除的域的个数. HEXISTS 格式:HEXISTS key field 作用:判断 ...
- 使用scrapy框架模拟登录
scrapy模拟登录 注意:模拟登陆时,必须保证settings.py里的COOKIES_ENABLED(Cookies中间件) 处于开启状态 COOKIES_ENABLED = True 或# CO ...
- python栈、队列、文件目录遍历
一. 栈与队列 关注公众号"轻松学编程"了解更多. 1. 栈 stack 特点:先进先出[可以抽象成竹筒中的豆子,先进去的后出来] 后来者居上 mystack = [] #压栈[向 ...
- 使用 Xunit.DependencyInjection 改造测试项目
使用 Xunit.DependencyInjection 改造测试项目 Intro 这篇文章拖了很长时间没写,之前也有介绍过 Xunit.DependencyInjection 这个项目,这个项目是由 ...
- ElasticSearch 集群基本概念及常用操作汇总(建议收藏)
内容来源于本人的印象笔记,简单汇总后发布到博客上,供大家需要时参考使用. 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录: Elas ...
- 为什么要谨慎使用Arrays.asList、ArrayList的subList?
1. 使用Arrays.asList的注意事项 1.1 可能会踩的坑 先来看下Arrays.asList的使用: List<Integer> statusList = Arrays.asL ...
- 【SpringBoot】11-1.Springboot整合Springmvc+Mybatis增删改查操作(下)
整合过程:https://www.isdxh.com/68.html 一.增--增加用户 1.创建实体类 package com.dxh.pojo; public class Users { priv ...
- 7、Python语法之与用户交互、运算符
一 .程序与用户交互 1.1.什么是与用户交互 用户交互就是人往计算机中input/输入数据,计算机print/输出结果. 1.2.为什么要与用户交互 为了让计算机能够像人一样与用户沟通交流. 比如, ...
- Java设计系列之书店管理系统单机版
书店管理系统: 项目练习目标 :1.Java应用程序基本分析2.培养面向对象编程的基本思想3.Java基本设计模式综合应用4.掌握分层和接口的基本设计5.构建合理的Java应用程序包结构6.综合应用J ...
- linux中配置yum文件
yum简介:yum的宗旨是自动化地升级,安装/移除rpm包,收集rpm包的相关信息,检查依赖性并自动提示用户解决. yum的关键之处是要有可靠的repository,顾名思义,这是软件的仓库,它可以是 ...