有一些类虽然不像集合、多线程、网络编程中的类那样属于Java中的核心类,但是它们在开发过程中给我们带来很多便利,这里就对它们做下简要的介绍和演示。

一、System类

System类中的构造方法是私有的,System类中的属性和方法都是静态的。

常用方法: long currentTimeMills():返回以毫秒值为单位的当前时间。

System 类包含一些有用的类字段和方法。下面的演示就获取了本地系统的信息,并把它们打印出来。

 1 package www.wsw.otherApi;
 2 import java.util.Properties;
 3 import java.util.Set;
 4
 5 public class SystemTest {
 6     /**
 7      * 跨平台的分隔符,在什么平台上运行,就调用那个平台的换行符
 8      * 另外。可以把系统的常用信息定义成静态字段,方便使用。
 9      */
10     public static String line_speparator=System.getProperty("line.separator");
11
12     public static void main(String[] args) {
13         //常用方法: long currentTimeMills()
14         long  l1=System.currentTimeMillis();//返回以毫秒值为单位的当前时间
15         System.out.println(l1);//1490005710792
16         demo_1();
17     }
18
19     public  static void demo_1() {
20         /**
21          * 获取系统信息的键和值,并存储到Properties集合中
22          * Properties是HashTable的子类,它的键和值都是String类型的
23          * 最好使用Properties自己的方法来完成元素的存储和取出操作
24          */
25         Properties properties=System.getProperties();
26         // Set<String> stringPropertyNames()  返回此属性列表中的键集
27         Set<String> nameSet=properties.stringPropertyNames();
28         for(String name:nameSet){
29             String value=properties.getProperty(name);
30             System.out.println(name+"::"+value);
31         }
32     }
33
34 }

二、 Runtime类

每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。

应用程序不能创建自己的 Runtime 类实例。

有exec方法和destroy方法,参见演示。

 1 package www.wsw.otherApi;
 2 import java.io.IOException;
 3
 4 public class RuntimeDemo {
 5
 6     public static void main(String[] args) throws IOException, InterruptedException {
 7 /**
 8  * Runtime没有构造方法摘要,说明该类不能够创建对象,
 9  * 又该类有非静态方法,则Runtime类有能返回该类实例的静态方法,
10  * 发现这样的方法只有一个,则Runtime类使用了单例设计模式
11  */
12         Runtime r=Runtime.getRuntime();
13         //execute 执行 exe
14         Process p=r.exec("notepad.exe D:\\abc\\MapDemo.java");//打开记事本,并用它解析D盘目录下的一个文件
15         //Process是一个抽象类
16         Thread.sleep(2000);
17         p.destroy();//杀掉子进程
18
19     }
20
21 }

三、Math类

* Math类中都是做数学运算的静态方法
* 常用方法:
* ceil():返回大于等于参数的最小整数
* floor():返回小于等于参数的最大整数
* round():返回参数四舍五入得到的整数
* pow(a,b):返回a的b次方
*
* random():返回[0,1)范围内的伪随机数

 1 package www.wsw.otherApi;
 2
 3 public class MathDemo {
 4
 5     public static void main(String[] args) {
 6
 7         double d1=Math.ceil(-7.67);//-7.0
 8         double d2=Math.floor(-7.67);//-8.0
 9         double d3=Math.round(-7.67);//-8.0
10         sop("d1="+d1);
11         sop("d2="+d2);
12         sop("d3="+d3);
13
14         sop(Math.pow(10,2)+"");//100.0
15
16         //获取10个1-6之间的随机数
17         for (int i = 0; i < 10; i++) {
18             //double d= (int)(Math.random()*6)+1;
19             double d=Math.ceil(Math.random()*6);
20             /**
21              * 也可以写为:
22              * Random r=new Random();//Random位于Java.util包中,把随机数封装成了对象
23              * 提供更多的方法
24              * int d=r.nextInt(6)+1;
25              */
26
27             sop(d+"");
28         }
29
30     }
31 //方便输出
32     public  static void sop(String str) {
33         System.out.println(str);
34     }
35
36 }

四、Date类和DateFormat类

Date类属于java.util包,类 Date 表示特定的瞬间,精确到毫秒。

它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。

从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。

DateFormat 属于java.text包,是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。

 把毫秒值转化为Date对象
* 1.Date的构造方法
* 2.通过setTime方法
* 作用:可以使用Date类中的方法对Date对象的字段(年月日等)进行操作
*
* 把Date对象转化为毫秒值
* 1.getTime方法
* 作用:可以对毫秒值进行运算,算出时间差等
*
* 其他方法
* boolean before(Date when):判断此日期是否在指定日期之前
* boolean after():判断此日期是否在指定日期之后
* boolean equals():判断此日期和指定日期是否相等
* int compareTo():返回正负零

下面的演示中还涉及到两个转化,把日期字符串转为为Date对象和把Date对象转化为按某种格式的日期字符串,

分别使用了DateFormat类中的parse方法和format方法。

 1 package www.wsw.otherApi;
 2
 3 import java.text.DateFormat;
 4 import java.text.ParseException;
 5 import java.text.SimpleDateFormat;
 6 import java.util.Date;
 7
 8 public class DateDemo {
 9
10     public static void main(String[] args) throws ParseException {
11
12         methodDemo_3();
13     }
14     /**
15      * 将日期字符串-->日期对象
16      * @throws ParseException  日期转换异常
17      */
18     public static void methodDemo_3() throws ParseException {
19         String str="2017--03--29";
20         DateFormat dateFormat=new SimpleDateFormat("yyyy--MM--dd");
21         /**
22          * String str="2017年3月1日";
23          * DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);
24          */
25         Date date=dateFormat.parse(str);
26         System.out.println(date);//Wed Mar 29 00:00:00 CST 2017
27
28     }
29     /**
30      * 将日期对象进行格式化
31      * 将日期对象-->日期格式的字符串
32      *   使用的是DateFormat中的format方法
33      */
34     public  static void methodDemo_2() {
35         Date date=new Date();
36         //获取日期格式器对象,并为默认的风格 可以指定Long full风格等
37         DateFormat  dateFormat1=DateFormat.getDateInstance(DateFormat.FULL);
38         //获取日期/时间格式器对象
39         DateFormat  dateFormat2=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
40
41         //如果,想要使用自定义的格式呢?
42         DateFormat dateFormat3=new SimpleDateFormat("MM月~dd日--yyyy年");
43         String str1=dateFormat1.format(date);
44         String str2=dateFormat2.format(date);
45         String str3=dateFormat3.format(date);
46         System.out.println(str1);//2017年3月22日 星期三
47         System.out.println(str2);//2017年3月22日 下午02时14分06秒
48         System.out.println(str3);//03月~22日--2017年
49     }
50
51     public  static void methodDemo_1() {
52         long l=System.currentTimeMillis();
53         Date d=new Date();//把当前时间封装为Date对象
54         Date d2=new Date(1490023019659l);//把毫秒值转化为Date对象
55         System.out.println(d);//Mon Mar 20 23:18:58 CST 2017
56         System.out.println(d2);//Mon Mar 20 23:16:59 CST 2017
57     }
58
59 }

Date类练习

练习:计算“2017年6月1日”和“2017年3月22日”之间相差多少天?
* 思路:
* 1.把日期字符串转化为Date对象
* 2.把Date对象转化为相应的毫秒值,然后相减
* 3.把毫秒值转化为天

 1 package www.wsw.otherApi;
 2
 3 import java.text.DateFormat;
 4 import java.text.ParseException;
 5 import java.util.Date;
 6
 7 public class DateTest {
 8
 9     public static void main(String[] args) throws ParseException {
10         int day=subDate("2017年5月1日","2017年3月22日");
11         System.out.println(day);
12     }
13
14     public  static int subDate(String str1, String str2) throws ParseException {
15         DateFormat dateFormat=DateFormat.getDateInstance(DateFormat.LONG);
16         Date date1=dateFormat.parse(str1);
17         Date date2=dateFormat.parse(str2);
18
19         long time1=date1.getTime();
20         long time2=date2.getTime();
21         long time =time1-time2;
22         int day=getDay(time);
23         return day;
24     }
25 /**
26  * 把毫秒值转化为天数
27  * @param time 毫秒值
28  * @return 天数
29  */
30     public  static int getDay(long time) {
31         int day=(int) (time/1000/60/60/24);
32         return day;
33     }
34
35 }

View Code

五、Calendar类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEARMONTHDAY_OF_MONTHHOUR日历字段之间的转换提供了一些方法,

并为操作日历字段(例如获得下星期的日期)提供了一些方法。

 1 package www.wsw.otherApi;
 2 import java.util.Calendar;
 3
 4 public class CalendarDemo {
 5
 6     public static void main(String[] args) {
 7         Calendar c=Calendar.getInstance();
 8
 9         //使用Calendar类中的方法获取某年的2月有多少天
10         showDays(2016);//2016年2月29日星期一
11     }
12
13     public static void showDays(int year) {
14         Calendar c=Calendar.getInstance();
15         c.set(year, 2, 1);//把日期设置为某年的三月一号
16         c.add(Calendar.DAY_OF_MONTH, -1);//把日期向前偏移一天
17         showDate(c);
18     }
19
20 //获取日历字段,得到符合中国人习惯的日期显示
21     public static void showDate(Calendar c) {
22         int year=c.get(Calendar.YEAR);
23         int month=c.get(Calendar.MONTH)+1;//0代表1月
24         int day=c.get(Calendar.DAY_OF_MONTH);
25         int week=c.get(Calendar.DAY_OF_WEEK);//1代表星期天,7代表星期六
26
27         System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));//2017年3月22日星期三
28     }
29
30     public  static String getWeek(int week) {
31         String[] weeks={"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
32         return weeks[week];
33     }
34
35 }

转载于:https://www.cnblogs.com/wsw-tcsygrwfqd/p/6600547.html

Java其他API介绍相关推荐

  1. java hadoop api_Hadoop 系列HDFS的Java API( Java API介绍)

    HDFS的Java API Java API介绍 将详细介绍HDFS Java API,一下节再演示更多应用. Java API 官网 如上图所示,Java API页面分为了三部分,左上角是包(Pac ...

  2. ZooKeeper :Java客户端Watcher API介绍

    ZooKeeper :Java客户端Watcher API介绍 在上一篇博客中,博主给大家介绍了Java客户端的Session.ACL以及Znode API: ZooKeeper :Java客户端Se ...

  3. 【读码JDK】- java.lang.Double类Api介绍及测试

    [读码JDK]java.lang包目录 请自行调整包路径,中文仅供参考. java.lang.Double类Api介绍及测试 package lang;import org.junit.Test;/* ...

  4. 我也没想到,Java开发 API接口可以不用写 Controller了

    大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便分享一点工作中使用它的心得 缘起 先说一下我为什么会使用这个工具? 最近新启动一个项目,业务并不算复杂,那种典型的管理 ...

  5. Servlet基础(一) Servlet基础和关键的API介绍

    转载:http://www.cnblogs.com/mengdd/p/3202550.html Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解 Servlet基础(一) S ...

  6. 关于 Java Collections API 您不知道的 5 件事--转

    第 1 部分 http://www.ibm.com/developerworks/cn/java/j-5things2.html 对于很多 Java 开发人员来说,Java Collections A ...

  7. 学习笔记Hadoop(十四)—— MapReduce开发入门(2)—— MapReduce API介绍、MapReduce实例

    四.MapReduce API介绍 一般MapReduce都是由Mapper, Reducer 及main 函数组成. Mapper程序一般完成键值对映射操作; Reducer 程序一般完成键值对聚合 ...

  8. JAVA EXCEL API详解

    2019独角兽企业重金招聘Python工程师标准>>> 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易 ...

  9. java nio详解,Java NIO API详解

    Java NIO API详解 在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API.对于大多数应用来说,这样的API使用很方 便,然而,一些对 ...

最新文章

  1. syskey——让你的电脑更加安全
  2. 让我们努力从“不可救药的乐观主义者”--华尔街知名投资人约翰。多尔那里学点东西(永远放弃尝试改变这个世界)...
  3. 浙大团队研发铜基沸石纱布口罩,1分钟杀灭新冠病毒逾99%
  4. 什么是分布式事务以及有哪些解决方案?
  5. Uncaught SyntaxError: missing ) after argument list 错误解决
  6. Leecode刷题热题HOT100(1)——两数之和
  7. ubuntu升级11.10登录桌面
  8. ubuntu面板的图标混乱
  9. centos 6.5 编译php mysql5.6_CentOS6.5 编译安装PHP5.6(apache模块)
  10. FlinkSQL快速入门
  11. 宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统
  12. 王德明——全球旅行达人,走遍世界阅尽繁华,为何他独爱于此?
  13. 2 月全国程序员工资统计 + 大厂新入职员工职级对应表
  14. 佳能2900打印机与win10不兼容_windows10系统64位如何安装佳能LBP2900驱动?
  15. 书中自有黄金屋系列4:读《一课经济学》
  16. 电脑桌面点什么都是计算机,电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...
  17. (2)Django---用命令创建项目
  18. 云南百度笔记排名比较靠前的有哪几家?云南最好的笔记公司是哪家?
  19. 质数、互质及算法分析
  20. 华秋DFM新功能全网上线,助力PCBA可焊性分析

热门文章

  1. REST,Web 服务,REST-ful 服务
  2. 图像平滑处理(归一化块滤波、高斯滤波、中值滤波、双边滤波)
  3. JS给html控件赋值
  4. 在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++开发,如何取出当前执行文件的路径和调用模块的路径...
  5. django Error: [Errno 10013]
  6. 无法初始化链接服务器 (null) 的 OLE DB 访问接口 Microsoft.Jet.OLEDB.4.0 的数据源对象...
  7. 谦卑的心 2008-9-27 10:21:00 (21ic)
  8. 图像聚类与检索的简单实现(一)
  9. 专访Connolly:为什么我们需要手动回归测试宣言?
  10. 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试