java基础知识整理(12)——常用类(Math,Date)

一、System

1、特点

不能实例化对象,提供的方法都是静态的。

2System类中获取本地系统信息的方法

系统属性信息:程序在运行时获取到Jvm以及所在操作系统的一些固有信息,获取了这些信息,能为后面的程序运行提供了数据。

public static void systemMethodDemo(){

        //获取系统信息并存储到Properties中

        Properties p = System.getProperties();

        //properties是map集合的小弟,可以将其转成set集合获取其中的信息

        Set<String> set = p.stringPropertyNames();

        for (String string : set) {

            System.out.println(string+p.getProperty(string));

        }

        //获取指定名称的系统信息

        System.out.println(p.getProperty("os.name"));

}

获取不同系统中的换行符:-------->将其定义为一个常量!

public class SystemDemo {

    private static final String LINE_SEPARATOR = System.getProperty("line.separator");

    public static void main(String[] args) {

        systemMethodDemo();

    }

    public static void systemMethodDemo(){

        System.out.println("hello"+LINE_SEPARATOR+"world");

    }

}

static long currentTimeMillis():获取当前时间,以毫秒为单位。

         static void exit(int status) :退出当前程序。

         static void gc():调用垃圾回收器。

         static Properties getProperties():获取当前系统属性

         static String getProperty(String key):根据关键字获取系统属性名称

         static String setProperty(String key, String value):设置属性的键和值。

Properties

properties集合中存储都是string类型的键和值,最好使用它自己的存储和取出的方法来完成元素的操作。

常用方法:

         Properties getProperty(String key):返回指定的属性

         Object setProperty(String key,String value):设置属性的键和值

         void load(InputStream inStream) :加载输入流

         Set<String> stringPropertyNames() :返回属性键的集合。

二、Runtime

         没有构造方法摘要,说明该类不可以创建对象,又发现还有非静态的方法,说明该类应该提供静态的返回该类对象的方法,而且只有一个,说明runtime类使用了单例设计模式

1Runtime api查阅时,你看到了什么,想到了什么?

         我看到了exec方法返回的是一个进程,想到了系统中的可执行文件可以通过该方法启动一个程序。

         Runtime r=Runtime.getRuntime();

         r.exec("notepad.exe");//打开记事本程序

   //r.exec("baofengyinying.exe" e:\\dianying\\变形金刚);//使用暴风影音播放变形金刚电影。

三、Math

 

public static void main(String[] args) {

    double d = Math.ceil(12.34);

    System.out.println(d);//13.0

    double d1= Math.floor(12.34);

    System.out.println(d1);//12.0

    double d2 = Math.round(12.34);

    System.out.println(d2);//12.0

    double d3 = Math.round(12.56);

    System.out.println(d3);//13.0

}

1Math中的常见方法使用

提供了操作数学元素的方法,都是静态的

int abs(int a)返回整数的绝对值

int max(int a, int b)返回两个整数的最大值

double random()返回一个随机值(0--1之间)

double sqrt(double a)返回一个数的平方根

double ceil()返回大于参数的最小整数

double floor():返回小于参数的最大整数

double round():返回四舍五入的值。

double pow(a,b):ab次方

四、Date

Date():将当前日期和时间封装成对象

Date(long time):将指定毫秒值封装成Date对象。

1、日期对和毫秒值之间的转换

  1. 毫秒值----->日期对象

           1.通过Date对象的构造方法new DatetimeMilles)

Date d = new Date(122394272384947)

           2.还可以通过setTime方法设置

Date d = new Date( );

d.setTime(122394272384947);

  • 为什么要把毫秒值转成日期对象呢?

         因为你可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作

        

  1. 日期对象----->毫秒值long getTime()方法
  • 为什么要把日期对象转成毫秒值呢?

                  因为可以通过绝缘体的数值进行运算。

2、对日期对象进行格式化

将日期对象----->日期格式的字符串,使用的是DateFormat类中的format方法

获取日期格式对象,具体默认的风格。FULLLONG等可以指定风格

public static void dateFormatDemo(){

    Date d = new Date();

    //使用默认风格

    DateFormat df = DateFormat.getDateInstance();//获取DateFormat对象

    //使用指定风格

    df = DateFormat.getDateInstance(DateFormat.FULL);

    //使用指定风格,包含日期和时间

df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);

    //使用自定义风格

    df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

       

    String str_date = df.format(d);//将日期对象----->日期格式的字符串

    System.out.println(str_date);

}

将日期格式的字符串----->日期对象,使用的是DateFormat类中的parse方法

public static void dateFormatDemo1() throws ParseException{

    //日期字符串

    String str_date = "2012-8-1";

    //定义日期格式化对象

    DateFormat df = DateFormat.getDateInstance();

    Date date = df.parse(str_date);

    System.out.println(date);

}

自定义日期格式,使用SimpleDateFormat构造完成

练习:2012/4/12和2012/6/2相差多少天?

public class DateTest {

    public static void main(String[] args) throws ParseException {

        String str1 = "2012/4/12";

        String str2 = "2012/6/2";

        long day = getDay(str1, str2);

        System.out.println(day);

    }

    public static long getDay(String str1,String str2) throws ParseException{

        DateFormat df = new SimpleDateFormat("yyyy/MM/dd");

        Date d1 = df.parse(str1);

        Date d2 = df.parse(str2);

        long time1 = d1.getTime();

        long time2 = d2.getTime();

        long time = Math.abs(time1-time2)/1000/60/60/24;

        return time;

    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值