System对象
System是描述一些系统信息的类,这个类中的方法和属性都是静态的。System类不能被实例化,因为没有提供构造方法。
字段摘要
out:标准输出流。默认是控制台。
in:标准输入流。默认是键盘。
方法
1. static Properties getProperties() 获取系统属性信息
因为Properties是HashTable,也就是Map集合的一个子类对象,那么可以通过Map集合中的方法取出该集合中的元素。
该集合存储的都是字符串,没有泛型限定。
2. static String getProperty(String key) 获取指定键指示的系统属性。
例:String value = System.getProperty(“os.name”); //获取系统名
3. static String setProperty(String key , String value) 设置指定的系统属性。
在JVM启动时,动态的加载一些属性信息
在DOS命令行中: java –DV = 123 SystemDemo //可以设置特有的系统属性信息
其中 SystemDemo是要被设置的程序。
System类中方法演示
/*
演示System类中的方法
1. static Properties getProperties(); //获取系统属性信息
2. static String getProperty(String key); //获取指定键指示的系统属性。
例:String value = System.getProperty(“os.name”); //获取系统名
3. static String setProperty(String key, String value); //设置指定键指示的系统属性。
*/
import java.util.*;
class SystemDemo
{
public static void main(String[] args)
{
//static String getProperty(String key); //获取指定键指示的系统属性。
//获取系统名
String osName = System.getProperty("os.name");
//输出系统名
sop("系统名:"+osName);
sop("--------我是华丽丽的分隔线-------");
//static String setProperty(String key, String value);//设置指定键指示的系统属性。
System.setProperty("myKey","myValue");
//看看我们自己设置的系统属性是否出现在了系统属性中
//static Properties getProperties();/获取系统属性信息
Properties prop = System.getProperties();
//输出系统信息
sop(prop);
}
//输出方法
public static void sop(Object obj)
{
System.out.println(obj);
}
}
运行结果
Runtime对象
该类中并没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的。
但发现该类中还有非静态方法,说明该类中肯定会提供方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。
由以上特点可以看出,该类使用了单例设计模式完成,保证了对象的唯一性。
Rentime类的常见方法
1. static Runtime getRuntime() Runtime类提供的方法,用来获取本类对象。
2. Process exec(String command) 打开一个exe进程
3. Process类中的方法 abstract void destroy() 杀掉子进程方法,可以将exec开启的进程结束
Runntime类中方法示例
/*
演示Runtime类中方法
1. static Runtime getRuntime(): //Runtime类提供的方法,用来获取本类对象。
2. Process exec(String command); //打开一个exe进程
3. Process类中的方法 abstract void destroy(); //杀掉子进程方法,可以将exec开启的进程结束
*/
class RuntimeDemo
{
public static void main(String[] args) throws Exception
{
//获取Runtime类的实例
Runtime r = Runtime.getRuntime();
//执行笔记本程序
Process p=r.exec("notepad.exe");
//用笔记本打开指定文件
r.exec("notepad.exe 123.txt");
//让线程睡一会儿
Thread.sleep(2000);
//关闭子进程
p.destroy();
}
}
Date类
Date类表示特定的瞬间,精确到毫秒。
java中的默认显示格式为:Tue Jun 16 21:50:15 CST 2015
默认的格式不能满足所有人的要求,那么就需要自定义格式化模式。
因为Date类中的大部分方法已过时,所以只能找其子类来实现。DateFormat是Date的子类,但这个类中的方法都是抽象的,
所以创建它的子类也就是SimpleDateFromat的对象来调用,并通过SimpleDateFromat类的构造方法传入描述日期和时间模式的格式,
格式要去看API。
其实在DataFormat类中有可以实现自定义模式的方法,format 但是没有办法创建DataFormat对象来调用这个方法,所以才需要子类对象来调用。
注:DataFormat及其子类对象是java.text包中的类,所以要记得导包
下面来根据代码来学习Date对象如何使用
/*
Data类自定义时间格式示例
*/
import java.util.*;
import java.text.*;
class DateDemo
{
public static void main(String[] args)
{
//创建Date对象
Date d=new Date();
//先输出默认时间模式
sop("默认时间模式:"+d);
//通过查看API中SimpleDateFormat类中的时间模式我们来定义
//2015年6月16日 星期二 22:03:00
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日E HH:mm:ss");
//调用format方法,将时间按照我们定义的转成字符串
String time=sdf.format(d);
//输出
sop(time);
}
//输出方法
public static void sop(Object ojb)
{
System.out.println(ojb);
}
}
运行结果
Calendar对象
Calendar是一个抽象类,日历的意思
方法
1. static Calendar getInstance() 使用默认时区和语言环境获得一个日历
2. void set(int year , int month , int date) 设置日历
例:c.set(2017 , 3 , 18); //月份这里写的3月显示的会是4月,因为计算机上月份计数是从0开始的。
3. abstract void add(int field , int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
Calender类中方法示例
/*
Calendar类中方法示例
1. static Calendar getInstance() 使用默认时区和语言环境获得一个日历
2. void set(int year, int month, int date) 设置日历
3. abstract void add(int field, int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
*/
import java.util.*;
class CalendarDemo
{
public static void main(String[] args)
{
//1.static Calendar getInstance();//使用默认时区和语言环境获得一个日历
Calendar c = Calendar.getInstance();
//调用获取时间和日期方法,并输出
sop("当前日历:"+getTime(c));
//2.void set(int year, int month, int date); //设置日历
//将时间设置为2012,10,15
c.set(2012,10,15);
//输出设置之后的日历
sop("自定义日历:"+getTime(c));
//abstract void add(int field, int amount);
//根据日历的规则,为给定的日历字段添加或减去指定的时间量。
//给年减去10年
c.add(Calendar.YEAR,-10);
//输出设置之后的日历
sop("年数减10的日历:"+getTime(c));
}
//获取时间和日期的方法
public static String getTime(Calendar c)
{
//调用获取年,月,日,星期的方法
String s=year(c)+month(c)+day(c)+"日"+week(c);
return s;
}
//获取年份
public static int year(Calendar c)
{
//用get方法获取年
return c.get(Calendar.YEAR);
}
//获取月份
public static String month(Calendar c)
{
//将月份作为元素存入集合中
String[] yue={"","一月","二月","三月","四月",
"五月","六月","七月","八月",
"九月","十月","十一月","十二月"};
//用get方法获取月数,再作为角标数,去找集合中对应的月份
return yue[c.get(Calendar.MONTH)];
}
//获取日期
public static int day(Calendar c)
{
//直接返回这个月的第几天即可
return c.get(Calendar.DAY_OF_MONTH);
}
//获取星期
public static String week(Calendar c)
{
//将星期作为元素存入集合中
String[] day={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
//用get方法获取星期数,再作为角标,去集合中找对应的星期
return day[c.get(Calendar.DAY_OF_WEEK)];
}
//打印方法
public static void sop(Object obj)
{
System.out.println(obj);
}
}
运行结果
Math类
执行基本数学运算方法,该类全为静态方法,所以是工具类。
方法
1. static double ceil(double a) 返回最小double值,该值大于参数并等于某个整数
例: double d = Math.ceil(17.85); //返回18。如果参数为-17.85 返回-17
2. static double floor(double a) 返回最大double值,该值小于等于参数,并等于某个整数
例: double d = Math.floor(18.24); //返回18。如果参数为-18.24 返回-19
3. static int round (double a) 四舍五入
4. static double pow(double a , double b) a的b次幂
5. static double random() 返回一个伪随机数,这个数大于等于0 小于1 0<=x<1。然后可以通过强制转换,获得int型,方便使用
为什么是伪随机数呢?
因为这个数是底层算法算出来的,算的足够多就会找到规律。
java.util 中的Random类,使用int nextInt(int x)方法获取随机数,可以省去强制转换
例:Random r = new Random();
for(int x=0 ; x<10 ; x++) {
int i = r.nextInt(10)+1;
}
得到大于等于1,小于11的伪随机数,出来的数就会是1.2.3……10之中的一个了。
谢谢大家观看~!
-----------android培训、java培训、java学习型技术博客、期待与您交流!---------