标签:
一、概述:
1、System类是描述系统一些信息的类,不可以实例化,也无构造函数
2、System类中的方法和属性都是静态的
in :标准输入流,默认是键盘
out:标准输出流,默认是控制台
二、方法:Properties集合的方法
1、获取系统的属性信息:
Properties getProperties();
说明:1)此方法返回的双列集合,即键值对;因为Properties是Hahstable的子类,也就是Map集合的一个子类对象,那么通过Map方法取出该集合中的元素。
2)该集合存储的都是字符串,不用泛型定义
2、获取指定属性信息:
String System.getProperty(String key);(取,用set集合)
3、在系统内定义特有信息:
void System.setProperty(String key,String value);相当于put(存)
4、如何在jvm启动时,加载一些属性信息:
通过命令:java -D<name>=<value> 可以设置特有的系统属性信息
import java.util.Properties;
import java.util.Set;
class SystemDemo {
private static final String LINE_SEPARATOR = System
.getProperty("line.separator"); // 这是一启动就获取到
// System.out.println("hello"+LINE_SEPARATOR+" world");
// \r\n,window这样换行,但Java是跨平台的,这样写所有的系统都能识别。这是键的值获取键的值public class SystemDemo
// {
public static void main(String[] args) {
/*
*
* System:类中的方法和属性都是静态的。
*
* 常见方法:
*
* long currentTimeMillis();获取当前时间的毫秒值。
*/
// long l1 = 1335664696656l;//System.currentTimeMillis();
// System.out.println(l1/1000/60/60/24);//1335664696656
// code..加个程序,显示程序运行的时间
// long l2 = System.currentTimeMillis();//距离上一个时间走了多长时间
// System.out.println(l2-l1);
// demo_1();
// 给系统设置一些属性信息。这些信息是全局,其他程序都可以使用。
// System.setProperty("myclasspath", "c:\myclass");
}
public static void demo_1() {
// 获取系统的属性信息,并存储到了Properties集合中。
/*
*
* properties集合中存储都是String类型的键和值。
*
* 最好使用它自己的存储和取出的方法来完成元素的操作。
*/
Properties prop = System.getProperties();
Set<String> nameSet = prop.stringPropertyNames();// 用set集合
// 遍历set集合,获取全部信息
for (String name : nameSet) {
String value = prop.getProperty(name);// getProperty返回string类型,不用强转了
System.out.println(name + "::" + value);
}
- }
}
一、概述:
1、每个java应用程序都有一个Runtime类实例,使应用程序能与其中运行的环境相连接,应用程序不能创建自己的Runtime类的实例,是由系统底层自己创建的。
2、该类并未提供构造函数:说明不可以new对象,那么会直接想到该类中的方法都是静态的。查阅API文档发现,该类中还有非静态方法,说明该类中肯定会提供方法获取该类对象,并且该方法是静态的,且返回值类型是该类类型。
3、由这个特点可以看出该类使用了单例设计模式。
二、方法:
1、获取本类对象:
static Runtime getRuntime();
2、在单独的进程中执行指定字符串命令:
Process exec(String command); execute: 执行。 xxx.exe
3、在Process中有一个杀掉子进程的方法,可将exec方法开启的进程杀掉
void destroy();
import java.io.IOException;
class RuntimeDemo {
public static void main(String[] args) {
// 获取本类对象
Runtime runtime = Runtime.getRuntime();
try {
// 调用对象执行命令,返回一个进程
Process p = runtime.exec("notepad.exe");
// 转义字符加路径
try {
Thread.sleep(5000); // 睡了5秒,为了看见杀
} catch (InterruptedException e) {
e.printStackTrace();
}
// 杀掉子进程
p.destroy();
// 通过程序打开文件
runtime.exec("notepad.exe RuntimeDemo.java");
} catch (IOException e) {
e.printStackTrace();
}
}
}
一、概述:
Math
类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数(测绘软件)。
二、方法:
1、double ceil(double d) ---> 返回大于指定数据的最小整数
2、double floor(double d) ---> 返回小于指定数据的最大整数
3、double pow(double a,double b) ---> 返回a的b次方
4、double/float round(double/float m) ---> 返回m四舍五入的值
5、double random() ---> 返回0到1的随机数,包含0不包含1
public class MathDemo {
public static void main(String[] args) {
method();
randomNum();
saveTwo(12.3456, 2, true);
}
/*
* 练习。给定一个小数。 保留该两位小数。
*/
public static void saveTwo(double d, int scale, boolean isRound) {
double base = Math.pow(10, scale);
double num = isRound ? Math.round(d * base) / base : ((int) (d * base))
/ base;
System.out.println("num=" + num);
/*
* double d1 = d*100; sop("d1="+d1); d1 = d1+0.5; double d2 = (int)d1;
* sop("d2="+d2); double d3 = d2/100; sop("d3="+d3);
*/
}
/*
* math方法演示
*/
public static void method() {
double d = Math.ceil(-16.23);// 返回大于指定数据的最小整数
System.out.println("Math.ceil:" + d);
double d1 = Math.floor(-12.99);// 返回小于给定数据的最大整数
System.out.println("Math.floor:" + d1);
long l = Math.round(-12.46);// 四舍五入
System.out.println("Math.round:" + l);
double d2 = Math.pow(2, 3);// 返回第一个参数的第二个参数次幂的值。
System.out.println("Math.pow:" + d2);
}
/*
* 取随机数
*/
public static void randomNum() {
Random r = new Random();// 可以用math中的random方法,也可以使用Random类(变成了对象)
for (int x = 0; x < 10; x++) {
// double d = Math.random();
// double d = Math.ceil(Math.random()*10);
// double d = (int)(Math.random()*6+1); 筛子1-6
// double d = (int)(r.nextDouble()*6+1);
int d = r.nextInt(10) + 1; // 上边的这个的简写
System.out.println(d);
}
}
}
1、概述:类 Date 表示特定的瞬间,精确到毫秒。
2、转换:因为Date类获取到当前时间并以美国方式显示,所以并不是我们所需要的,也就是这样我们需要用到SimpleDateFormat类为其进行转成我们想要的类型。SimpleDateFormat接收一个模式,用于格式化。
public class DateDemo {
public static void main(String[] args) throws ParseException {
methodDemo_3();
}
public static void methodDemo_1() {
long time = System.currentTimeMillis();//
// System.out.println(time);//1335671230671
Date date = new Date();//将当前日期和时间封装成Date对象。
System.out.println(date);//Sun Apr 29 11:48:02 CST 2012
Date date2 = new Date(1335664696656l);//将指定毫秒值封装成Date对象。从上边看出走了多长时间
System.out.println(date2);
}
public static void methodDemo_2() {
Date date = new Date();
//获取日期格式对象。具体着默认的风格。 FULL 、LONG等可以指定风格
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);//日期
dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);//日期时间
// System.out.println(dateFormat);
dateFormat = new SimpleDateFormat("yyyy--MM--dd");//用 dateFormat的子类
String str_date = dateFormat.format(date);//dateFormat实例的format方法,它date传进去
System.out.println(str_date);}
public static void methodDemo_3() throws ParseException {
String str_date = "2012年4月19日"; //写了个日期字符串
str_date = "2011---8---17";
//DateFormat对象,写成2012年4月19日就需要改格式
DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.LONG);
dateFormat = new SimpleDateFormat("yyyy---MM---dd"); //解析自定义格式需要这么写
Date date = dateFormat.parse(str_date);
System.out.println(date);
}
}
public class DateDemo {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);//打印的时间不是理想中的格式,所以需要对其进行转化
//将模型封装在simpledateformat对象中,SimpleDateFormat接收一个模式,用于格式化
SimpleDateFormat smf = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss");
//调用format方法让模式格式化指定的date对象
String time = smf.format(d);
System.out.println(time);
long l = System.currentTimeMillis();
Date d1 = new Date(l);
System.out.println(d1);
}
public class DateTest {
public static void main(String[] args) throws ParseException {
String str_date1 = "2012-3-17";
String str_date2 = "2012-4-18";
test(str_date1, str_date2);
}
public static void test(String str_date1, String str_date2)
throws ParseException {
// 1,将日期字符串转成日期对象。
// 定义日期格式对象。
DateFormat dateFormat = DateFormat.getDateInstance(); // 方法1
dateFormat = new SimpleDateFormat("yyyy-MM-dd"); // 方法2,俩种都行,择其一
Date date1 = dateFormat.parse(str_date1);
Date date2 = dateFormat.parse(str_date2);
// 2,将Date对象转成毫秒值。
long time1 = date1.getTime();
long time2 = date2.getTime();
long time = Math.abs(time1 - time2); // 变成正数
int day = getDay(time);
System.out.println(day);
}
private static int getDay(long time) {
int day = (int) (time / 1000 / 60 / 60 / 24);
return day;
}
}
Date & DateFormat 类
Date类在java.util包中。使用Date类的无参数构造方法创建的对象可以获取本地当前时间。
SimpleDateFormat来实现日期的格式化。
public SimpleDateFormat(String pattern);
该构造方法可以用 参数pattern 指定的格式创建一个对象,该对象调用:
public String format(Date date):方法格式化时间对象date
静态工厂方法是一种模式
首先是一个静态方法,然后通过这个方法可以返回指定的对象,而不用具体去关心这个这个对象是如何创建的。
另外一种方法
二、Calendar类(Date类因为不够国际化,被它取代了)
1、概述:
Calendar是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH等日历字段之间的转换提供了一些方法。Calendar可以对年月日等时间进行获取。并提供了相应的子段值。可参阅API文档。也不能new
2、方法:
1)获取年份:Calendar.YEAR
2)获取月份:Calendar.MONTH
3)获取日期:Calendar.DAY_OF_MONTH
4)获取星期:Calendar.DAY_OF_WEEK
5)获取小时:Calendar.HOUR_OF_DAY
6)获取分钟:Calendar.MINUTE
7)获取秒数:Calendar.SECOND
9)获取指定的日历字段对应的时间值: ---> int get(int field);
10)将给定日历字段对应的时间值设置为给定值: ---> void set(int field,int value); 设置日历字段 YEAR、MONTH和DAY_OF_MONTH的值: ---> void set(int year,int month,int date);
public static void showDate(Calendar c) {
int year = c.get(Calendar.YEAR); YEAR是静态的已有的字段,不能直接写
int month = c.get(Calendar.MONTH)+1; ,月是0-11
int day = c.get(Calendar.DAY_OF_MONTH);
int week = c.get(Calendar.DAY_OF_WEEK);
System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
}
public static String getWeek(int i) { //改成中国的星期方法
String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
return weeks[i];
}
public static void printCalendar(Calendar c) {
// 设置月
String[] month = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月",
"九月", "十月", "十一月", "十二月" };
// 设置月份
int indexm = c.get(Calendar.MONTH);
System.out.println(month[indexm]);
// 设置星期
String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", };
// 获取星期
int indexw = c.get(Calendar.DAY_OF_WEEK);
System.out.println(weeks[indexw]);
// 获取年
System.out.println(c.get(Calendar.YEAR) + "年");
// 月
System.out.println(c.get(Calendar.MONTH) + 1 + "月");
// 日子
System.out.println(c.get(Calendar.DAY_OF_WEEK) + "日");
}
}
public class CalendarTest {
public static void main(String[] args) {
getFebNum(2016);
}
public static void getFebNum(int year){
Calendar c = Calendar.getInstance();
System.out.println("时间:" + c.getTime());
c.set(year,2,1);//某一年的3月1日。
c.add(Calendar.DAY_OF_MONTH, -1);//3月1日,往前推一天,就是2月最后一天。
System.out.println(c.get(Calendar.DAY_OF_MONTH));
}
}
标签:
原文地址:http://www.cnblogs.com/liuyu0529/p/4912370.html