1 System系统类
- JVM虚拟机在启动的时候加载了一些系统的信息
- System不能实例化,其内部的属性和方法都是静态的
- out 系统输出,默认的控制台
- in 系统输入,默认的是键盘
- System.getproperties();返回的是Properties对象
- properties是hashtable的子类,也是Map集合的子类对象
- 那么可以通过map的方法取出该集合中的元素
如何得到一些系统的信息
第一种方法
Properties prop= System.getProperties(); for(Object obj: prop.keySet()) { String value=(String)prop.get(obj); System.out.println(obj+":"+value); }
更为简便的方法
Properties prop= System.getProperties(); prop.list(System.out);
得到的系统信息
-- listing properties -- java.runtime.name=Java(TM) SE Runtime Environment sun.boot.library.path=C:\Program Files\Java\jre7\bin java.vm.version=24.45-b08 java.vm.vendor=Oracle Corporation java.vendor.url=http://java.oracle.com/ path.separator=; java.vm.name=Java HotSpot(TM) 64-Bit Server VM file.encoding.pkg=sun.io user.script= user.country=CN sun.java.launcher=SUN_STANDARD sun.os.patch.level= java.vm.specification.name=Java Virtual Machine Specification user.dir=D:\study\javastudy\andriod\test\7_20\... java.runtime.version=1.7.0_45-b18 java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.endorsed.dirs=C:\Program Files\Java\jre7\lib\endorsed os.arch=amd64 java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\ line.separator= java.vm.specification.vendor=Oracle Corporation user.variant= os.name=Windows 8 sun.jnu.encoding=GBK java.library.path=C:\Program Files\Java\jre7\bin;C:\WIN... java.specification.name=Java Platform API Specification java.class.version=51.0 sun.management.compiler=HotSpot 64-Bit Tiered Compilers os.version=6.2 user.home=C:\Users\Administrator user.timezone= java.awt.printerjob=sun.awt.windows.WPrinterJob file.encoding=GBK java.specification.version=1.7 user.name=Administrator java.class.path=D:\study\javastudy\andriod\test\7_20\... java.vm.specification.version=1.7 sun.arch.data.model=64 java.home=C:\Program Files\Java\jre7 sun.java.command=com.unityprima.test.systemlist java.specification.vendor=Oracle Corporation user.language=zh awt.toolkit=sun.awt.windows.WToolkit java.vm.info=mixed mode java.version=1.7.0_45 java.ext.dirs=C:\Program Files\Java\jre7\lib\ext;C:... sun.boot.class.path=C:\Program Files\Java\jre7\lib\resour... java.vendor=Oracle Corporation file.separator=\ java.vendor.url.bug=http://bugreport.sun.com/bugreport/ sun.cpu.endian=little sun.io.unicode.encoding=UnicodeLittle sun.desktop=windows sun.cpu.isalist=amd64
如何在系统中定义一些系统的信息
- System.setProperties(key,value);设置指定键值的信息
- 如何在系统中获取一些系统的信息
- System.getProperties(“os.name”);返回操作系统的名称
- System.getProperties(“user.language”);返回操作系统的语言信息
- 安装软件设计的软件的时候先判断机器的配置信息
- 在dos下也可以改变配置信息
- java -Dhaha=pppp SystemDemo
- -D表示修改配置信息,设置系统haha的属性为为pppp
2 Runtime类
- Runtime类封装了运行时的环境。每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接
- 不能实例化,但是通过getRuntime() 得到Runtime的实例的引用
Runtime r=Runtime.getRuntime();
Process p=r.exec(path);
可以打开任意目录的应用程序;
p.destroy(); - 一些函数
- Runtime r=Runtime.getRuntime();
- r.halt(int status)
强行终止目前正在运行的 Java 虚拟机。 - r.load(String filename)
加载作为动态库的指定文件名。 - r.maxMemory()
返回 Java 虚拟机试图使用的最大内存量。 - r.freeMemory() 查看虚拟机内存运行状况
- totalMemory()
返回 Java 虚拟机中的内存总量。
3 date 日期类
- java.util.date
DateFormat 日期格式化类
Date d= new Date(); SimpleDateFormat adf= new SimpleDateFormat("yyyy年MM月dd日" hh:mm:ss); String time=adf.format(d); System.out.println(time); //得到结果2015年07月23日 10:42:08
- SimpleDateFormat格式化
- 一些常用的函数
- after(Date when) 测试此日期是否在指定日期之后
- before(Date when) 测试此日期是否在指定日期之前。
- compareTo(Date anotherDate) 比较两个日期的顺序
- equals(Object obj) 比较两个日期的相等性。
4 Math 类
静态函数
- 常用的一些静态方法
- Math.PI π
- Math.E e
- Math.abs(s) 求绝对值
- Math.ceil(s) 大于s的最小的整数
- Math.floor(s) 小雨s的最大的整数
- Math.round(s) 四舍五入
- Math.pow(2,3) 2的3次方
- 想要得到更多的方法,可以查阅文档java.lang.Math类
5 random类和Math.random()
random类
- 它是一个伪随机数,对于所有机器产生的随机数来说都是有迹可循的
- 相同种子数的Random对象,相同次数生成的随机数字是完全相同的。也就是说,两个种子数相同的Random对象,第一次生成的随机数字完全相同,第二次生成的随机数字也完全相同。这点在生成多个随机数字时需要特别注意。
- Random r1 = new Random();
- Random r1 = new Random(10);带参的构造函数带的是种子
种子数只是随机算法的起源数字,和生成的随机数字的区间无关。 - 一些方法
- public boolean nextBoolean()表示产生随机的true和false
- public double nextDouble() 产生一个区间为[0,1.0)的double型的数
- public int nextInt(int n)产生一个[0,n)的随机数
- public int nextInt()产生一个[0,1)的随机数
Random r= new Random();
int d= r.nextInt(n)+1; 产生一个[0,n]区间的整数
Math.random()
- 对于一个随机数产生的范围,包含下边界,不包含上边界
- Math.random() 它得到的数十伪随机数,默认产生的随机数是0.0到1.0之间
- 要是想0到x之间 可以int d= Math.random()*x+1;