------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
其他对象
1.System
常用方法:
long currentTimeMillis();获取当前时间的毫秒值。
exit(0);退出虚拟机。
Properties getProperties();获取系统的属性信息。
setProperties(String,String);以键值对形式设置系统属性信息。
String getProperty(String);根据参数获取到对应的值。
/*
System对象:
对于系统属性的操作
getProperties:获取key,value的Properties对象,该对象是Hashtable子类,也就是Map体系一员
getProperty:根据key,获取value
setProperty:设置一对key,value
在jvm加载时动态添加系统属性
*/
package com.helong.propertiesdemo;
import java.util.*;
class PropertiesDemo
{
public static void main(String[] args)
{
Properties prop=System.getProperties();
System.setProperty("ldy","22");
System.out.println("os.name::"+System.getProperty("os.name"));
System.out.println("helong::"+System.getProperty("helong"));
System.out.println("ldy::"+System.getProperty("ldy"));
/*
for(Map.Entry me : prop.entrySet())
{
System.out.println(me.getKey()+"==="+me.getValue());
}
*/
}
}
运行图:
2.Runtime
该类是没有构造函数使用的,而且我们发现它的方法也不是静态的,因此分析这个类肯定有一个方法返回本类对象,也就是使用了单例设计模式。
getRuntime():返回当前java程序相关的运行时。
exec(String commnd):该方法用于单独执行一条命令语句。
例如:exec("winmine.exe");jvm查找该程序先从当前目录,找不到再到path下查找,再找不到就报错。
exed("notepad RuntimeDemo.java");使用notepad打开RuntimeDemo.java文件。
getRuntime():返回当前java程序相关的运行时。
exec(String commnd):该方法用于单独执行一条命令语句。
例如:exec("winmine.exe");jvm查找该程序先从当前目录,找不到再到path下查找,再找不到就报错。
exed("notepad RuntimeDemo.java");使用notepad打开RuntimeDemo.java文件。
//测试Runtime对象
package com.helong.runtimedemo;
class RuntimeDemo
{
public static void main(String[] args) throws Exception
{
Runtime r=Runtime.getRuntime();
//r.exec("c:\\ThunderUninstall.exe");
r.exec("notepad.exe C:\\Users\\Administrator\\Desktop\\EveryDayNote.txt");
}
}
运行图:
3.Date,DateFormat
Date:日期类,表示一个当前瞬间的时间,以标准化形式打印。
DateFormat:将对日期的格式化封装成对象,都是用于格式化Date的方法。
本身是抽象类,我们一般使用它的子类SimpleDataFormat 。
DateFormat:将对日期的格式化封装成对象,都是用于格式化Date的方法。
本身是抽象类,我们一般使用它的子类SimpleDataFormat 。
//Date,DateFormat(SimpleDateFormat)
package com.helong.datedemo;
import java.util.*;
import java.text.*;
class DateDemo
{
public static void main(String[] args)
{
Date d=new Date();
System.out.println(d);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd hh-mm-ss");
System.out.println(sdf.format(d));
}
}
运行图:
4.Calendar
日历类:更灵活,更精确度额操作Date对象。
配合查表法更灵活的取出年月日星期等信息,并输出打印。
注意月份是从0开始的。
配合查表法更灵活的取出年月日星期等信息,并输出打印。
注意月份是从0开始的。
5.Math
数学类,内部封装了大量的跟数学计算有关的方法。
ceil(double):返回大于等于参数的最小整数,例如传入12.12,得到13,传入12.0得到12,传入-12.12得到12;
floor(double):返回小于等于参数的最大整数;
int/long round(double):四舍五入的值。
pow(double a,double b):a为底数,b为指数,也就是a的b次方。
random():得到一个大于等于0.0,小于1.0的随机数;(int)(random()*10)+1:得到一个1--10的随机数。
floor(double):返回小于等于参数的最大整数;
int/long round(double):四舍五入的值。
pow(double a,double b):a为底数,b为指数,也就是a的b次方。
random():得到一个大于等于0.0,小于1.0的随机数;(int)(random()*10)+1:得到一个1--10的随机数。
package com.helong.mathdemo;
import java.util.*;
class MathDemo
{
public static void main(String[] args)
{
System.out.println(Math.ceil(23.23));
System.out.println(Math.floor(23.23));
System.out.println(Math.round(13.55));
System.out.println(Math.round(13.45));
System.out.println(Math.pow(2.0,3.0));
for(int i=0;i<10;i++)
{
System.out.println((int)(Math.random()*10)+1);
}
}
}
运行图:
6.小练习
/*
1.获取任何年的二月有多少天
根据日历特性,时间都是联系的,设置时间到3月1日,往前走一天就是二月最后一天
2.获取昨天的这个时刻
3.两个日期间的上课的天数(周三周日不上课)(去掉不上课的天数)
4.给定一个小数,保留后两位
*/
package com.helong.test;
import java.util.*;
import java.text.*;
class Test
{
public static void main(String[] args)
{
Calendar c = new GregorianCalendar();
c.add(Calendar.DAY_OF_MONTH,-1);
System.out.println(c.getTime());
int year=2000;
c.set(year,2,1);//设置时间为1998年3月1日
c.add(Calendar.DAY_OF_MONTH,-1);
int day=c.get(Calendar.DAY_OF_MONTH);
System.out.println(year+"年二月为:"+day+"天");
double num1=23.2354554;
double num2=23.2314554;
System.out.println(getTwo(num1));
System.out.println(getTwo(num2));
System.out.println(getTwo2(num1));
System.out.println(getTwo2(num2));
}
private static double getTwo(double num)
{
int temp=(int)(num*1000);
if(temp%10>=5)temp+=10;
temp/=10;
return temp/100.0;
}
private static double getTwo2(double num)
{
return (int)(Math.round(num*100))/100.0;
}
}
运行图:
7.小结
熟练使用这些对象,可以在很多时候大大的简化我们的代码量,因为大部分的对象都已被封装好了,不需要我们自己去定义,拿来直接用就行了,当然了内部的实现原理如果也能懂的话那就最好了。
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------