zoukankan      html  css  js  c++  java
  • 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. }  
  • 相关阅读:
    干嘛
    有一种姑娘 你只想温柔以待
    衡阳拜佛
    浅谈程序员的英语学习【转】
    linux下用C编写的基于smtp的邮件发送程序【转】
    清空消息队列的缓存buffer
    不要对C++类对象或struct对象做memset操作
    xml解析编辑网站
    gdb调试
    喂狗机制 Software Dog
  • 原文地址:https://www.cnblogs.com/tiankong101/p/4227190.html
Copyright © 2011-2022 走看看