Java其他API介绍
有一些类虽然不像集合、多线程、网络编程中的类那样属于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
类是一个抽象类,它为特定瞬间与一组诸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日历字段
之间的转换提供了一些方法,
并为操作日历字段(例如获得下星期的日期)提供了一些方法。
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介绍相关推荐
- java hadoop api_Hadoop 系列HDFS的Java API( Java API介绍)
HDFS的Java API Java API介绍 将详细介绍HDFS Java API,一下节再演示更多应用. Java API 官网 如上图所示,Java API页面分为了三部分,左上角是包(Pac ...
- ZooKeeper :Java客户端Watcher API介绍
ZooKeeper :Java客户端Watcher API介绍 在上一篇博客中,博主给大家介绍了Java客户端的Session.ACL以及Znode API: ZooKeeper :Java客户端Se ...
- 【读码JDK】- java.lang.Double类Api介绍及测试
[读码JDK]java.lang包目录 请自行调整包路径,中文仅供参考. java.lang.Double类Api介绍及测试 package lang;import org.junit.Test;/* ...
- 我也没想到,Java开发 API接口可以不用写 Controller了
大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便分享一点工作中使用它的心得 缘起 先说一下我为什么会使用这个工具? 最近新启动一个项目,业务并不算复杂,那种典型的管理 ...
- Servlet基础(一) Servlet基础和关键的API介绍
转载:http://www.cnblogs.com/mengdd/p/3202550.html Servlet基础(一) Servlet简介 关键API介绍及结合源码讲解 Servlet基础(一) S ...
- 关于 Java Collections API 您不知道的 5 件事--转
第 1 部分 http://www.ibm.com/developerworks/cn/java/j-5things2.html 对于很多 Java 开发人员来说,Java Collections A ...
- 学习笔记Hadoop(十四)—— MapReduce开发入门(2)—— MapReduce API介绍、MapReduce实例
四.MapReduce API介绍 一般MapReduce都是由Mapper, Reducer 及main 函数组成. Mapper程序一般完成键值对映射操作; Reducer 程序一般完成键值对聚合 ...
- JAVA EXCEL API详解
2019独角兽企业重金招聘Python工程师标准>>> 使用Windows操作系统的朋友对Excel(电子表格)一定不会陌生,但是要使用Java语言来操纵Excel文件并不是一件容易 ...
- java nio详解,Java NIO API详解
Java NIO API详解 在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API.对于大多数应用来说,这样的API使用很方 便,然而,一些对 ...
最新文章
- syskey——让你的电脑更加安全
- 让我们努力从“不可救药的乐观主义者”--华尔街知名投资人约翰。多尔那里学点东西(永远放弃尝试改变这个世界)...
- 浙大团队研发铜基沸石纱布口罩,1分钟杀灭新冠病毒逾99%
- 什么是分布式事务以及有哪些解决方案?
- Uncaught SyntaxError: missing ) after argument list 错误解决
- Leecode刷题热题HOT100(1)——两数之和
- ubuntu升级11.10登录桌面
- ubuntu面板的图标混乱
- centos 6.5 编译php mysql5.6_CentOS6.5 编译安装PHP5.6(apache模块)
- FlinkSQL快速入门
- 宽度学习(一):宽度学习体系:有效和高效的无需深度架构的增量学习系统
- 王德明——全球旅行达人,走遍世界阅尽繁华,为何他独爱于此?
- 2 月全国程序员工资统计 + 大厂新入职员工职级对应表
- 佳能2900打印机与win10不兼容_windows10系统64位如何安装佳能LBP2900驱动?
- 书中自有黄金屋系列4:读《一课经济学》
- 电脑桌面点什么都是计算机,电脑桌面总是弹出广告怎么办?教你2种方法,轻松解决...
- (2)Django---用命令创建项目
- 云南百度笔记排名比较靠前的有哪几家?云南最好的笔记公司是哪家?
- 质数、互质及算法分析
- 华秋DFM新功能全网上线,助力PCBA可焊性分析
热门文章
- REST,Web 服务,REST-ful 服务
- 图像平滑处理(归一化块滤波、高斯滤波、中值滤波、双边滤波)
- JS给html控件赋值
- 在Windows Mobile和Wince(Windows Embedded CE)下进行Native C++开发,如何取出当前执行文件的路径和调用模块的路径...
- django Error: [Errno 10013]
- 无法初始化链接服务器 (null) 的 OLE DB 访问接口 Microsoft.Jet.OLEDB.4.0 的数据源对象...
- 谦卑的心 2008-9-27 10:21:00 (21ic)
- 图像聚类与检索的简单实现(一)
- 专访Connolly:为什么我们需要手动回归测试宣言?
- 开发函数计算的正确姿势 —— 使用 Fun Local 本地运行与调试