------<ahref="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
/*
Properties是Hashtable的子类,也是Map集合的子类,
其存储的是字符串,没有泛型定义。
Properties的作用是用来获取系统信息
*/
import java.util.*; class Sys { public static void main(String[] args) { Properties p=System.getProperties(); //获取所有属性信息 for(Object obj:p.keySet()) //这里p.keySet()返回的是Object类型的对象 { String s = (String)p.get(obj); //提取键所对应的值,接着再强制转型 soc(obj+"---"+s); } //获取特定信息 String uc= System.getProperty("user.country"); soc("user.country="+uc); String uc2= System.getProperty("Tashi"); soc("Tashi="+uc2);//打印的是Tashi=null /* 这里特别提示: 搜索系统信息里面没有对应值就会返回null, 但是,在DOS命令行中敲入javac编译命令后再准备敲入运行命令时, 可以这样写运行命令:Java -DTashi=45 Sys 再按回车键,就可以看见打印的是Tashi=45 这种方式是在运行时候设置系统属性。 一般格式: Java -D<名称>=<值> <运行文件名称> */ //设定系统信息 System.setProperty("的的的","意义"); String uc3= System.getProperty("的的的"); soc("的的的---"+uc3); } public static void soc(Object obj) { System.out.println(obj); } }
——————分割线——————
/*
Runtime类的介绍:
Runtime类在Java.lang包中。
没有构造函数,所以外部不可以建立其对象,
该类中既有静态又有非静态方法。
本类中有提供方法获取本类对象而且该方法是静态,
返回类型是本类类型。
这也是单例设计模式。
每一个Java应用程序都有一个Runtime类的实例,使得应用程序与其运行环境连接。
应用程序不可以建立自己的Runtime类的实例。
进程就是程序执行的一个实例
*/
class Sys2 { public static void main(String[] args)throws Exception { Runtime a=Runtime.getRuntime();//静态调用 //Runtime.getRuntime()返回的是当前应用程序的Runtime对象 Process p= a.exec("E:\\MyEclipse\\MyEclipse10\\MyEclipse.exe");//此句编译运行成功 /* //这里exec方法会抛出一个异常。 exec建立一个本机的进程还执行指定的可执行程序, 并且返回该子进程相对应的Process子类的实例。 实际上,Runtime.getRuntime().exec()就是用来在Java程序里运行外部程序。 p.destroy();//这句话是用来结束子进程的。 如果p.destroy();这句话存在的话,在编译运行时候由于主线程执行速度很快, 执行到这句话的时候,子线程刚刚建立好久结束了,所以我们表面上看是什么都没有显示,什么都没有打开。 */ /* //Process p2=a.exec("notepad.exe Sys2.java");//此句编译运行成功 //用笔记本打开Sys2.java文件 我们可以利用这种方式打开某个文件,只需要前面加上相应的程序。 还有这句话为什么没有写路径呢?因为虚拟机会按照当初设定环境变 量时候的path路径去查找的,而在path路径找到notepad.exe */ /* Process p3=a.exec("notepad.exe Sys2.java Je4.java"); 这句话运行时候会弹出方框显示没有找到Sys2.java Je4.java文件, 并且询问是否建立新文件。 很显然这种写法就会让虚拟机把Sys2.java Je4.java当做是一个文件名。 */ /* //Process p4= a.exec("MyEclipse.exe"); 这句话运行时候会出错,显示找不到系统文件, 因为虚拟机会按照当初设定环境变量时候的path路径去查找的, 而在path路径并没有找到MyEclipse.exe */ System.out.println("HelloWorld!"); } }
——————分割线——————
/*
Date类的介绍:
此类也是定义在了Java.util包里面。
表示特定时间,精确到毫秒的。
*/
import java.util.*; import java.text.*; class Sys3 { public static void main(String[] args) { Date da=new Date(); soc(da);//这是可以直接打印出来的,但是格式看着不舒服 SimpleDateFormat sim= new SimpleDateFormat("yyyy年MM月dd日E hh:mm:ss"); /* SimpleDateFormat类是定义在java.text包中的该类对象可以封装了日期模式,区分大小写。 其中,y表示年,M表示月,d表示日,E表示星期,h表示时,m表示分,s表示秒。 E已经包含了星期,所以括号里面没有写“星期”这两个字。 */ String str = sim.format(da); //format方法返回的是String类型的被格式化之后的日期 soc(str); } public static void soc(Object obj) { System.out.println(obj); } }
——————分割线——————
/*
Calendar抽象类的应用:
该类定义在java.util包中,
其中文意思就是日历。
*/
import java.util.*; class Sys4 { public static void main(String[] args) { //练习1:获取任意年份的2月有多少天 int x=2015; lx1(x); //练习2:获取昨天现在的时刻 lx2(); } public static void yx() { Calendar ca=Calendar.getInstance();//静态方法调用 /* 获取此时准确的日历时间,getInstance返回的是一个Calendar */ soc(ca);//用于打印时间,打印出来的都是一大串关于时间的信息 ca.set(2012,1,5);//可以自由设定年月日,但是时分秒这些没有改变 /* 这里要注意,自由设定时候月份填的是1,但是显示的却是二月 */ xianshi(ca); ca.add(Calendar.YEAR,-1); //可以自由调节时间,例如这个是单单把年份减少一年 xianshi(ca); } public static void lx1(int nian)//练习1 { Calendar ca=Calendar.getInstance(); ca.set(nian,2,1); ca.add(Calendar.DAY_OF_MONTH,-1); xianshi(ca); } public static void lx2()//练习2 { Calendar ca=Calendar.getInstance(); ca.add(Calendar.DAY_OF_MONTH,-1); xianshi(ca); } public static void xianshi(Calendar ca)//显示时间的方法 { int year =ca.get(Calendar.YEAR); //获取年份 int month = ca.get(Calendar.MONTH);//获取月份 int hao = ca.get(Calendar.DAY_OF_MONTH);//获取月份中的几号 int week = ca.get(Calendar.DAY_OF_WEEK);//获取星期 int hour=ca.get(Calendar.HOUR_OF_DAY);//获取小时 int minute=ca.get(Calendar.MINUTE);//获取分钟 int sceond=ca.get(Calendar.SECOND);//获取秒 //注意这里获得的是int型的数据!!! get方法里面不要忘记加Calendar /* 由于计算机存储数据都是从角标0开始的, 所以,直接用get方法获取的星期和月份都是有偏差的, 所以使用查表法修改 */ String[] sm={"一月","二月","三月","四月", "五月","六月","七月","八月", "九月","十月","十一月","十二月"}; String[] sw={"","星期日","星期一","星期二", "星期三","星期四","星期五","星期六",}; soc(year+"年"+sm[month]+hao+"号 "+sw[week]+" "+hour+":"+minute+":"+sceond); } public static void soc(Object obj) { System.out.println(obj); } }
————————分割线——————
/*
Math类,定义在java.lang包里面的类
常用来处理一些基本数学运算
里面定义了很多静态方法
*/
import java.util.*; class Sys5 { public static void main(String[] args) //主函数 { MathrandomDemo(); } public static void MathrandomDemo() { soc("下面是MathrandomDemo---"); for(int x=0;x<20;x++) { double d=Math.random();//返回的是0到1之间的double型的伪随机数(不包括1) int d2=(int)(Math.random()*10); //返回的是0到10之间的double型的伪随机数(不包括10),接着强制转成int型数据 soc("d="+d); soc("d2="+d2); } Random m=new Random(); for(int x=0;x<20;x++) { int i= m.nextInt(20);//返回一个0到20之间的int型伪随机数(不包括20) soc("i="+i); } //Random类定义在java.util包中 } public static void ceilDemo() { soc("下面是ceilDemo---"); double dou=Math.ceil(26.14);//返回的是大于指定double型数据的最小整数 soc("dou="+dou);//打印的是dou=27.0 double dou2=Math.ceil(-26.14); soc("dou2="+dou2);//打印的是dou=-26.0 } public static void floorDemo() { soc("下面是floorDemo---"); double dou3=Math.floor(23.21);//返回的是小于指定double型数据的最大整数 soc("dou3="+dou3);//打印的是dou3=23.0 double dou4=Math.floor(-23.21); soc("dou4="+dou4);//打印的是dou4=-24.0 } public static void roundDemo() { soc("下面是roundDemo---"); long lo=Math.round(53.18);//四舍五入 soc("lo="+lo);//打印的是lo=53 long lo2=Math.round(-53.18); soc("lo2="+lo2);//打印的是lo2=-53 long lo3=Math.round(53.78); soc("lo3="+lo3);//打印的是lo3=54 long lo4=Math.round(-53.78); soc("lo4="+lo4);//打印的是lo4=-54 } public static void powDemo() { soc("下面是powDemo---"); double k=Math.pow(2,-3);//返回的是2的-3次方的值,即是0.125 soc("k="+k);//打印的是k=0.125 } public static void soc(Object obj) { System.out.println(obj); } }
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-06 10:25:00