• 黑马程序员_day21_其他api


    一、System:

    不可以被实例化。没有构造函数。

    该类中的方法都是静态的。

    常见方法:

    exit()currentTimeMillis()获取当前毫秒值;gc(); getProperties();

    long time = System.currentTimeMillis();

    System.out.println("hello:"+time);

    systemMethodDemo2();

    }

    演示一下getProperties方法

    是用来获取系统属性集的。

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

    public static void systemMethodDemo(){

    //将系统中的属性信息获取到存储到了Properties集合中。 

    Properties prop = System.getProperties();

    //想要获取该集合中的信息。

    可以使用该集合中的stringPropertyNames():先将其转成成set集合。而且这个方法已经指定了具体的类型。 

    Set<String> nameSet = prop.stringPropertyNames();

    for(String name : nameSet){

    String value = prop.getProperty(name);

    System.out.println(name+"::"+value);

    }

    }

     获取系统中的指定属性信息。

    public static void systemMethodDemo2(){

    Properties prop = System.getProperties();

    String value = prop.getProperty("os.name");

    System.out.println(value);

    }

    }

    System类的小应用。

    System.getProperty("line.separator"):获取不同系统平台中的换行符。 

    public class SystemTest {

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

    public static void main(String[] args) {

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

    }

    }

    二、 Runtime:代表应用程序运行时对象。该对象不需要创建,直接通过getRuntime获取即可,因为该Runtime类是可以将应用程序和运行环境想结合的类。 

    该类没有构造函数。可是我们发现,该类中居然有特有的非静态方法。 

    说明它不让其他程序创建该类对象,肯定会给我们提供一个方法获取它的对象。

    而且这个方法肯定是静态的。 返回值类型一定Runtime

    这个方法就是getRuntime

    注意:该类就是用单例设计模式完成的。

    public class RuntimeDemo {

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

    Runtime r = Runtime.getRuntime();

    Process p = r.exec("notepad.exe c:\\OtherApi.txt");

    Thread.sleep(4000);

    p.destroy();

    }

    }

    三、Math

     Math:方法都是静态的。

    大于参数的最小整数。

    double d1  = Math.ceil(12.34);   //13

    System.out.println("d1="+d1);

    小于参数的最大整数。

    double d2 = Math.floor(12.34);//12

    System.out.println("d2="+d2);

    四舍五入。

    double d3 = Math.round(12.54);

    System.out.println("d3="+d3);

    103次方

    double d4 = Math.pow(10,3);

    产生随机数的两种方式

    1、通过math类的random()

    for(int x=0; x<10; x++){

    //double d = Math.ceil(Math.random()*10);

    //double d = Math.floor(Math.random()*10+1);

    int d = (int)(Math.random()*10+1);

    System.out.println(d);

    }

    2、通过使用随机数对象:Random类的nextInt()方法

    Random r = new Random();

    for(int x=0; x<10; x++){

    int num = r.nextInt(10)+1;

    System.out.println("num="+num);

    }

    }

    四、Date类。

    Date:日期类。 

    //获取当前日期时间对象

    直接new Date即可。

    Date d = new Date();

    System.out.println(d);

    //日期对象和毫秒值之间的转换。 

    日期对象之间要进行基本运算,需要转成具体的毫秒数值才可以。

    将日期对象转成毫秒值。使用的是Date对象中的getTime();

    Date d = new Date();

    long time = d.getTime();

    System.out.println(time);

    将毫秒值转成日期对象。 

    //通过Date 构造函数完成。

    //通过Date类的set8Time方法设置一个指定的毫秒值。 

    Date d2 = new Date(1343807461796l);          或者:

    Date d3 = new Date();

    d3.setTime(1343807461796l);

    }

    }

    五、DateFormat

    1,获取DateFormat对象。通过查阅api说明,可以通过该类的静态方法getDateInstance();该方法返回的是日期默认的格式化对象。

    Date d = new Date();

    //默认风格。就是MEDIUM

    DateFormat dateFormat = DateFormat.getDateInstance();

    //使用指定风格。 

    dateFormat = DateFormat.getDateInstance(DateFormat.LONG);

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

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

    System.out.println(dateFormat);

    2、想要将该日期或者时间换成自定义风格。如:xxxx#mm#  2012/8/1

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

    String str_date = dateFormat.format(d);

    System.out.println(str_date);

    }

    }

    六、字符串转成日期对象

    日期字符串转成日期对象。

    为了获取其中的日期或者时间字段方便。

    解析使用的是DateFormat类中的parse方法。

     public static void dateFormatDemo2() throws ParseException{

    //日期字符串。

    String str_date = "2011/5/16";注意:该日期格式并不是默认的那四种之一LONGSHORTMEDIUMFULL。若是它们的话就可用

    DateFormat dateFormat = DateFormat.getDateInstance();来获取日期的格式化对象。

    //定义一个日期格式化对象。要解析一个具体格式的日期字符串,必须要让该日期格式对象具备解析该格式的能力

    dateFormat = new SimpleDateFormat("yyyy/MM/dd");

    Date date = dateFormat.parse(str_date);

    System.out.println(date);

    }

    七、DateFormat练习

    "2012/4/12""2012/6/2"相差多少天?

    思路:

    字符串-->日期对象-->毫秒值。 

    String str_date1 = "2012/4/12";

    String str_date2 = "2012/6/3";

    //1,将日期格式的字符串转成日期对象。

    //使用Dateformat对象中的parse方法。而且还将这个自定义的格式封装成DateFormat对象。

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

    //2,对日期字符串进行解析。

    Date date_1 = dateFormat.parse(str_date1);

    Date date_2 = dateFormat.parse(str_date2);

    //3,将日期对象转成毫秒值。

    long time_1 = date_1.getTime();

    long time_2 = date_2.getTime();

    //4,相减。

    long time = Math.abs(time_1 - time_2);

    System.out.println(time/1000/60/60/24);由毫秒换算成天

    }

    }

    八、Calendar

    JDK1.1之前,Date类中的一些方法的API不易于实现国际化。从JDK1.1之后,应该使用Calendar类实现日期和时间字段之间的转换。

    使用DateFormat类来格式化和解析日期字符串。Date中的相应方法已废弃。

    Calendar类是一个抽象类。提供了 一个类方法getInstance()来获得此类型的一个通用对象。

    public static void show(Calendar c) {

    int year = c.get(Calendar.YEAR);

    int month = c.get(Calendar.MONTH) + 1;0来表示1月。

    所以1月还原成数值时要加一。

    int day = c.get(Calendar.DAY_OF_MONTH);

    String week = getWeek(c.get(Calendar.DAY_OF_WEEK));

    通过查表法定义getWeek方法

    System.out.println(year + "" + month + "" + day + "" + week);

    }

    public static String getWeek(int week) {

    if (week > 7 || week < 1)

    throw new NoWeekException("没有这个星期");

    String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };美国人把星期日当作一星期的第一天。

    return weeks[week];

    }

    Calendar c = Calendar.getInstance();

    // 对这个日历对象进行指定日期的设定。

    // c.set(2011, 10, 4);

    // 日历可以在指定的日期上偏移。

    c.add(Calendar.DAY_OF_MONTH, -1);

    // 练习获取任意一年的二月份有多少天。

    public static Calendar getDays(int year){

    Calendar c = Calendar.getInstance();

    c.set(year,2,1);实际是某年的三月初一

    c.add(Calendar.DAY_OF_MONTH,-1);对天数减少一天,就变成了某年的二月的最后的那天

    return c;

    show(c);

    }

  • 相关阅读:
    wordwrap:breakword与wordbreak:breakall的区别所在
    python的dir()和help()
    我理解的正则表达式
    使用 OpenPyXL 批量取消「合并单元格」并自动填充值
    清除 Python 项目生成的 __pycache__ 或 pyc 缓存文件
    ElementUI + VUE学习之rules详解
    常用css样式
    tsnode报错
    自定义一个多选框样式
    eldatepicker在type为daterange时限定,日期的结束时间必须大于起始时间
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3002683.html
Copyright © 2020-2023  润新知