你的位置:首页 > Java教程

[Java教程]【Java学习笔记】其他对象API


System类

 1 package p1; 2  3 import java.util.Properties; 4 import java.util.Set; 5  6 public class SystemDemo { 7    8   private static final String LINE_SEPARATOR = System.getProperty("line.separator"); //设置换行 9 10   public static void main(String[] args) {11     /*12      * System:类中的方法和属性都是静态的。13      * 常见方法:14      *     long currentTimeMills();获取当前时间的毫秒值。(返回当前时间与协调世界时间1970年1月1日午夜之间的时间差)15     */16 //    demo1();17     demo2();18 //    demo3();19 20   }21 22   public static void demo3() {23     System.setProperty("age", "28");24     System.setProperty("name", "张三");25     26     27     System.out.println(System.getProperty("age"));28     System.out.println(System.getProperty("name"));29     30     System.out.println("hello"+LINE_SEPARATOR+"woorld");31   }32   /*33    * demo3运行结果:34    *       2835         张三36         hello37         woorld38 39   */40 41   public static void demo2() {42     /*43      * Properties getProperties() 获取系统的属性信息,并存储到Properties集合中44      * 45      * Properties集合中存储都是String类型的键和值 //所以定义Properties类型的变量时不必带泛型46      * 最好使用它自己的存储和取出的方法来完成元素的操作47     */48     Properties prop = System.getProperties();49 //    System.out.println(prop);50     51     Set<String> nameSet = prop.stringPropertyNames();52     53     for (String name : nameSet)54     {55       String value = prop.getProperty(name);56       57       System.out.println(name+"::"+value);58     }59   }60 61   public static void demo1() {62     long l1 = System.currentTimeMillis();63     System.out.println(l1);//返回1473476846438 毫秒数64     System.out.println(l1/1000/60/60/24); //返回 17054  天数65     66     // code...67     long l2 = System.currentTimeMillis();68     System.out.println(l2-l1); //返回的是code...代码执行所用时间69   }70 71 }

 Runtime类

 1 package p1; 2  3 import java.io.IOException; 4  5 public class RuntimeDemo { 6  7   public static void main(String[] args) throws IOException, InterruptedException { 8     /* 9      * 每一个Java程序都有一个Runtime类案例,使应用程序能够与其运行的环境相连,可以通过getRuntime方法获取当前运行时。10      * 应用程序不能创建自己的Runtime类案例。11     */12     13     /*14      * Runtime:没有构造方法摘要,说明该类不可以创建对象15      * 又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法16      * 而且只有一个,说明Runtime类使用了单列设计模式。17     */18     19     Runtime r = Runtime.getRuntime();20     21 //    Process p = r.exec("notepad.exe");//打开notep22     Process p = r.exec("notepad.exe D:\\1.txt");//打开notepad,在用notepad打开TXT23           //r.exec("软件路径 文件路径");24     Thread.sleep(5000);25     p.destroy();//杀掉进程   5s后notepad关闭26     27 28   }29 30 }

 

 Math类

 1 package p1; 2  3 import java.util.Random; 4  5 public class MathDemo { 6  7   public static void main(String[] args) { 8     /* 9      * Math:提供了操作数学运算的方法。都是静态的。10      * 11      * 常用方法:12      *     ceil():返回大于参数的最小整数13      *     floor():返回小于参数的最大整数14      *     round():返回四舍五入的整数15      *     pow(a,b):a的b次方16      *     random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.017     */18     19 //    demo();20     RandomDemo();21 22 23   }24 25   public static void RandomDemo() {26     Random r = new Random();27     28     for (int i=0; i<10; i++)29     {30       double d = r.nextDouble();//与Math.random()方法类似31       System.out.println(d);32       /*33        * 0.01354668482943810534         0.0805871738046229935         0.2515634870910782336         0.814920134085007137         0.3798688284149829338         0.2371813506625031239         0.634893962969442240         0.950877768407648441         0.823147848670474942         0.460580038704442343       */44     }45     46     for (int i=0; i<10; i++)47     {48       int d1 = r.nextInt(10);  //随机返回0~10(不包含)间任意一个int值。49       System.out.println(d1);50       51     }52   }53 54   public static void demo() {55     double d1 = Math.ceil(12.53);56     double d2 = Math.floor(12.53);57     double d3 = Math.round(12.13);58     double d4 = Math.pow(10, 3);59     60     System.out.println(d1); //13.061     System.out.println(d2); //12.062     System.out.println(d3);//12.063     System.out.println(d4);//1000.064     65     for (int i=0; i<10; i++)66     {67       double d = Math.random();68       System.out.println(d);69       /*70        * 0.302727561542924871         0.523849587979057772         0.98783981867565473         0.674915693358544174         0.847452436364982475         0.41212422807785176         0.00932494466696975977         0.913691870753976278         0.4119791755652003679         0.327761728196249680       */81     }82   }83 84 }

 Date类

 1 package p1; 2  3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.text.SimpleDateFormat; 6 import java.util.Date; 7  8 public class DateDemo { 9 10   public static void main(String[] args) throws ParseException {11 //    method_demo1();12 //    method_demo2();13     method_demo3();14 15   }16 17   public static void method_demo3() throws ParseException {18     19     /*20      *将日期格式的字符串-->日起对象21      *  使用的是DateFormat类中的parse()方法。 22     */23     24     String str = "2016年9月10日 星期六";25     String str1 = "2016--09--10 02:22:08";26     27     DateFormat dateformat = DateFormat.getDateInstance(DateFormat.FULL);//格式与日期格式要对应28     DateFormat dateformat1 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss");29     30     Date date = dateformat.parse(str);31     System.out.println(date);//Sat Sep 10 00:00:00 CST 201632     33     Date date1 = dateformat1.parse(str1);34     System.out.println(date1);//Sat Sep 10 02:22:08 CST 201635   }36 37   public static void method_demo2() {38     /*39      * 对日期对象进行格式化40      * 将日期对象-->日期格式的字符串41      *   使用DateFormat类中的format方法。42     */43     44     Date date = new Date();45     46     //获取日期格式对象,有FULL,LONG,SHORT,MEDIUM(默认)格式。不标明就是默认格式47     DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.FULL);48 //    System.out.println(dateFormat); //java.text.SimpleDateFormat@ef7951d749     String str = dateFormat.format(date);50     System.out.println(str);//2016年9月10日 星期六51     52     DateFormat dateFormat1 = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);53     String str1 = dateFormat1.format(date);54     System.out.println(str1);  //2016年9月10日 星期六 下午02时14分18秒55     56     //如果风格想要自定义呢?57     DateFormat dateFormat2 = new SimpleDateFormat("yyyy--MM--dd hh:mm:ss");58     String str2 = dateFormat2.format(date);59     System.out.println(str2);  //2016--09--10 02:22:0860     61   }62 63   public static void method_demo1() {64     65     /*66      * 日期对象和毫秒值之间的转换67      * 68      * 毫秒值-->日期对象69      * 1.通过Date对象的构造方法 new Date(timeMills);70      * 2.还可以通过Settime设置71      * 72      * 日期对象-->毫秒值73      * getTime方法74     */75     76     long time = System.currentTimeMillis();77     System.out.println(time); //147348564065978     79     Date date = new Date(); //将当前日期和时间封装成date对象。80     System.out.println(date); //Sat Sep 10 13:39:21 CST 201681     82     Date date1 = new Date(1473485640659l); //将指定毫秒值封装成date对象。83     System.out.println(date1); //Sat Sep 10 13:34:00 CST 201684     85     Date date2 = new Date();86     date2.setTime(1473485640659l);87     long l = date2.getTime();88     System.out.println(l);  //147348564065989   }90 91 }

 

 1 package p1; 2  3 import java.text.DateFormat; 4 import java.text.ParseException; 5 import java.util.Date; 6  7 /* 8  * “2012-3-17”到“2012-4-6”间有多少天 9  * 10  * 思路:11  *     日期格式字符串-->日期对象-->获取毫秒值-->相减12 */13 public class DateTest {14 15   public static void main(String[] args) throws ParseException {16     17     String str_date1 = "2012-3-17";18     String str_date2 = "2012-4-6";19     20     test(str_date1,str_date2);21 22   }23 24   public static void test(String str_date1, String str_date2) throws ParseException {25     DateFormat dateformat = DateFormat.getDateInstance();//对应格式26     27     Date date1 = dateformat.parse(str_date1);28     Date date2 = dateformat.parse(str_date2);29     30     long time1 = date1.getTime();31     long time2 = date2.getTime();32     33     long time = Math.abs(time1-time2);34     35     int day = getDay(time);36     System.out.println(day);37     38   }39 40   public static int getDay(long time) {41     int day = (int)(time/1000/60/60/24);42     return day;43   }44 45 }

 Calendar类

 1 package cn.itcast.p1.otherapi; 2  3 import java.util.Calendar; 4  5 public class CalendarDemo { 6  7   public static void main(String[] args) { 8     Calendar c = Calendar.getInstance(); 9     System.out.println(c);10     /*电脑当前时间的日历11      * 12      * java.util.GregorianCalendar[time=1473493014690,areFieldsSet=true,13       areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",14       offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null],firstDayOfWeek=1,15       minimalDaysInFirstWeek=1,ERA=1,YEAR=2016,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=2,DAY_OF_MONTH=10,16       DAY_OF_YEAR=254,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=3,HOUR_OF_DAY=15,17       MINUTE=36,SECOND=54,MILLISECOND=690,ZONE_OFFSET=28800000,DST_OFFSET=0]18 19     */20     21     showDate(c);22     23     showDays(2016);//判断2016的二月有多少天24 25   }26 27   public static void showDays(int i) {28     Calendar c = Calendar.getInstance();29     c.set(i, 2, 1);30     31     c.add(Calendar.DAY_OF_MONTH, -1);32     showDate(c);33   }34 35   public static void showDate(Calendar c) {36     37     int year = c.get(Calendar.YEAR);38     int month = c.get(Calendar.MONTH)+1;39     int day = c.get(Calendar.DAY_OF_MONTH);40     int week = c.get(Calendar.DAY_OF_WEEK);41     int hour = c.get(Calendar.HOUR_OF_DAY);42     int min = c.get(Calendar.MINUTE);43     int second = c.get(Calendar.SECOND);44     45     System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week)+" "+hour+":"+min+":"+second);46   }47 48   public static String getWeek(int week) {49     String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};50     51     return weeks[week];52   }53 54 }