黑马程序员----其他对象

------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文件。
   

//测试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

//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开始的。
     


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的随机数。

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培训、期待与您交流! -------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值