-------android培训、java培训、期待与您交流!----------
1、System类
System类包含一些有用的类字段和方法,它不能被实例化,其所有的字段和方法都是静态的。out、in 和 err 是 System 的3个字段,依次为 PrintStream、InputStream 和 PrintSystem 输入输出流。System.out.println() 实质为 System 和 PrintStream 输出流组合而成输出语句。
System类可以描述系统环境,使用 System.getProperties() 方法能获取系统的属性信息,所有的属性信息都是字符串,没有泛型定义。可以使用 System.setProperty() 方法自定义一些特有的信息,例:System.setProperty("user.name", "tnoblew"); ,使用 System.getProperty("user.name"); 方法获取指定的 key 的 value。
public static void system(){ //System类
//在系统中自定义一些特有的信息
System.setProperty("user.name", "tnoblew");
//获取指定key的信息
String info = System.getProperty("user.name");
P.rintln(info);
String result = System.getProperty("user.age");
P.rintln(result);
//获取系统的属性信息
Properties pps = System.getProperties();
//打印系统的属性信息
for(Object obj : pps.keySet()){
P.rintln(obj + " : " + pps.get(obj));
}
}
使用命令提示符窗口运行java类的时候可以在 java 命令后面接 -Duser.age-22 类名动态加载参数信息,若使用 MyEclipse 软件想动态加载参数信息,按如下步骤:右击Run As --> Run Configurations --> Arguments --> VM arguments 中添加此字段 -Duser.age=22 即可。如下图所示:
2、Runtime类
每个 Java 应用程序都有一个Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过getRuntime 方法获取当前运行时。应用程序不能创建自己的 Runtime 类实例。
Runtime类并没有提供构造函数,不可以new对象,类中还有非静态方法,说明Runtime类肯定提供了方法获取本类对象。而且该方法是静态的,返回值类型是本类类型。由这点可以看出该类使用了单例设计模式完成。
可以使用 Runtime 提供的 exec() 方法调用本机的 exe 可执行文件。调用了 exe 可执行文件之后,生成一个Process对象,可以使用 Process 提供的 destroy() 方法杀死由此 Runtime 启动的进程。exec() 方法中传递的参数中,可以在exe可执行文件后空一格传入文件路径,可以打开指定的文件。
public static void runtime() throws Exception{ //Runtime类
Runtime rt = Runtime.getRuntime();
Process p = rt.exec("D:\\MineSweeper.exe");
rt.exec("C:\\Windows\\SysWOW64\\notepad.exe D:\\书签.txt"); //在exe程序后面接文件路径 可直接打开此文件
Thread.sleep(2000);
p.destroy(); //杀死进程
}
在本机测试时,可以调用扫雷游戏和notepad,但使用 rt.exec("cmd.exe"); 调用cmd.exe 无响应,经查找资料,调用cmd.exe需要接start参数,如下
rt.exec("cmd.exe /c start");
3、Date类
类Date表示特定的瞬间,精确到毫秒。可以使用 SimpleDateFormat 类格式化输出日期:
public static void date(){ //Date类
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
Date d = new Date();
P.rintln(df.format(d));
}
4、Calendar类
Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
Calendar c = Calendar.getInstance();实例化一个Calendar,其中c中包含时区、时间、日期、年份、月份、星期等等各种信息。
可以使用Calendar提供的add方法,根据日历的规则,为给定的日历字段添加或减去指定的时间量。
以下是视频中练习题自己做的答案:
public static void calendar_exec(){
//获取任意年的二月有多少天
Random rd = new Random();
int year = rd.nextInt(2100); //随机一个小于2100的年份
Calendar c = Calendar.getInstance();
c.set(year, 2, 1); //设置某一年的3月1日
c.add(Calendar.DATE, -1); //此日期减一天,即为2月最后一天
int sum = c.get(Calendar.DATE);
P.rintln(year + "年2月份有" + sum + "天");
//获取昨天的现在这个时候
Calendar c2 = Calendar.getInstance();
c2.add(Calendar.DATE, -1);
P.rintln(c2.get(Calendar.YEAR) + "年" + (c2.get(Calendar.MONTH) + 1) + "月" + c2.get(Calendar.DATE) + "日" +
c2.get(Calendar.HOUR_OF_DAY) + "时" + c2.get(Calendar.MINUTE) + "分" + c2.get(Calendar.SECOND) + "秒");
}
学习视频学到了查表法,用此方法改写了下基础测试时自己计算星期几的代码:
/**
* 第九题:编写程序,该程序启动后用户可以按“yyyy-MM-dd”的格式输入一个日期,程序计算这一天是星期几,并且计算出是一年中的第几天。
* @author xiaogh
*
*/
public class Test9 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
P.rintln("请按“yyyy-MM-dd”格式输入一个日期:");
String str = scan.nextLine();
scan.close();
//将String转换为Date
DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
try {
date = format.parse(str);
} catch (ParseException e) {
P.rintln("请按格式正确输入日期");
return;
}
String weekDay = dayOfWeek(date); //调用查询星期方法返回指定日期是星期几
int yearDay = dayOfYear(date); //调用查询天数方法返回指定日期在一年中是第几天
//输出结果,查看效果
P.rintln(weekDay + " " + str.substring(0, 4) + "年第" + yearDay + "天");
}
public static String dayOfWeek(Date date){
//实例化一个Calendar对象
Calendar cd = Calendar.getInstance();
//使用输入的日期初始化Calendar对象
cd.setTime(date);
//使用Calendar提供的方法,获得指定日历的星期
int i = cd.get(Calendar.DAY_OF_WEEK);
String[] days = new String[]{"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
return days[i];
//根据i值,获取星期数
// String day = null;
// switch(i){
// case 2:
// day = "星期一"; break;
// case 3:
// day = "星期二"; break;
// case 4:
// day = "星期三"; break;
// case 5:
// day = "星期四"; break;
// case 6:
// day = "星期五"; break;
// case 7:
// day = "星期六"; break;
// case 1:
// day = "星期日";
// }
// return day;
}
public static int dayOfYear(Date date){
//实例化一个Calendar对象
Calendar cd = Calendar.getInstance();
//使用输入的日期初始化Calendar对象
cd.setTime(date);
//使用Calendar提供的方法,获得指定日历为第几天
int i = cd.get(Calendar.DAY_OF_YEAR);
return i;
}
}
5、Math-Random类
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。一些常用方法:
public static void math_random(){ //Math类
double[] results = new double[10];
int i = 0;
results[i++] = Math.abs(-2); //返回参数的绝对值
results[i++] = Math.ceil(-13.23); //返回大于等于参数的最小整数
results[i++] = Math.floor(14.33); //返回小于等于参数的最大整数
results[i++] = Math.round(23.14); //返回参数四舍五入的整数
results[i++] = Math.pow(2, 3); //返回第一个参数的第二个参数次幂的值
for(double d : results){
if(d == 0.0){
break;
}
P.rintln(d);
}
P.rintln("--------------我是分隔符----------------");
//随机数Math.random()
for(i = 0; i < 5; i++){
double d = Math.random(); //返回大于等于0.0小于1.0的值
P.rintln(d);
}
P.rintln("--------------我是分隔符----------------");
for(i = 0; i < 5; i++){
int d = (int)((Math.random() * 10) + 1); //乘以某个值即可扩大随机范围
P.rintln(d);
}
P.rintln("--------------我是分隔符----------------");
//使用Random类生成随机数
Random rd = new Random();
for(i = 0; i < 5; i++){
int d = rd.nextInt(10);
P.rintln(d);
}
}
------- android培训、 java培训、期待与您交流! ----------详细请查看: www.itheima.com