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<String> nameSet=prop.stringPropertyNames();
        
        for(String name :nameSet){
            String value=prop.getProperty(name);
            
            System.out.println(name+": :"+value);
        }
    }

运行:
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进程

    }

运行:
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);
    }

运行:
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);   
    }

运行:

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];
    }

运行:

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

运行:
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 221,576评论 6 515
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,515评论 3 399
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 168,017评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,626评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,625评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,255评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,825评论 3 421
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,729评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,271评论 1 320
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,363评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,498评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,183评论 5 350
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,867评论 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,338评论 0 24
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,458评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,906评论 3 376
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,507评论 2 359

推荐阅读更多精彩内容

  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,206评论 1 44
  • 一年有四季 春夏秋冬 春暖花开 百花争艳 夏有烈日 凉风习习 秋有硕果累累 有殇 也有落叶之静美 冬有严寒 白雪飘...
    李在在阅读 559评论 0 0
  • 天很沉,我看不清别人估计你也是我在远方,也在眼前我想你也是我在梦里,梦在你那里我猜你也是你在心上,心在我这里我愿你也是
    度一场是非阅读 355评论 0 1
  • 迟迟不下笔,主要是因为写对亲人的爱其实我特别的害怕,害怕的不是描述而写的过程中泪崩的心情呈现。 虽然不知...
    一一Emily阅读 356评论 0 0