博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java常用类库
阅读量:7033 次
发布时间:2019-06-28

本文共 7129 字,大约阅读时间需要 23 分钟。

   System

   System:类中的方法和属性都是静态的。

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

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

   System描述系统一些信息。获取系统属性信息:Properties getProperties()。

   示例代码如下:

import java.util.Properties;public class SystemDemo {    public static void main(String[] args) {        Properties prop = System.getProperties();                //因为Properties是HashTable的子类,也就是Map集合的一个子类对象。        //那么可以通过map的方法取出该集合的元素。        //该集合中存储的都是字符串,没有泛型定义。                //如何在系统中自定义一些特有信息呢?        System.setProperty("mykey", "myvalue");                //获取指定属性信息        String value = System.getProperty("os.name");        System.out.println("value = " + value);                //可不可以在JVM启动时,动态加载一些属性信息呢?        String v = System.getProperty("haha");        System.out.println("v = " + v);//null                /*        获取所有属性信息。        for(Object obj : prop.keySet()) {            String value = (String)prop.get(obj);            System.out.println(obj + "::" + value);        }        */    }}

   在启动JVM时,如何动态加载一些属性信息?(图示说明)

   

  

   

   Runtime

   该类并没有提供构造函数。说明不可以new对象,那么会直接想到该类中的方法都是静态的。发现该类中还有非静态方法。说明该类肯定会提供方法获取本类对象,而且该方法是静态的,返回值类型是本类类型。

   由这个特点可以看出该类使用了单例设计模式。

   该方法是static Runtime getRuntime() 。

   代码如下:

import java.io.IOException;public class RuntimeDemo {    public static void main(String[] args) {        Runtime r = Runtime.getRuntime();        Process p =null;        try {            //p = r.exec("D:\\BaiduYunGuanjia\\BaiduYunGuanjia.exe");//传的命令的路径可能是错误的。            p = r.exec("notepad.exe SystemDemo.java");        } catch (IOException e) {            e.printStackTrace();        }        /*        try {            Thread.sleep(4000);        } catch (InterruptedException e) {            e.printStackTrace();        }        p.destroy();//杀掉进程        */    }}

 

   Date

   示例代码:

import java.text.SimpleDateFormat;import java.util.Date;public class DateDemo {    public static void main(String[] args) {        Date d = new Date();        System.out.println(d);//打印的时间看不懂,希望有些格式。                //将模式封装到SimpleDateFormat对象中        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E");        //调用format()方法让模式格式化指定Date对象        String time = sdf.format(d);        System.out.println("time = " + time);    }}

 

   Calendar

   示例代码:

import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class CalendarDemo {    public static void main(String[] args) {                Calendar c = Calendar.getInstance();                String[] months = {"一月", "二月", "三月", "四月",                           "五月", "六月", "七月", "八月",                           "九月", "十月", "十一月", "十二月"};                String[] weeks = {"", "星期日", "星期一", "星期二", "星期三",                          "星期四", "星期五", "星期六"};                int index = c.get(Calendar.MONTH);        int index1 = c.get(Calendar.DAY_OF_WEEK);                        sop(c.get(Calendar.YEAR) + "年");        //sop((c.get(Calendar.MONTH) + 1) + "月");         sop(months[index]);        sop(c.get(Calendar.DAY_OF_MONTH) + "日");         //sop("星期" + c.get(Calendar.DAY_OF_WEEK));        sop(weeks[index1]);                        /*        Date d = new Date();                SimpleDateFormat sdf = new SimpleDateFormat("yyyy");        String year = sdf.format(d);                        System.out.println(year);        */    }        public static void sop(Object obj) {        System.out.println(obj);    }}

   注意:

  1、add()方法——根据日历的规则,为给定的日历字段添加或减去指定的时间量。

public abstract void add(int field, int amount)

  2、set()方法——设置日历字段 YEARMONTHDAY_OF_MONTH 的值。保留其他日历字段以前的值。

public final void set(int year, int month, int date)

   示例代码如下:

import java.util.Calendar;public class CalendarDemo1 {    public static void main(String[] args) {        Calendar c = Calendar.getInstance();        //c.set(2012, 2, 23);                c.add(Calendar.DAY_OF_MONTH, -18);                printCalendar(c);    }    public static void printCalendar(Calendar c) {        String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" };        String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };        int index = c.get(Calendar.MONTH);        int index1 = c.get(Calendar.DAY_OF_WEEK);        sop(c.get(Calendar.YEAR) + "年");        sop(months[index]);        sop(c.get(Calendar.DAY_OF_MONTH) + "日");        sop(weeks[index1]);    }    public static void sop(Object obj) {        System.out.println(obj);    }}

   练习1、获取任意年的二月有多少天。

   分析:

  1. 根据指定年设置一个时间就是c.set(year, 2, 1);//某一年的3月1日。
  2. c.add(Calendar.DAY_OF_MONTH, -1);//3月1日,往前推一天,就是2月最后一天。

   代码:

import java.util.Calendar;public class CalendarTest {    public static void main(String[] args) {        System.out.println("二月有" + getDays(2016) + "天");    }        public static int getDays(int year) {        Calendar c = Calendar.getInstance();        c.set(year, 2, 1);        c.add(Calendar.DAY_OF_MONTH, -1);        return c.get(Calendar.DAY_OF_MONTH);    }}

   练习2、获取昨天的现在这个时刻。

   代码:

import java.util.Calendar;public class CalendarTest1 {    public static void main(String[] args) {        System.out.println(getYesterdayTime());    }    public static String printCalendar(Calendar c) {        String[] months = { "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" };        String[] weeks = { "", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };        int index = c.get(Calendar.MONTH);        int index1 = c.get(Calendar.DAY_OF_WEEK);                StringBuilder sb = new StringBuilder();        sb.append(c.get(Calendar.YEAR)).append("年");        sb.append(months[index]);        sb.append(c.get(Calendar.DAY_OF_MONTH)).append("日");        sb.append(weeks[index1]).append("  ");        sb.append(c.get(Calendar.HOUR)).append("时");        sb.append(c.get(Calendar.MINUTE)).append("分");        sb.append(c.get(Calendar.SECOND)).append("秒");        sb.append(c.get(Calendar.MILLISECOND)).append("毫秒");                return sb.toString();    }        public static String getYesterdayTime() {        Calendar c = Calendar.getInstance();        c.add(Calendar.DAY_OF_MONTH, -1);        return printCalendar(c);    }     }

 

   Math

   示例代码如下:

import java.util.Random;public class MathDemo {    public static void main(String[] args) {        Random r = new Random();                //生产1~10的伪随机数        for(int x = 0; x < 10; x++) {            //int d = (int)(Math.random() * 10) + 1;            int d = r.nextInt(10) + 1;            sop(d);        }    }        public static void show() {        double d = Math.ceil(-16.34);//返回大于指定数据的最小整数        double d1 = Math.floor(12.34);//返回小于指定数据的最大整数                long l = Math.round(12.54);//四舍五入                sop("d = " + d);        sop("d1 = " + d1);        sop("l = " + l);                double d2 = Math.pow(2, 3);        sop("d2 = " + d2);    }        public static void sop(Object obj) {        System.out.println(obj);    }}

   练习、给定一个小数,保留该小数的后两位。

   代码:

import java.text.DecimalFormat;public class MathTest {    public static void main(String[] args) {        System.out.println(getNumber(0.9));    }        public static String getNumber(double num) {        DecimalFormat df = new DecimalFormat("#0.00");//模式不能写成"#.00"        return df.format(num);    }}

 

转载于:https://www.cnblogs.com/yerenyuan/p/5263788.html

你可能感兴趣的文章
数据结构---图的相关总结
查看>>
Linux平台上部署Mongoose服务器的方法介绍
查看>>
Node中间层实践(二)——搭建项目框架
查看>>
erget源码分析(2):全局哈希基类和全局异步函数对象接口
查看>>
解码方法
查看>>
Electron入门介绍
查看>>
从egg.js重新认识node后端开发
查看>>
聊聊springboot session timeout参数设置
查看>>
微信小程序调研
查看>>
window下git多账户管理
查看>>
【327天】我爱刷题系列086(2017.12.29)
查看>>
React.js 小书 Lesson15 - 实战分析:评论功能(二)
查看>>
如何使用JSON和GSON
查看>>
weex脚手架
查看>>
js正则表达式学习
查看>>
C++ 开发 PHP 7 扩展之定义常量
查看>>
windows 命令行禁用密码策略,创建用户
查看>>
游戏小学生01-egret环境搭建
查看>>
从零开始写爬虫
查看>>
微信小程序,个人开发者创业新平台
查看>>