Java基础---其他对象

第一讲     System类

一、概述

1、System是描述系统一些信息的类,类中的属性和方法都是静态的。不能被实例化,没有提供构造函数。

2、字段摘要

       out:标准输出流。默认是控制台。

        in:标准输入流。默认是键盘。

 

二、方法

1、获取系统的属性信息:

        PropertiesgetProperties();

说明:

        1)此方法返回的双列集合,即键值对;因为Properties是Hahstable的子类,也就是Map集合的一个子类对象,那么通过Map方法取出该集合中的元素。

         2)该集合存储的都是字符串,没有泛型定义

2、获取指定属性信息:

        String getProperty(Stringkey);

3、在系统内定义特有信息:

        String setProperty(Stringkey,String value);

4、如何在jvm启动时,加载一些属性信息:

       通过命令:java -D<name>=<value>可以设置特有的系统属性信息

示例:

[java] view plaincopy
 
  1. import java.util.*;  
  2. class SystemDemo   
  3. {  
  4.     public static void main(String[] args)   
  5.     {  
  6.         Properties p=System.getProperties();//获取当前的系统属性  
  7.         sop(p);  
  8.   
  9.         String value=System.getProperty("os.name");//获取指定键指示的系统属性  
  10.         sop("os.name="+value);  
  11.   
  12.         System.setProperty("wode","My_PC");//设置指定键指示的系统属性信息  
  13.         sop(p);  
  14.           
  15.         String s= System.getProperty("woshi");//当系统中没有该键值,返回null  
  16.         sop(s);  
  17.   
  18.     }  
  19.   
  20.     public static void sop(Object obj)  
  21.     {  
  22.         System.out.println(obj);  
  23.     }  
  24. }  

 

第二讲     Runtime类

一、概述

        1、每个java应用程序都有一个Runtime类实例,使用应用程序能与其中运行的环境相连接,应用程序不能创建自己的Runtime类的实例,是由系统底层自己创建的。

        2、该类中并没有提供构造函数。说明不可以new对象。那么会直接想到该类中的方法都是静态的。查阅API文档发现,该类中还有非静态方法。说明该类肯定会提供了方法获取本来对象。而且该方法是静态的,并返回值类型是本来类型。

        3、由以上特点可以看出该类淘宝开店教程使用了单例设计模式完成。

 

二、方法

1、获取本类对象

        static RuntimegetRuntime();

2、在单独的进程中执行指定字符串命令

        Processexec(String command);

3、在Process中有一个杀掉子进程的方法,可将exec方法开启的进程结束

        void destroy();

示例:

[java] view plaincopy
 
  1. class RuntimeDemo   
  2. {  
  3.     public static void main(String[] args)throws Exception  
  4.     {  
  5.         Runtime r=Runtime.getRuntime();//获取本类对象  
  6.   
  7.         Process p=r.exec("notepad.exe");//执行记事本程序  
  8.         r.exec("notepad.exe  RuntimeDemo.java");//用记事本打开指定文件  
  9.   
  10.         Thread.sleep(3000);//让线程等待3秒  
  11.         p.destroy();//杀掉指定进程  
  12.     }  
  13. }  

 

第三讲     时间类

一、Date类

1、概述

        Date类表示特定的瞬间,精确到毫秒。

        java中的默认显示格式为:Mon Jun 10 22:35:21 CST2013

2、自定义格式

        默认的格式不一定满足每个人的需求,那么就需要自定义格式化模式。因为Date类中的大部分方法已过时,所以只能找其子类来实现。子类DateFormat中有format方法可以实现,但是DateFormat是抽象类,不能实例化。但是其下有个SimpleDateFormat子类,可以定义时间模式伤感的句子

具体步骤:

        1)创建Date对象

        2)将时间模式封装到SimpleDateFormat对象中

        3)调用format方法让格式化模式指定Date对象

代码如下:

[java] view plaincopy
 
  1. import java.util.*;  
  2. import java.text.*;  
  3. class DateDemo   
  4. {  
  5.     public static void main(String[] args)   
  6.     {  
  7.         Date d=new Date();//创建Date对象  
  8.         //sop(d);  
  9.   
  10.         ////将模式封装到SimpleDateformat对象中。  
  11.         SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E HH:mm:ss");  
  12.         //调用format方法让模式格式化指定Date对象。  
  13.         String time=sdf.format(d);  
  14.         sop(time);  
  15.     }  
  16.   
  17.     public static void sop(Object ojb)  
  18.     {  
  19.         System.out.println(ojb);  
  20.     }  
  21. }  


二、Carendar类

1、概述:

        1)Calendar是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH等日历字段之间的转换提供了一些方法。

        2)Calendar可以对年月日等时间进行获取。并提供了相应的子段值。可参阅API文档。

2、方法:

2.1、基本获取时间

        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

2.2、设置时间:

        1)根据日历的规则,为给定的日历字段添加或减去指定的时间量:

                void add(int field,int amount);

        2)获取指定的日历字段对应的时间值:

                int get(int field);

        3)将给定日历字段对应的时间值设置为给定值:

                void set(int field,int value);

       设置日历字段 YEAR、MONTH和DAY_OF_MONTH的值:

                void set(int year,int month,int date);

示例:

[java] view plaincopy
 
  1. import java.util.*;  
  2. class  CalendarDemo  
  3. {  
  4.     public static void main(String[] args)   
  5.     {  
  6.         Calendar c=Calendar.getInstance();  
  7.           
  8.         sop(pattern(c));//显示今天日期和当前时间  
  9.           
  10.         c.add(Calendar.YEAR,3);//年份变为3年后  
  11.   
  12.         sop(pattern(c));//显示指定日期和时间  
  13.   
  14.     }  
  15.   
  16.     //获取指定日期和时间  
  17.     public static String pattern(Calendar c)  
  18.     {  
  19.         String s=year(c)+month(c)+day(c)+week(c)+" "+time(c);  
  20.         return s;  
  21.     }  
  22.       
  23.     //获取年份  
  24.     public static int year(Calendar c)  
  25.     {  
  26.         return c.get(Calendar.YEAR);  
  27.     }  
  28.     //获取月份  
  29.     public static String month(Calendar c)  
  30.     {  
  31.         String[] yue={"一月","二月","三月","四月",  
  32.                     "五月","六月","七月","八月",  
  33.                     "九月","十月","十一月","十二月"};  
  34.         return yue[c.get(Calendar.MONTH)];  
  35.     }  
  36.     //获取日期  
  37.     public static int day(Calendar c)  
  38.     {  
  39.         return c.get(Calendar.DAY_OF_MONTH);  
  40.     }  
  41.     //获取星期  
  42.     public static String week(Calendar c)  
  43.     {  
  44.         String[] day={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
  45.         return day[c.get(Calendar.DAY_OF_WEEK)];  
  46.     }  
  47.     //获取时间,格式为时:分:秒  
  48.     public static String time(Calendar c)  
  49.     {  
  50.         String s=c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);  
  51.         return s;  
  52.     }  
  53.   
  54.     //打印输出  
  55.     public static void sop(Object obj)  
  56.     {  
  57.         System.out.println(obj);  
  58.     }  
  59. }  

小练习:

[java] view plaincopy
 
  1. /* 
  2. 练习 
  3. 1、获取任意年的二月有多少天: 
  4.     思路:根据指定年设置一个时间就是  
  5.     c.set(year,2,1)//某一年的3月1日。 
  6.     c.add(Calenar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最后一天。 
  7.  
  8. 2、获取前一天的现在这个时刻 
  9.     思路:c.add(Calenar.DAY_OF_MONTH,-1); 
  10.  
  11. 3、计算有效上课天数,每周六日不上课,计算任意年从九月到十月的有效上课天数 
  12.     思路; 
  13.     1、根据指定年设定一个时间就是c.set(year,8,1)//某一年的9月1日 
  14.     2、定义一个计数器,判断指定时间是否是星期六或者星期日,不是则计数加1 
  15.     3、日期偏移量1天,直至判断到这个月的最后一天 
  16. */  
  17.   
  18. import java.util.*;  
  19.   
  20. class  OtherClassTest  
  21. {  
  22.     public static void main(String[] args)   
  23.     {  
  24.         //练习1测试  
  25.         sop("2012年二月份有"+whatDay(2012)+"天");  
  26.   
  27.         //练习2测试  
  28.         sop("昨天的现在这个时刻:"+lastNowTime());  
  29.   
  30.         //练习3测试  
  31.         sop("2013年9月到10月上了"+howDay(2013)+"天课");  
  32.     }  
  33.   
  34.     //练习1  
  35.     public static int whatDay(int year)  
  36.     {  
  37.         Calendar c=Calendar.getInstance();  
  38.         c.set(year,2,1);  
  39.         c.add(Calendar.DAY_OF_MONTH,-1);  
  40.         return c.get(Calendar.DAY_OF_MONTH);  
  41.     }  
  42.   
  43.     //练习2  
  44.     public static String lastNowTime()  
  45.     {  
  46.         Calendar c=Calendar.getInstance();  
  47.         c.add(Calendar.DAY_OF_MONTH,-1);  
  48.         return pattern(c);  
  49.     }  
  50.   
  51.     //练习3  
  52.     public static int howDay(int year)  
  53.     {  
  54.         Calendar c=Calendar.getInstance();  
  55.         c.set(year,8,1);  
  56.         int count=0;  
  57.         for (int x=c.get(Calendar.DAY_OF_MONTH); x<=30;x++ )  
  58.         {  
  59.             if(c.get(Calendar.DAY_OF_WEEK)!=1&&c.get(Calendar.DAY_OF_WEEK)!=7)  
  60.                 count++;  
  61.             c.add(Calendar.DAY_OF_MONTH,1);  
  62.         }  
  63.         return count;  
  64.     }  
  65.   
  66.     //获取指定日期和时间  
  67.     public static String pattern(Calendar c)  
  68.     {  
  69.         String s=year(c)+month(c)+day(c)+week(c)+" "+time(c);  
  70.         return s;  
  71.     }  
  72.       
  73.     //获取年份  
  74.     public static int year(Calendar c)  
  75.     {  
  76.         return c.get(Calendar.YEAR);  
  77.     }  
  78.     //获取月份  
  79.     public static String month(Calendar c)  
  80.     {  
  81.         String[] yue={"一月","二月","三月","四月",  
  82.                     "五月","六月","七月","八月",  
  83.                     "九月","十月","十一月","十二月"};  
  84.         return yue[c.get(Calendar.MONTH)];  
  85.     }  
  86.     //获取日期  
  87.     public static int day(Calendar c)  
  88.     {  
  89.         return c.get(Calendar.DAY_OF_MONTH);  
  90.     }  
  91.     //获取星期  
  92.     public static String week(Calendar c)  
  93.     {  
  94.         String[] day={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
  95.         return day[c.get(Calendar.DAY_OF_WEEK)];  
  96.     }  
  97.     //获取时间,格式为时:分:秒  
  98.     public static String time(Calendar c)  
  99.     {  
  100.         String s=c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);  
  101.         return s;  
  102.     }  
  103.   
  104.     //打印输出  
  105.     public static void sop(Object obj)  
  106.     {  
  107.         System.out.println(obj);  
  108.     }  
  109. }  

 

第四讲     Math类

一、概述

        Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。该类全为静态方法。

 

二、方法

        1、doubleceil(double d);//返回大于指定数据的最小整数

        2、doublefloor(double d);//返回小于指定数据的最大整数

        3、double pow(doublea,double b);//返回a的b次方

        4、long round(doubleb);//返回b四舍五入的值 

        5、doublerandom();//返回正号的double值,是一个大于等于0.0且小于1.0的随机数

 

三、Random类

        这是java.util中的一个单独的类,该类对象用于获取随机数。与Math中的random方法是一样的,不过这个类有自身的方法,可以将相应的随机数强转为指定基本数据类型。

        如:intnextInt(int n);//返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。

小练习:

[java] view plaincopy
 
    1. /* 
    2. 练习:给定一个小数,保留该小数的后n位。 
    3.     1、先把给定小数乘以10的n次方,四舍五入保留整数部分 
    4.     2、再把该整数除以10的n次方 
    5. */  
    6. class MathTest   
    7. {  
    8.     public static void main(String[] args)   
    9.     {  
    10.           
    11.         double d=retention(13.6572,2);  
    12.   
    13.         System.out.println("d="+d);  
    14.     }  
    15.       
    16.     //保留小数位方法  
    17.     public static double retention(double d,int n)  
    18.     {  
    19.         double d1=d*Math.pow(10,n);//先将要保留的小数位变为整数  
    20.         long l=Math.round(d1);//将小数四舍五入  
    21.         return l/Math.pow(10,n);//返回保留了指定小数位的小数  
    22.     }  
    23. }  
posted @ 2015-01-15 20:10  天空101  阅读(169)  评论(0编辑  收藏  举报