1.System对象
System:类中的方法和属性是静态的。
out:标准输出,默认是控制台。
in:标准输入,默认是键盘。
描述系统的一些信息。
获取系统属性信息:Properties getProperties();
示例代码:
class SystemDemo
{
public static void main(String[] args)
{
Properties prop = System.getProperties();
//因为Properties 是Hashtable的子类,也就是Map集合的一个子类对象。
//那么可以通过map的方法取出该集合中的元素。
//该集合中存储的都是字符串,没有泛型定义。
/********如何在系统中自定义一些特有的信息呢?***********/
//System.setProperty("mykey","myvalue");
/********获取指定属性的信息***********/
String value = System.getProperty("os.name");
System.out.println("value="+value);
/********可不可以在jvm启动的时候,动态加载一些属性信息?***********/
//-Dname=value;
for(Object obj : prop.keySet())//超级for循环
{
String value = (String)prop.get(obj);//通过key读取对应的值(map集合的特性)
System.out.println(obj+"::"+value);
}
System.out.println("Hello World!");
}
}
2. Runtime类
/*
Runtime对象(process)
该类并没有提供构造函数。
说明不可以new对象,那么会直接想到该类中的方法都是静态的。
发现该类肯定提供了方法获取本类对象,而且方法是静态的,并且返回值类型是本类类型。
由这个特点可以看出该类使用了单例设计模式完成。
该方式是static Runtime getRuntime();
*/
class RuntimeDemo
{
public static void main(String[] args) throws Exception
{
Runtime r = Runtime.getRuntime();
r.exec("E:\\Program Files\\QQ\\Bin\\QQ.exe");
}
}
3.时间类
1.Data类
见示例
/*
时间的基本操作
*/
import java.util.*;
import java.text.*;
class DateDemo
{
private static void sop(Object value)
{
System.out.println(value);
}
public static void main(String[] args)
{
Date d = new Date();//获取当前的时间
String str = DateFormat.getDateInstance().format(d);//当前时区标准时间格式
sop(str);//希望格式输出,即Dateformat();
//将模式封装到SimpleDateFormat中
SimpleDateFormat ds = new SimpleDateFormat("yyyy年MM月dd天E hh:mm:ss");//自定义时间输出格式
String s = ds.format(d);//按照自定义的格式输出时间
sop(s);
long l = System.currentTimeMillis();//以long数据形式获取系统格式
Date ls = new Date(l);//转换为时间类型
sop(ls);
}
}
2.Carendar类
示例1:
/*
由一个日期生成一个日历,然后通过不同的方式获取其中的日期
*/
import java.util.*;
import java.text.*;
class CalendarDemo
{
private static void sop(Object value) //输出
{
System.out.println(value);
}
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();//获取当前日期的日历
/******列表改变月份输出格式*******/
String [] mons = {"一月","二月","三月","四月"
,"五月","六月","七月","八月"
,"九月","十月","十一月","十二月"};
String [] weeks = {"星期日","星期一","星期二"
,"星期三","星期四","星期五","星期六"};
/*********从日历中获取年月日,星期等**********/
sop(c.get(Calendar.YEAR) + "年");
//sop((c.get(Calendar.MONTH)+1)+"月");
sop(mons[c.get(Calendar.MONTH)]);//列表里对应的月份格式
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
//sop("星期" + c.get(Calendar.DAY_OF_WEEK));
sop(weeks[c.get(Calendar.DAY_OF_WEEK)]);//列表里对应的星期格式
}
}
示例2:
/*
运用Calendar<span id="transmark"></span>中的
|-set方法对时间进行设置
|-add方法对时间进行设置
两个练习;
1.获取任意年的二月有多少天?
思路:根据制定年设置一个时间是该年三月一日。
set(year,3,1);//某年的3月1日
add(Calendar.DAY_OF_MONTH,-1);//三月一日减一天就是2月最后一天
2.获取昨天这个时刻?
思路:直接通过add设置为昨天,但是其他选择系统默认的。
add(Calendar.DAY_OF_MONTH,-1);
*/
import java.util.*;
import java.text.*;
class CalendarDemo2
{
private static void sop(Object value) //输出
{
System.out.println(value);
}
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();//获取当前日期的日历
//c.set(2016,0,18);//月份是从0开始计数的,0代表一月份
c.add(Calendar.MONTH,1);//在获取的月份的基础上加一个月份
printCalendar(c);
}
private static void printCalendar(Calendar c)//
{
/******列表改变月份输出格式*******/
String [] mons = {"一月","二月","三月","四月"
,"五月","六月","七月","八月"
,"九月","十月","十一月","十二月"};
String [] weeks = {"星期日","星期一","星期二"
,"星期三","星期四","星期五","星期六"};
/*********从日历中获取年月日,星期等**********/
sop(c.get(Calendar.YEAR) + "年");
//sop((c.get(Calendar.MONTH)+1)+"月");
sop(mons[c.get(Calendar.MONTH)]);//列表里对应的月份格式
sop(c.get(Calendar.DAY_OF_MONTH)+"日");
//sop("星期" + c.get(Calendar.DAY_OF_WEEK));
sop(weeks[c.get(Calendar.DAY_OF_WEEK)]);//列表里对应的星期格式
}
}
4.Math类
/*
Math包的基本用法:
练习:给定一个小数,保留该小数的后两位
思考:1.先放大一百倍,然后四舍五入。
2.缩小一百倍。
*/
import java.util.*;
class MathDemo {
public static void main (String[] args) {
exam();
}
/**********Random随机数演示****************/
private static void randomDemo() {
Random r = new Random();
for(int i = 0; i < 10; i++) {
long d = Math.round(Math.random()*10);//取0到10之间的伪随机数
//int d = r.nextInt(10)+1;
sop(d);
}
}
/**********Math基本方法**************/
private static void mathDemo() {
double d = Math.ceil (12.34);//cerl返回大于指定数据的最小整数,得到double类型
double f = Math.floor (12.34);//floor返回小于指定数据的最大整数,得到double类型
long l = Math.round (12.34);//四舍五入,得到long类型
double d1 = Math.pow(2,3);//2的3次方,得到double类型
sop ("d=" + d);
sop ("f=" + f);
sop ("l=" + l);
sop("d1=" + d1);
}
/**********随机一个小数,保留两位小数****************/
private static void exam () {
double d = Math.random()*10;//取一个小数随机数
long d1 = Math.round(d*100);//放大一百倍,并四舍五入
d = (double)d1/100; //缩小一百倍,让其还原,此处如果乘以0.01,会损失精度。需要除以100
sop(d);
}
/***********输出******************/
private static void sop (Object obj) {
System.out.println(obj);
}
}