------- android培训、java培训、期待与您交流! ----------
Runtime对象
1. 该类没有构造函数:不能new对象,说明该类中方法都是静态的.
2. 发现该类中还有非静态方法:说明该类中还会提供一个获取本类对象的静态方法.
3. 由这些特性可以说明Runtime是使用单例设计模式.
4. Runtime 对象可以调用exec(“notepad.exe 1.java”)(execute的简写)方法执行硬盘上的一些exe程序,并打开相应的文件
5. Java找资源或文件时候先找指定目录->没有指定目录就找当前目录bin(所在目录)->去path执行的地方找
6. Runtime调用exec后返回是进程,这些进程是由底层资源创建的,不能手动创建
7. 杀掉进程process.destroy().
测试代码:
import java.io.IOException;
public class TestRuntime {
public static void main(String args[]) throws IOException, InterruptedException {
Runtime r=Runtime.getRuntime();
r.exec("notepad.exe hello.java");//打开记事本,并打开hello.java文件
Process p=r.exec("calc.exe");//执行cal.exe程序
Thread.sleep(5000); //线程等待五秒
p.destroy(); //关闭cal.exe的进程
}
}
Date对象.
1. 精准的瞬间,精确到毫秒.
2. Date date=new Date() date 打印出来的格式 Mon Oct 27 20:11:58 CST 2014
3. DateFormat:日期格式化,我们用它的子类SimpleDateFormat
SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd”);
String s=sdf.format(date);
测试代码:把当前时间显示为xxxx年xx月xx日 HH:mm:ss的形式
public class TestDate {
public static void main(String args[]) throws IOException, InterruptedException {
Date date=new Date();
System.out.println(date);//默认格式
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String s=sdf.format(date);//格式化
System.out.println(s);
}
}
运行结果:Tue Oct 28 19:20:08 CST 20142014年10月28日 19:20:08
Calender
1. Calendar calendar =Calendar.getInstance();
2. calendar.get(Calendar.MONTH);
3. 查表法:当元素很多,而且这些元素和数组有对应的关系,而且这些数字都有角标的规律的时候就可以用查表法。
4. Calendar.set(int date,int month,int day):设置为指定的日期
5. Calendar.add(int field,int amount):在指定的属性上偏移amount个单位
6. calendar.getTime()获取Date格式的日期;
7. 练习题:
- 利用查表法获取当前日期
- 两个年份相差多少个工作日(星期一到星期五)
- 练习使用 Calendar.set(int date,int month,int day),Calendar.add(int field,int amount)方法
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Text3 {
public static void main(String[] args) throws IOException {
/**
* 利用查表法和calendar对象获取现在时间
*/
String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月",
"八月", "九月", "十月", "十一月", "十二月" };
String[] weeks={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
Calendar calendar = Calendar.getInstance(); //获取日历对象;
Integer index = calendar.get(Calendar.MONTH);//得到月份数(比实际的少1)
int day=calendar.get(Calendar.DAY_OF_MONTH);
int year=calendar.get(Calendar.YEAR);
Integer index1 = calendar.get(Calendar.DAY_OF_WEEK)-1;//获取星期几,外国的第一天是星期日
System.out.println(year+"年"+months[index]+" "+day+"日 "+weeks[index1]);//2014年十月月28日星期二
/**
* 计算两个日期的工作日(星期一到星期五视为工作日)
*/
//获取两个日期对象
Calendar c = Calendar.getInstance();
Calendar n = Calendar.getInstance();
//设置两个指定的日期
c.set(2010, 8, 1);
n.set(2014, 10, 28);
//初始化总天数为一天
int totalDays = 1;
while (!getDateFormat(c).equals(getDateFormat(n))) {//当两个日期转换后的日期不同时就继续循环
c.add(Calendar.DAY_OF_MONTH, 1);//每次增加一天
if (c.get(Calendar.DAY_OF_WEEK) != 1 //如果不为星期天和星期六(分别对应着1和7)
&& c.get(Calendar.DAY_OF_WEEK) != 7) {
totalDays++; //总天数加一天
}
}
System.out.println("总共天数:"+totalDays);
}
/**
*
* @param 把calendar对象转换为date对象
* @return
*/
static String getDateFormat(Calendar c) {
Date date = c.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//转换格式
return sdf.format(date);
}
}
运行结果:2014年十月 28日 星期二总共天数:1108
Math
1. Double Math.Ceil(double)返回大于指定数字的最小整数
2. Double Math.floor(double)返回小于执行数字的最大整数
3. Math.round()
4. Math.pow(a,b) 求a的b次方
5. Math.Random() 返回[0-1)之间的伪随机数
6. Random r=new Random()r.nextInt(10) 返回[0-10)之间的整数
7. 练习题给定一个小数,保留后两位.
import java.util.Random;
public class TestMath {
public static void main(String[] args) {
// 创建Random对象
Random r = new Random();
double num = r.nextDouble() + r.nextInt(100);// 获取随机的双精度小数
System.out.println("转换前:" + num);
System.out.println("转换后" + getNewNum(num));// 保留两位小数
}
/**
*
* @param 把double类型的小数保留两位小数
* @return double result
*/
public static Double getNewNum(Double a) {
String s = "" + a;// 转换为字符串
int pointIndex = s.indexOf(".");// 计算小数点在小数的位子
s = s.substring(0, pointIndex + 3);// 第一个字符开始直到小数点后3位前结束
Double result = Double.parseDouble(s);// 把字符串转换为double类型,此时只有两位小数
return result;
}
}
某次运行结果:
转换后97.75
------- android培训、java培训、期待与您交流! ----------