1.System
System:类中的方法和属性都是静态的
out:标准输出,默认是控制台
in:标准输入,默认是键盘
加载时
—D 名称=值 class文件名
可以在启动虚拟机时加载自定义的系统属性
long currentTimeMillis(); // 返回当前时间毫秒值
exit(); // 退出虚拟机
Properties getProperties() ; // 获取当前系统的属性信息
import java.util.*;
public class H_01System {
public static void main(String [] args)
{
Properties prop=System.getProperties();
//因为Properties是Hashtable的子类,也就是Map集合的一个子类对象
//可以使用map的取出方法
//该集合中存储的都是字符串,没有泛型定义
//获取指定属性信息
String value1=System.getProperty("os.name");
System.out.println(value1);
//可以用来判断系统是是否符合安装环境
//Iterator it=prop.keySet().iterator();
//获取全部信息
for(Object obj:prop.keySet())
{
String value=(String)prop.get(obj);
System.out.println(obj+"---"+value);
}
//如何在系统中自定义一些特有信息
System.setProperty("hello", "java");
}
}
2. Runtime对象
该类并没有提供构造函数
说明不可以new对象,那么会直接想到该类中的防范都是静态的
但该类中还有非静态方法
说明该类肯定会提供防范获取本类对象,而且方法是静态的,返回值是本类对象
Runtime其实使用的就是单例设计模式。
Processp=r.exec("winmine.exe")
p.destory();杀死进程
r.exec("notepad.exe SystemDemo.java");用记事本打开文件
import java.io.IOException;
public class H_02RuntimeDemo {
public static void main(String[] args) throws Exception {
Runtime r=Runtime.getRuntime();
//调用本机程序
r.exec("D:\\Program Files (x86)\\Yixin\\EasyChat\\yixin.exe");
//返回一个Process
}
}
3. Date
import java.util.*;
import java.text.*;
public class H_03DateDemo {
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");
String time=sdf.format(d);//传入对象用需求模式输出
//format是将date对象输出为字符串对象
System.out.println(time);
}
}
按格式获得当前时间。
Format直接操作日期对象
parse操作字符串,转换成Date对象。
如何获得两个时间的时间差
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
public class DateTest{
public static void main(String[] args) throws Exception {
String str_date1 = "2014-3-17";
String str_date2 = "2014-4-6";
test(str_date1,str_date2);
}
public static void test(String str_date1,String str_date2) throws Exception {
//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;
}
}
4. Calendar
import java.util.*;
import java.text.*;
public class H_04CalenderDemo
{
public static void main(String[] args)
{
Calendar c=Calendar.getInstance();
//c.set(2016, 0, 13);
c.add(Calendar.YEAR, -1);
printC(c);
Scanner input=new Scanner(System.in);
sop("请输入一个年份");
int year=input.nextInt();
c.set(year,2,1);
c.add(Calendar.DAY_OF_MONTH, -1);//天数减一
sop(c.get(Calendar.DAY_OF_MONTH));
}
public static void printC(Calendar c)
{
sop(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1));
String [] months={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
int index=c.get(Calendar.MONTH);
sop(months[index]);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}
注意月份是从0开始的
结果
2014年6
六月
请输入一个年份
2000
2000年2月有29天
5. Math
返回值类型大多是double
ceil方法:返回大于指定数据的最小整数(天花板,所以是+1)
floor方法:返回小于指定数据的最大整数(地板,所以是减一)
round方法:四舍五入
pow方法:幂运算
random方法:返回0~1的伪随机数(>=0.0,<1.0)包含0不包含1
import java.util.*;
public class H_05MathDemo {
public static void main(String[] args) {
double d=Math.ceil(12.34);
double f=Math.floor(12.34);
double d2=Math.pow(2,3);
sop(d);//13
sop(f);//12
sop(d2);//8 (2的3次方)
int x=(int) (Math.random()*10);
sop(x);
}
public static void sop(Object obj)
{
System.out.println(obj);
}
}