java笔记--其他api

System:

System类中的方法都是静态的。
常见方法:
long crrentTimeMillis():获取当前时间的毫秒值。
setProperty:给系统设置一些属性信息。这些信息是全局的,其他程序都可以使用。
getProperty:获取系统的属性信息。

    public static void main(String[] args) {
        
        final String LINE_SEPARATOR=System.getProperty("line.separator");
        
            /*
            System:类中的方法和属性都是静态的。
            
            常见方法:
            long currentTimeMillis();获取当前时间的毫秒值
            */
        /*
        long l1=153974181;//System.currentTimeMillis();
        System.out.println(l1/10000/60/60/24);
        long l2=System.currentTimeMillis();
        System.out.println(l2-l1);
        */
        
        System.out.println("hello-"+LINE_SEPARATOR+"world");//line.separator:系统提供的用于换行的方法,适用于各种平台
        
        demo_1();
        
//      给系统设置一些属性信息。这些信息是全局的,其他程序都可以使用。
//      System.setProperty("myclasspath", "c:\myclass");
    }

    private static void demo_1() {
        // 获取系统的属性信息,并存储到了Properties集合中。
        /*
        properties集合中存储的都是String类型的键和值。
        最好使用它自己的存储和取出的方法来完成元素的操作
        */
        Properties prop=System.getProperties();
        
        Set nameSet=prop.stringPropertyNames();
        
        for(String name :nameSet){
            String value=prop.getProperty(name);
            
            System.out.println(name+": :"+value);
        }
    }

运行:
java笔记--其他api_第1张图片
Runtime:

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

public static void main(String[] args) throws IOException, InterruptedException {
        
        /*
        Runtime:没有构造方法摘要,说明该类不可以创建对象。
        又发现还有非静态的方法。说明该类应该提供静态的返回该类对象的方法。
        而且只有一个,说明Runtime类使用了单例设计模式。
        */
        
        Runtime r=Runtime.getRuntime();
        
//      execute:执行。xx.exe
        
        Process p=r.exec("notepad.exe");//打开notepad.exe进程,主要用于执行外部的程序或命令。
        Thread.sleep(5000);
        p.destroy();//在任务管理器中销毁notepad.exe进程

    }

运行:
java笔记--其他api_第2张图片
Math:

提供了操作数学运算的方法,都是静态的。
常用的方法:
ceil():返回大于参数的最小整数。
floor():返回小于参数的最大整数。
round():返回四舍五入的整数。
pow():a的b次方。
random():随机数,也可用Random封装类。

public static void main(String[] args) {
        
        /*
        Math:提供了操作数学运算的方法。都是静态的。
        
        常用的方法:
        ceil():返回大于参数的最小整数。
        floor():返回小于参数的最大整数。
        round():返回四舍五入的整数。
        pow(a,b):a的b次方。
        */
        double d1=Math.ceil(12.56);
        double d2=Math.floor(12.56);
        double d3=Math.round(12.56);
        
//      sop("d1="+d1);
//      sop("d2="+d2);
//      sop("d3="+d3);
        
//      double d=Math.pow(10, 2);
//      sop("d="+d);
        
        Random r=new Random();//Random封装类
        for(int i=0;i<10;i++){
            
//          double d = Math.ceil(Math.random()*10);//Math提供的random方法
//          double d = (int)(Math.random()*6+1);
//          double d = (int)(r.nextDouble()*6+1);
            int d=r.nextInt(6)+1;
            System.out.println(d);
        }
    }

    private static void sop(String string) {
        System.out.println(string);
    }

运行:
java笔记--其他api_第3张图片
Date:

日期对象和毫秒值之间的转换。
毫秒值-->日期对象:
1,通过Date对象的构造方法 new Date(timeMillis);
2,还可以通过setTime设置。因为还可以通过Date对象的方法对改日期中的各个字段(年月日等)进行操作。

日期对象-->毫秒值:
3,getTime方法。因为可以通过具体的数值进行计算。

private static void methodDemo_1() {
        long time=System.currentTimeMillis();
        System.out.println(time);//1539785990166
        
        Date date=new Date();//将当前日期和时间封装成Date对象。
        System.out.println(date);
        
        Date date2=new Date(time);
        System.out.println(date2);
    }

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

private static void methodDemo_2() {
        
        Date date=new Date();
        
        //获取日期格式对象。具备着默认的风格。FULL LONG等可以指定风格。
        DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);
        dateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
        System.out.println(dateFormat);
        
//      自定义风格
        dateFormat=new SimpleDateFormat("yyyy--MM--dd");
        
        String str_date=dateFormat.format(date);
        System.out.println(str_date);   
    }

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

private static void methodDemo_3() throws ParseException {
        
        String str_date="2012年4月19日";
        str_date="2011---8---17";
        
        DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);
        
        dateFormat=new SimpleDateFormat("yyyy---MM--dd");
        
        Date date=dateFormat.parse(str_date);
        System.out.println(date);   
    }

运行:
java笔记--其他api_第4张图片

CalendarDemo:

public static void main(String[] args) {
        
        Calendar c=Calendar.getInstance();
        
        int year =2012;
        showDays(year);

    }

    private static void showDays(int year) {
        
        Calendar c=Calendar.getInstance();
        c.set(year,2,1);
        
        c.add(Calendar.DAY_OF_MONTH, 2);
        
        showDate(c);
        
    }

    private static void showDate(Calendar c) {
        
        int year=c.get(Calendar.YEAR);
        int month=c.get(Calendar.MONTH);
        int day=c.get(Calendar.DAY_OF_MONTH);
        int week=c.get(Calendar.DAY_OF_WEEK);
        
        System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
        
    }

    private static String getWeek(int i) {
        String[] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        
        return weeks[i];
    }

运行:
java笔记--其他api_第5张图片

DateTest:
练习:
“2012-3-17”到“2012-4-6”
中间有多少天?
思路:
两个日期相减就可以了。
怎么减呢?
必须要有两个可以进行减法运算的数。
能减可以是毫秒数。如何获取毫秒值?通过date对象。
如何获取date对象呢?可以将字符串转成date对象。

1.将日期格式的字符串转成date对象。
2.将date对象转成毫秒值。
3.相减,则变成天数。

public static void main(String[] args) throws ParseException {
        
        String str_date1="2013-3-17";
        String str_date2="2012-4-18";
        test(str_date1,str_date2);

    }

    private static void test(String str_date1, String str_date2) throws ParseException {
        
        // 1.将日期字符串转成日期对象
        //定义日期格式对象。
        DateFormat dateFormat=DateFormat.getDateInstance();//直接类就可以调用静态方法
        //通过getDateInstanse返回的对象是继承了DateFormat抽象类的一个对象,所以该对象也有format方法,这是一种多态的形式
        dateFormat=new SimpleDateFormat("yyy-MM-dd");
        
        Date date1=dateFormat.parse(str_date1);
        Date date2=dateFormat.parse(str_date2);
        
        long time1=date1.getTime();
        long time2=date2.getTime();
        
        long time=Math.abs(time1-time2);//取绝对值
        
        int day=getDay(time);
        System.out.println(day);
    }

    private static int getDay(long time) {
        
        int day = (int)(time/1000/60/60/24);
        
        return day;
    }

运行:

你可能感兴趣的:(java笔记--其他api)