(11)Java其他对象

来源:互联网 发布:matlab 数组转元胞 编辑:程序博客网 时间:2024/04/30 21:04

Java其他对象

System

概述

System类是一个系统类,描述一个系统环境。

System类包含一些有用的类字段和方法,它不能被实例化,代表着他没有提供构造函数,里面方法全是静态的。和out(标准输出流)println组成了一个输出语句,out是打印在控制台上输出。In是可以获取键盘录入的

 out:标准输出流。默认是控制台。

 in:标准输入流。默认是键盘。

获取系统属性方法:

1Static Properties getProperties()//获取当前系统的属性。

因为propertieshashTable的子类,也就是Map集合的一个子类对象,那么可以通过Map的方法取出该集合中的元素。

该集合中存储都是字符串没有泛型定义。

示例:

Properties prop = System.getProperties();

高级for循环获取所有属性信息

for(Object obj: prop.ketSet())

{

String value = (String)prop.get(obj);

Sop(obj+”:”+value);

}

2String getProperties(String key);//获取指定属性信息

示例:

String value = System.getProperties(“os.name”);

Sop(value);

设置系统属性方法

3Static Properties setProperties()//设置指定系统的属性。

示例:

System.setProperties(“meKey”,”myvalue”);

4,怎么在jvm启动时动态的加载一些属性信息?

通过jvm命令:java-D<name>=<value>可以设置特有的系统属性信息。

示例:

String s = System.getProperty(“haha”);若当前系统没有该键值对,则返回null

在控制台输入 java –Dhaha=qqqqq SystemDemo(类名)

Runtime

概述

查阅API文档java.lang包里的Runtime类简介:

1,每一个java应用程序都有一个Runtime类实例,是应用程序能够与其运行的环境相连接,可以通过getRuntime方法获取当前运行时,而应用程序不能创建自己的Runtime类实例。

2,在方法摘要里没有构造方法摘要,说明他不能直接创建对象,里面的方法都是静态的,但是里面也放有非静态的,所以该类肯定会提供方法来获取对象,而且该方法是静态的,并返回值类型是本来类型。因此可以看出使用的是单例设计模式来完成的

该方法是static Runtime getRuntime();

方法

获取本类对象

Static Runtime getRuntime();

示例:

Runtime r = Rutime.getRuntime();

在单独的进程中执行指定字符串命令

Process exec(String command)

示例:

Process p = r.exec(“winmine.exe”);打开扫雷程序

Process中有一个杀掉子进程的方法,可将exec方法开启的进程结束

Void p.destroy();

示例:

Thread.sleep(4000);先让开启的程序运行四秒

p.destroy();再杀掉exec方法开启的进程。

Date

概述

他是对时间和日期进行描述,当描述一个时间有日期时间是一个比较复杂的内容,所有将这些封装成对象就简单了。

API文档中的描述

Date表示特定的瞬间,精确到毫秒。

在类Date所有可以接受或返回年月日小时分钟秒值

Java中默认显示格式

Sun Jan 16 10:58:47 CST 2011

自定义格式

因为打印的时间有些看不懂,希望有自己定义的格式,在Date类中构造方法和方法摘要里大部分已经过时了,但是在相关类另请参见那里有一个日期格式化DateFormat,他是日期时间格式化子类的抽象类。

在DateFormat里有format()Date格式化为日期时间字符串。该抽象类有一个子类SimpleDateFormat可以实例化,定义时间模式。

注意SimpleDareFormat类是在java.text包中。

日期和时间模式表:



示例:

mport java.util.*;import java.text.*;class DateDemo {public static void main(String[] args) {Date d = new Date();//打印默认时间格式System.out.println(d);//自定义时间模式,将模式封装到SimpleDateFormat对象中SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日hh:mm:ss");//调用format方法让模式格式化指定的Date对象String time = sdf.format(d);System.out.println(time);}}

Calendar

概述

查询API文档java.util包中Calendar是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

常用方法:

获取默认时区和语言环境的一个日历

Static Calendar Calendar.getInstance();

获取基本时间方法:

1,获取年份:Calendar.YEAR

2,获取月份:Calendar.MONTH

3,获取日期:Calendar.DAY_OF_MONTH

4,获取星期:Calendar.DAY_OF_WEEK

5,获取小时:Calendar.HOUR_OF_DAY

6,获取分钟:Calendar.MINUTE

7,获取秒数:Calendar.SECOND

示例:

import java.util.*;import java.text.*;class CalendarDemo{public static void sop(Object obj){System.out.println(obj);}public static void main(String[] args) {//获取默认时区和语言环境的一个日历Calendar c = Calendar.getInstance();getYear(c);getMonth(c);getWeek(c);getDay(c);getTime(c);}public static void getYear(Calendar c){//获取年份String s = c.get((Calendar.YEAR))+"年";sop(s);}public static void getMonth(Calendar c){//获取月份,可以使用查表法,这样可以打印出自定义的月份String[] month={"一月","二月","三月","四月",                        "五月","六月","七月","八月",                        "九月","十月","十一月","十二月"};int index = c.get(Calendar.MONTH);sop( month[index]);//return c.get((Calendar.MONTH)+"月");}public static void getWeek(Calendar c){//获取星期可以使用查表法,这样可以打印出自定义的星期数String[] day={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"}; int index = c.get(Calendar.DAY_OF_WEEK);sop( day[index]);//return c.get("星期"+(Calendar.DAY_OF_WEEK));}public static void getDay(Calendar c){//获取日期String s= c.get((Calendar.DAY_OF_MONTH))+"日";sop(s);}public static void getTime(Calendar c){//获取时分秒sop( c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));}}打印结果如图:

设置时间基本方法

根据日历规则,为给定的日历字段添加或减去指定的时间量

Abstract void add(int field,int amount);

示例:Caledar c = Calendar.getInstance();

c.add(Calendar.YEAR,4);//将年份往后移4年

设置日历字段的年月日

void set(int year,int month,int date);

示例c.set(2013,11,30);

练习一:

获取任意一年的二月有多少天

思路

根据指定年设置一个时间就是

c.set (YEAR,2,1)//某年的3月1号

c.add(Calendar.DAY_OF_MONTH,-1);//在3月1号这天往前推一天就是该年2月的天数。

练习二:

获取昨天的现在这个时间

c.add(Calendar. DAY_OF_MONTH,-1);

练习三

获取某年12月初到月底的有效学习天数,星期六合星期天不算。

思路

根据指定年设置一个时间就是

c.set(year,11,1);//某年的12月1号

然后定义计数器计数有效天数

判断某天是否是周末

c.get(Calendar.DAY_OF_WEEK)=1&&c.get(Calendar.DAY_OF_WEEK)=7)

判断一个日期就偏移一天

c.add(Calendar.DAY_OF_MONTH+1);

具体代码:

import java.util.*;import java.text.*;class  CalendarDemo2{public static void sop(Object obj){System.out.println(obj);}public static void main(String[] args) {getErYue(2013);//练习一getNow();//练习二getDay(2013);//练习三}public static void getErYue(int year){Calendar c = Calendar.getInstance();c.set(year,2,1);c.add(Calendar.DAY_OF_MONTH,-1);sop(c.get(Calendar.DAY_OF_MONTH));}public static void getNow(){Calendar c = Calendar.getInstance();c.add(Calendar.DAY_OF_MONTH,-1);sop( c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND));}public static void getDay(int year){Calendar c = Calendar.getInstance();c.set(year,11,1);int count = 0;for (int x=c.get(Calendar.DAY_OF_MONTH);x<=30 ;x++ ){if (c.get(Calendar.DAY_OF_WEEK)!=1&&c.get(Calendar.DAY_OF_WEEK)!=7)count++;//每判断一次,天数加一c.add(Calendar.DAY_OF_MONTH,1);}sop("有效上课天数:"+count);}}打印结果如图:

Math类——Random类

概述

Math类包含用于执行基本数学运算的方法,如初等指数,对数,平方根和三角函数。

查看API文档lang包里的Math类,其方法摘要全是静态的,也是一个工具类。

常用方法:

Double ceil(double d);返回大于指定数据的最小整数

Double floor(double d);返回小于指定数据的最大整数

Double pow(double d1,double d2);返回d1d2次方

Long round(double d);返回四舍五入

重点:

Double random();返回正号的double值,是一个大于等于0.0小于1.0的随机数

返回的是一个伪随机选择的数

util包中本身也给我们提供了一个Random随机数对象,我们用Math里的random方法或者用Random里的都可以。

但是用Random类里的方法更方便。

练习:给定一个小数,保留该小数的后两位。

分析:

先将给定的小数乘以100或者102次方,再四舍五入保留整数。

再将保留的整数除以100或者102次方,就是该小数。

import java.util.*;class MathDemo{public static void main(String[] args) {double num = 12.456789;getMath(num,2);}public static void getMath(double num,int x){double d = Math.round(num*Math.pow(10,x))/Math.pow(10,x);System.out.println(d);}}打印结果如图:


---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
0 0
原创粉丝点击