Java基础——其他对象

来源:互联网 发布:网络外汇销售的骗局 编辑:程序博客网 时间:2024/05/21 14:58
第一讲、System类

一、概述

1、System类是一个描述系统信息的类,它提供可访问与系统相关的信息和资源的API;

2、System类中所有属性和方法都是静态的,使用时通过System类名直接调用;

3、通过System类可以动态的加载文件和库;

4、System类中提供了例如快速复制数组等一些实用方法;

5、System将构造函数私有化(只有一个私有的无参构造,并且这个构造函数什么代码也没执行),使类本身不能实例化(可以通过反射实例化)。

6、字段摘要:

      in:标准输入流。in提供输入数据,默认情况下对应于键盘输入,也可由主机环境或用户指定另一个输入源。

      out:标准输出流。out接受输出数据,默认情况下对应显示器(控制台,或者说屏幕),也可由主机环境或用户指定另一个输出目标(例如文件系统)。

      err:标准错误输出流。err接受输出数据,默认情况下对应于控制台,也可由主机环境或用户指定另一个输出目标。按照惯例,err用于输出错误信息。


二、方法

1、获取系统的属性信息

      public static Properties getProperties()

     说明:

               1)、此方法返回一个双列集合(即Key-Value键值对)Properties对象;

                2)、Properties继承于Hashtable,实现了Map集合,因此可以像操作Map集合一样操作该集合中的元素;

                3)、对该对象中的元素进行修改将直接作用于整个应用;

                4)、该集合中存储的都是字符串,没有泛型定义。

     使用示例:

        for (Entry entry : System.getProperties().entrySet()) {            System.out.println(entry.getKey() + ":" + entry.getValue());        }

2、自定义特有的系统属性(或设置键指示的系统属性)

     public static String setProperties(String key, String value);

     说明:

               1)、如果指定的key在这个集合中之前就存在,那么此方法执行完后,会返回之前这个属性对应的值。

     使用示例:

        System.setProperty("data", "custom");// 在系统中自定义一个data属性,设置值为custom        System.out.println(System.getProperty("data"));// 取出自定义的data

3、获取指定属性信息

     public static String getProperty(String key)

     说明:

               1)、此方法会进行安全检查(sm.checkPropertyAccess(key));

               2)、如果指定的key在集合中存在,则返回这个key对应的value;否则返回null。

     使用示例:

        // 这里获取当前操作系统名称,可以做一些系统方面的信息验证,根据不同系统特性做不同处理        System.out.println(System.getProperty("os.name"));

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

     通过命令设置系统属性:java -D<name>=<value>

     使用示例:通过java -Dmydata=1111111 SystemDemo运行SystemDemo

        System.out.println(System.getProperty("mydata"));



第二讲 Runtime类

一、概述

1、每个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的环境相连接;

2、应用程序不能创建自己的Runtime类实例,可以通过getRuntime()方法获取当前运行时;

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

3、由以上特点可以看出Runtime类使用了单例模式设计完成。


二、方法

1、获取与当前Java应用程序相关的Runtime对象

      public static Runtime getRuntime()

      使用示例:

        Runtime runtime = Runtime.getRuntime();

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

      public Process exec(String command) throws IOException

      说明:

                1、此方法创建一个本机进程,并返回Process子类的一个实例,该实例可以用来控制进程并获取相关信息;

                 2、Process类提供了执行从进程输入、执行输出到进程、等待进程完成、检查进程的退出状态以及销毁(杀掉)进程的方法。

      使用示例:

        // 获取与当前Java应用程序相关的Runtime对象        Runtime runtime = Runtime.getRuntime();        // 执行记事本程序        runtime.exec("notepad");        // 用记事本打开指定的java源文件        runtime.exec("notepad " + System.getProperty("user.dir") + "/src/Test.java");

3、Process类销毁进程的方法

      abstract public void destroy()

      说明:

                1、杀掉子进程。强制终止此Process对象指向的子进程。

      使用示例:

        // 执行记事本程序        Process process = runtime.exec("notepad");        // 销毁(杀掉)process指向的进程(exec创建的那个进程)        process.destroy();


第三讲 时间类

一、Date类

1、概述

      1.1、Date类表示特定的瞬间,精确到毫秒;

      1.2、Date类允许将日期解释为年、月、日、小时、分钟和秒;允许格式化和解析日期字符串;

      1.3、Date类不易于实现国际化,应使用Calendar类实现日期和时间字段之间的转换,使用DateFormat类来格式化和解析日期字符串;

      1.4、Date类默认显示格式:Fri May 29 01:36:38 CST 2015

2、自定义格式

      默认的格式不足以满足每个人的需求,那么这就需要自定义格式了。因为Date类中大部分方法已过世,因此只能找其子类来实现。子类DateFormat中有format可以实现,但是DateFormat是抽象类,不能被实例化。但是我们可以使用DateFormat的子类SimplDateFormat来定义时间格式。

      使用示例:

        // 1、创建Date对象        Date date = new Date();        // 2、将日期格式封装到SimpleDateFormat        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");        // 3、调用format格式化指定Date对象        String time = sdf.format(date);        System.out.println(time);

二、Calendar类

1、概述

      1、Calendar是一个抽象类,它为特定与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法(例如获取下星期的日期、获取当前日期等);
      2、Calendar提供了一个类方法getInstance,以获得此类型的一个实例对象,这个实例对象的日历字段由当前日期和时间初始化。


2、方法

      public int get(int field)

      2.1、常用时间(日期)字段值

                2.1.1、获取年份:Calendar.YEAR,例如:c.get(Calendar.YEAR)

                2.1.2、获取月份:Calendar.MONTH,例如:c.get(Calendar.MONTH)

                2.1.3、获取日期:Calendar.DAY_OF_MONTH,例如:c.get(Calendar.DAY_OF_MONTH)

                2.1.4、获取星期:Calendar.DAY_OF_WEEK,例如:c.get(Calendar.DAY_OF_WEEK)

                2.1.5、获取小时:Calendar.HOUR_OF_DAY,例如:c.get(Calendar.HOUR_OF_DAY)

                2.1.6、获取分钟:Calendar.MINUTE,例如:c.get(Calendar.MINUTE)

                2.1.7、获取秒数:Calendar.SECOND,例如:c.get(Calendar.SECOND)

                2.1.8、获取当前月的星期数:Calendar.WEEK_OF_MONTH,例如:c.get(Calendar.WEEK_OF_MONTH)

                2.1.9、获取当前年的星期数:Calendar.WEEK_OF_YEAR,例如:c.get(Calendar.WEEK_OF_YEAR)

      2.2、设置时间(日期)

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

                             public void add(int field, int amount)

                            使用示例(设置年份为三年后):

                  Calendar c = Calendar.getInstance();                  System.out.println(c.get(Calendar.YEAR));                  c.add(Calendar.YEAR, 3);                  System.out.println(c.get(Calendar.YEAR));

                2.2.2、获取指定日历字段的值:

                             public void get(int field)

                            使用示例(获取年份):

                  Calendar c = Calendar.getInstance();                  System.out.println(c.get(Calendar.YEAR));
                2.2.3、将给定的日历字段设置为给定值:

                             public void set(int field, int value)

                            使用示例(设置年份为2017年):

                  Calendar c = Calendar.getInstance();                  c.set(Calendar.YEAR, 2017);                  System.out.println(c.get(Calendar.YEAR));
                2.2.4、设置日历字段 YEARMONTHDAY_OF_MONTH 的值:
                             public void set(int year, int month, int date)

                            使用示例(设置为2017年1月1日):

                  Calendar c = Calendar.getInstance();                  c.set(2017, 0, 1);// 月份从0开始,0表示一月,11表示十二月                  System.out.println(c.get(Calendar.YEAR) + "年");                  System.out.println(c.get(Calendar.MONTH) + 1 + "月");                  System.out.println(c.get(Calendar.DATE) + "日");



第四讲 Math类

一、概述

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


二、方法

        1、取绝对值:

              public static int abs(int a)

              使用示例:

        System.out.println(Math.abs(-1));// 控制台输出1
        2、取大于指定数的最小整数(可以是等于):
              public static double ceil(double a)

              使用示例:

        System.out.println(Math.ceil(2.3));// 返回3.0
        3、取小于指定数的最大整数(可以是等于):
              public static double floor(double a)

              使用示例:

        System.out.println(Math.floor(2.9));// 返回2.0

        4、幂运算,返回第一个参数的第二个参数次幂的值:

              public static double pow(double a, double b)

              使用示例:
        // 幂运算,返回第一个参数的第二个参数次幂的值(次方,如下求2的3次方)        System.out.println(Math.pow(2, 3));

        5、最大值,返回两个数中较大的值:

              public static int max(int a, int b)

              使用示例:
        // 最大值,返回两个数中较大的值        System.out.println(Math.max(2, 3));

        6、最小值,返回两个数种较小的值:

              public static int min(int a, int b)

              使用示例:
        // 最小值,返回两个数种较小的值        System.out.println(Math.min(2, 3));

        7、伪随机数,返回一个大于等于0.0且小于1.0的值:

              public static double random()

              使用示例:
        // 伪随机数,返回一个大于等于0.0且小于1.0的值        System.out.println(Math.random());


三、Random类

1、概述

         Random类是java.util下的一个类,此类对象用于获取一个伪随机数。与Math的random()一样,不过Random类有自身的方法,可以将相应的随机数强制转换为指定的基本类型。

         此类的实例用于生成伪随机数流。此类使用 48 位的种子,使用线性同余公式 (linear congruential form) 对其进行了修改;

         如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数字序列;

         Random 类实现的算法使用一个 protected 实用工具方法,每次调用它最多可提供 32 个伪随机生成的位。

2、常用方法

       public int nextInt(int n)

       使用示例:

        Random random = new Random();        // 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。        System.out.println(random.nextInt(10));// 这句代码随机出来的数范围在0-9        // 随机出1-10的数字        System.out.println(random.nextInt(10) + 1);



0 0
原创粉丝点击