标签:
一、概述:
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);//1335671230671Date date = new Date();//将当前日期和时间封装成Date对象。System.out.println(date);//Sun Apr 29 11:48:02 CST 2012Date 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(); // 方法1dateFormat = 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-11int 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