黑马程序员——Java语言基础:其他对象(System、Runtime、Date、Calendar、Math)

本文详细介绍了Java中的几个核心类,包括System类、Runtime类、Date类、Calendar类和Math类的功能与使用方法。通过示例代码展示了如何操作这些类来获取系统属性、执行外部程序、格式化日期和进行数学运算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

其他对象

一、System类

1. 概述

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

(2)字段摘要

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

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

2. 方法

(1)获取系统的属性信息:PropertiesgetProperties();

※ 此方法返回的双列集合,即键值对;因为Properties是Hahstable的子类,也就是Map集合的一个子类对象

    那么通过Map方法取出该集合中的元素。

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

(2)获取指定属性信息:String getProperty(Stringkey);

(3)在系统内定义特有信息:String setProperty(Stringkey,String value);

(4)在jvm启动时,加载一些属性信息:通过命令:java -D<name>=<value>可以设置特有的系统属性信息

例:

import java.util.*;  
class SystemDemo   
{  
    public static void main(String[] args)   
    {  
        Properties p=System.getProperties();//获取当前的系统属性  
        sop(p);  
  
        String value=System.getProperty("os.name");//获取指定键指示的系统属性  
        sop("os.name="+value);  
  
        System.setProperty("wode","My_PC");//设置指定键指示的系统属性信息  
        sop(p);  
          
        String s= System.getProperty("woshi");//当系统中没有该键值,返回null  
        sop(s);  
  
    }  
    public static void sop(Object obj)  
    {  
        System.out.println(obj);  
    }  
} 

二、Runtime类

1. 概述

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

(2)该类中并没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的。

查阅API文档发现,该类中还有非静态方法,说明该类肯定会提供了方法获取本来对象。

而且该方法是静态的,并返回值类型是本来类型。

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

2. 方法

(1)获取本类对象:static RuntimegetRuntime();

(2)在单独的进程中执行指定字符串命令:Processexec(String command);

(3)在Process中有一个杀掉子进程的方法,可将exec方法开启的进程结束:void destroy();

例:


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

三、时间类
1. Date类

(1)概述

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

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

(2)自定义格式

默认的格式不一定满足每个人的需求,那么就需要自定义格式化模式。

因为Date类中的大部分方法已过时,所以只能找其子类来实现。

子类DateFormat中有format方法可以实现,但是DateFormat是抽象类,不能实例化。

但其下有个SimpleDateFormat子类,可以定义时间模式。

※ 具体步骤:

a. 创建Date对象

b. 将时间模式封装到SimpleDateFormat对象中

c. 调用format方法让格式化模式指定Date对象

例:
import java.util.*;  
import java.text.*;  
class DateDemo   
{  
    public static void main(String[] args)   
    {  
        Date d=new Date();//创建Date对象  
        //sop(d);  
  
        ////将模式封装到SimpleDateformat对象中。  
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日E HH:mm:ss");  
        //调用format方法让模式格式化指定Date对象。  
        String time=sdf.format(d);  
        sop(time);  
    }  
  
    public static void sop(Object ojb)  
    {  
        System.out.println(ojb);  
    }  
}  
2. Calendar类

(1)概述:

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

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

(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

※ 设置时间:

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);

例:

import java.util.*;  
class  CalendarDemo  
{  
    public static void main(String[] args)   
    {  
        Calendar c=Calendar.getInstance();  
          
        sop(pattern(c));//显示今天日期和当前时间  
          
        c.add(Calendar.YEAR,5);//年份变为5年后  
  
        sop(pattern(c));//显示指定日期和时间  
  
    }  
  
    //获取指定日期和时间  
    public static String pattern(Calendar c)  
    {  
        String s=year(c)+month(c)+day(c)+week(c)+" "+time(c);  
        return s;  
    }  
      
    //获取年份  
    public static int year(Calendar c)  
    {  
        return c.get(Calendar.YEAR);  
    }  
    //获取月份  
    public static String month(Calendar c)  
    {  
        String[] yue={"一月","二月","三月","四月",  
                      "五月","六月","七月","八月",  
                      "九月","十月","十一月","十二月"};  
        return yue[c.get(Calendar.MONTH)];  
    }  
    //获取日期  
    public static int day(Calendar c)  
    {  
        return c.get(Calendar.DAY_OF_MONTH);  
    }  
    //获取星期  
    public static String week(Calendar c)  
    {  
        String[] day={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
        return day[c.get(Calendar.DAY_OF_WEEK)];  
    }  
    //获取时间,格式为时:分:秒  
    public static String time(Calendar c)  
    {  
        String s=c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);  
        return s;  
    }  
  
    //打印输出  
    public static void sop(Object obj)  
    {  
        System.out.println(obj);  
    }  
}  

四、Math类

1.概述:为三角函数、对数函数和其他通用数学函数提供常数和静态方法

2.常见方法:

(1)Math.ceil():返回大于指定数据的最小整数

(2)Math.floor():返回小于指定数据的最大整数

(3)Math.round():四舍五入

(4)Math.pow(x,y):x的y次方

(5)Math.radom():返回一个大于等于0.0且小于1.0的随机数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值