您的位置:首页 > 编程语言 > Java开发

Java基础--- 其它对象

2015-11-23 09:59 417 查看
其它对象API




System类
System类中的字段和方法都是静态的。
常见方法:long currentTimeMillis();获取当前时间毫秒值,可以通过此方法检测程序的执行时间。
示例1:(检查程序执行的时间)
class SystemDemo
{
public static void main(String[] args)
{
long l1 = System.currentTimeMillis();
//code...
long l2 = System.currentTimeMillis();
System.out.pirntln(l2-l1);
}
}
ProPerties getProperties();明确当前的系统属性。
Properties集合中存储的都是String类型的建和值。
示例2:(获取系统属性信息)
import java.util.Set;
import java.util.Properties;
class SystemDemo
{
public static void main(String[] args)
{
//获取系统的属性信息,并存储到了Properties集合中
Properties prop = System.getProperties();
Set<String> nameSet = prop.stringPropertyNames();
for(String name : nameSet)
{
String value = prop.getProperty(name);
System.out.println(name+"="+value);
}
}
}




Windows系统中换行为\r\n两个转义字符,Linux只有一个\n。
示例3:(获取系统属性换行符)
class SystemDemo
{
public static void main(String[] args)
{
System.out.println("hello-\r\n world");
final String LINE_SEPARATOR = System.getProperty("line.separator");
System.out.println("hello"+LINE_SEPARATOR+"world");
}
}



给系统属性设置一些属性信息,这些信息是全局的,其他程序都可以使用。例:
System.setPeroperty("myclasspath","c:\myclass");。
Runtime类
Runtime:没有构造方法摘要,说明该类不可以创建对象。又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法。而且只有一个,说明Runtime类使用了单例设计模式。
示例1:
import java.io.IOException;
class SystemDemo
{
public static void main(String[] args) throws InterruptedException,IOException
{
Runtime r = Runtime.getRuntime();
Process p = r.exec("notepad.exe D:\\javaExc\\SystemDemo.java");
Thread.sleep(5000);
p.destroy();
}
}



Math类

Math:提供了操作数学运算的方法,都是静态的。

常用方法:

ceil():返回大于参数的最小整数。

floor():返回小于参数的最大整数。

round():返回四舍五入的整数。

pow(a,b):a的b次方。
示例:
import java.util.Random;
class MathDemo
{
public static void main(String[] args)
{
double d1 = Math.ceil(12.56);
double d2 = Math.floor(12.56);
double d3 = Math.round(12.56);
System.out.println(d1);//13.0
System.out.println(d2);//12.0
System.out.println(d3);//13.0
double d4 = Math.pow(10,2);
System.out.println(d4);//100

for(int i = 0;i<5;i++)
{
double d5 = Math.random();
System.out.println("d5="+d5);
}
Random r = new Random();
for(int i=0;i<5;i++)
{
double d6 = r.nextDouble();
System.out.println("d6="+d6);
}
}
}



Date、DateFormat类
示例1:
import java.util.Date;
class DateDemo
{
public static void main(String[] args)
{
long time = System.currentTimeMillis();
System.out.println(time);
//将当前日期和时间封装成Date对象

Date d1 = new Date();
System.out.println(d1);

//将指定毫秒值封装成Date对象
Date d2 = new Date(1405244787235l);
System.out.println(d2);
}
}



日期对象和毫秒值之间的转换

毫秒值-->日期对象:

1. 通过Date对象的构造方法 new Date(timeMillis);

2. 还可以通过setTime设置。

因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。

日期对象-->毫秒值:

1. getTime方法。

因为可以通过具体的数值进行运算。

对日期对象进行格式化:

将日期对象-->日期格式的字符串。

使用的是DateFormat类中的format方法。
示例2:(对日期进行格式化)
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
class DateDemo
{
public static void main(String[] args)
{
Date date = new Date();

//获取日期格式对象,具备这默认的风格。也可以指定为FULL、LONG风格。
DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
String str_date1 = df.format(date);
System.out.println(str_date1);

df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);
String str_date2 = df.format(date);
System.out.println(str_date2);

//如果风格是自定义
df = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss");
String str_date3 = df.format(date);
System.out.println(str_date3);
}
}



将日期格式的字符串-->日期对象。

使用的是DateFormat类中的prase方法。
示例3:
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
class DateDemo
{
public static void main(String[] args) throws ParseException
{
String str_date1 = "2012年4月18日";
String str_date2 = "2012--4--19";

DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
Date date1 = dateFormat.parse(str_date1);
System.out.println(date1);

dateFormat = new SimpleDateFormat("yyyy--MM--dd");
Date date2 = dateFormat.parse(str_date2);
System.out.println(date2);
}
}



示例4:(计算”2015-11-1“到“2015-11-23”中间有多少天)
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.text.ParseException;
/**
1. 将日期格式的字符串转成Date对象。
2. 将Date对象转成毫秒值。
3. 相减,编程天数。
*/
class DateDemo
{
public static void main(String[] args) throws ParseException
{
String str_date1 = "2015-11-1";
String str_date2 = "2015-11-23";

test(str_date1,str_date2);
}

public static void test(String str_date1,String str_date2) throws ParseException
{
//1、将日期字符串转成日期对象
DateFormat dateFormat = DateFormat.getDateInstance();

dateFormat = new SimpleDateFormat("yyyy-MM-dd");

Date date1 = dateFormat.parse(str_date1);

Date date2 = dateFormat.parse(str_date2);

long time1 = date1.getTime();
long time2 = date2.getTime();

long time = Math.abs(time2-time1);
System.out.println(time);
int day = getDay(time);
System.out.println(day);
}

private static int getDay(long time)
{
int day = (int)(time/1000/60/60/24);
return day;
}
}



Calendar类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
示例1:
import java.util.Calendar;
public class CalendarDemo
{
public static void main(String[] args)
{
//GregorianCalendar
Calendar c = Calendar.getInstance();
showDate(c);
}

public static void showDate(Calendar c)
{
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
}

public static String getWeek(int i)
{
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];
}
}



示例2:
import java.util.Calendar;
public class CalendarDemo
{
public static void main(String[] args)
{
//GregorianCalendar
Calendar c = Calendar.getInstance();
c.set(2015,6,20);
c.add(Calendar.YEAR,-2);
showDate(c);
}

public static void showDate(Calendar c)
{
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
}

public static String getWeek(int i)
{
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];
}
}



示例3:(打印每年2月有多少天)
import java.util.Calendar;
public class CalendarDemo
{
public static void main(String[] args)
{
int year = 2015;
showDays(year);
}

public static void showDays(int year)
{
Calendar c = Calendar.getInstance();
//将日期设置为3月1日,然后减一天,打印出2月份的最后一天日期,即可知2月有多少天
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH,-1);
showDate(c);
}

public static void showDate(Calendar c)
{
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH)+1;
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year + "年" + month + "月" + day + "日" + getWeek(week));
}

public static String getWeek(int i)
{
String[] weeks = { "","星期日" ,"星期一" ,"星期二" ,"星期三" ,"星期四" ,"星期五" ,"星期六" };
return weeks[i];
}
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: