一、其他API

1.System类

system类中的方法和成员变量都是静态的, 不需要创建System对象就可以直接使用。

1 /*

2 * 演示System的使用3 */

4 public classSystemDemo {5 public static voidmain(String[] args) {6

7 /*

8 * System类中的静态成员变量: out 和 err的区别9 * out和err都可以把需要输出的信息展示在控制台上。10 * 但是由于JVM的底层针对out和err是两种不同的实现机制11 * 在输出的时候,数据的显示先后次序并不能确定12 *13 * 建议:开发中要么全部是out,要么全部使用err14 */

15 System.out.println("你好");16 System.err.println("hello");17 //强制退出JVM

18 System.exit(0);19 //获取系统的当前时间,得到的是当前时间距离1970-1-1 0:0:0秒的时间差20 //获取到的是一个毫秒值。1秒=1000毫秒

21 System.out.println(System.currentTimeMillis());22 }23 }

结论:只要获取和系统相关的信息时就应该考虑使用System类。

2. Math类

Math:它封装了和数学运算相关的方法。

Math类中的方法都是静态的,可以通过类名直接调用。

1 /*

2 * 演示Math类3 */

4 public classMathDemo {5 public static voidmain(String[] args) {6

7 System.out.println(Math.E);8 System.out.println(Math.PI);9

10 //返回大于指定数据的最小整数

11 System.out.println(Math.ceil(4.56));12 //返回小于指定数据的最大整数

13 System.out.println(Math.floor(4.56));14 //四舍五入

15 System.out.println(Math.round(4.56));16 //0~1之间的一个随机数

17 System.out.println(Math.random());18 }19 }

3. Random类

Random类它是专门负责产生随机数的类。

1 /*

2 * 演示随机数类3 */

4 public classRandomDemo {5 public static voidmain(String[] args) {6

7 //创建产生随机数的那个对象

8 Random r = newRandom();9

10 System.out.println(r.nextFloat());11 System.out.println(r.nextDouble());12 System.out.println(r.nextInt());13 System.out.println(r.nextBoolean());14 System.out.println(r.nextLong());15 System.out.println(r.nextInt(100));16

17 for( int i = 0 ; i < 6 ; i++){18 System.out.println(r.nextInt(6) + 1);19 }20 }21 }

4. 日期类

a. Date类

生活中有时间日期数据,在Java中也有对应的类描述这些数据。

类 Date 表示特定的瞬间,精确到毫秒。

在 JDK 1.1 之前,类 Date 有两个其他的函数。它允许把日期解释为年、月、日、小时、分钟和秒值。它也允许格式化和解析日期字符串。不过,这些函数的 API 不易于实现国际化。从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和解析日期字符串。Date 中的相应方法已废弃。

Date类是表示时间日期数据的对象,但是这个类中的方法不利于其他国家程序员进行时间的显示等操作,其中大部分的方法已经过时,由Calendar和DateFormat类代替。

1 /*

2 * 演示Date类3 * 构造方法:4 * Date()5 * Date类中的空参数的构造方法:它的目的仅仅是将当前的时间封装成Date对象6 * Date(long date)7 * Date类中的接收long类型的整数构造方法,它的目的是将指定的一个毫秒值封装成Date对象8 * 普通的方法:9 * getTime() 获取Date对象所表示的当前时间对应的毫秒值10 * setTime(long time) 将当前Date对象对应的毫秒值修改为指定的毫秒值11 *12 * Date类中需要掌握:13 * Date对象和毫秒值之间的转换。14 * Date对象转毫秒值的作用,是为了计算2个时间之间的时间差15 * 计算出来的时间差是一个毫秒值,需要手动的转成具体的天数,或者月,或者年等数据16 *17 */

18 public classDateDemo {19 public static voidmain(String[] args) {20

21 //使用Date类中的空参数的构造方法创建Date对象

22 Date date = newDate();23 Date date2 = new Date(999900001231L);24 //date.setTime(1230L);25 //打印

26 System.out.println(date);27 System.out.println(date2);28 }29 }

b.日期时间格式化类

b.1 DataFormat类介绍

DateFormat 是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat)允许进行格式化(也就是日期->文本)、解析(文本->日期)和标准化。将日期表示为 Date 对象,或者表示为从 GMT(格林尼治标准时间)1970 年 1 月 1 日 00:00:00 这一刻开始的毫秒数。

DateFormat 提供了很多类方法,以获得基于默认或给定语言环境和多种格式化风格的默认日期/时间 Formatter。格式化风格包括 FULL、LONG、MEDIUM 和 SHORT。方法描述中提供了使用这些风格的更多细节和示例。

DateFormat类:它可以完成Date对象和字符串之间的转成。但是由于这个类是抽象类,不能直接去创建对象,并且这个类对日期和字符串之间的转换方式只有4种,并不能满足用户想要的格式:

1 /*

2 * 简单演示DateFormat类3 */

4 public classDataFormatDemo {5 public static voidmain(String[] args) {6

7 //获取到DateFormat 对象

8 DateFormat format =DateFormat.getInstance();9

10 //将日期对象转成字符串

11 Date d = newDate();12 String s =format.format(d);13 System.out.println(s);14

15 }16 }

b.2 SimpleDateFormat类介绍

SimpleDateFormat:它和DateFormat功能一致。都是完成Date对象和字符串之间的转换。

SimpleDateFormat是DateFormat的子类,并且在创建SimpleDateFormat对象的时候,如何完成日期和字符串之间的转换格式书写,由开发人员自己指定。

创建SimpleDateFormat对象时如何指定转换的格式:

创建SimpleDateFormat对象指定的格式:

年使用yyyy

月MM

天dd

时HH

分mm

秒ss

中间的分隔符由程序员自己指定。

解析日期:将字符串形式的日期数据转成Date对象 使用的SimpleDateFormat类中的parse方法

格式化日期:将Date对象转成字符串形式的日期数据,使用SimpleDateFormat类中的format方法

1 /*

2 * 演示SimpleDateFormat类3 */

4 public classSimpleDataFormatDemo {5 public static void main(String[] args) throwsParseException {6 method3();7 }8 /*

9 * 如下的2个字符串形式的时间数据,计算它们的时间差10 * "2016年01月02日 10:27:14"11 * "2019-11/22 10:27:14"12 * 计算它们之间相隔多少天?13 */

14 public static void method3() throwsParseException {15

16 String s = "2016年01月02日 10:27:14";17 String s2 = "2016-01/03 10:27:14";18

19 //需要定义2个不同的格式器对象

20 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");21 SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM/dd HH:mm:ss");22

23 //解析

24 Date d =sdf.parse(s);25 Date d2 =sdf2.parse(s2);26

27 //需要获取不同的Date对象对应的毫秒值

28 long t =d.getTime();29 long t2 =d2.getTime();30

31 //计算时间差

32 long day = Math.abs((t - t2) / 1000 / 60 / 60 / 24);33 System.out.println(day);34 }35 //将字符串数据转成Date对象

36 public static void method2() throwsParseException {37

38 String s = "2016年01月02日 10:27:14";39

40 //创建格式器对象

41 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");42

43 //将字符串转成Date对象

44 Date d =sdf.parse(s);45

46 System.out.println(d);47 }48 //将日期对象转成字符串数据

49 public static voidmethod() {50 //创建格式器对象

51 SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");52

53 //将日期对象转成字符串

54 Date d = newDate();55 String s =sdf.format(d);56 System.out.println(s);57 }58 }

3. 日历类

Calender类:它是日历类。其实这个类相当于一个容器。这个容器中保存者当前时间相关的所有信息。

比如:今天是一年中的第几天,今天是一周中的第几天,今天是这个月的第几周,今天是几月,几日,时分秒等信息都保存在这个容器中。

Calender类 年月日时分秒,12个月 ,星期 等对应的英文数据都封装成静态的成员变量。

Calender类是抽象类,它中提供了静态的getInstance方法获取到Calender对象()。

1 //简单演示Calendar

2 public static voidmethod() {3

4 //获取Calendar对象

5 Calendar c =Calendar.getInstance();6

7 System.out.println(c);8

9 System.out.println(c.get( Calendar.YEAR ));10 /*

11 * 计算机中的月份是从 零开始的。12 * 0 表示 1月13 * 1 表示2月14 * 11表示12月15 * 12表示下一年的1月16 */

17 System.out.println(c.get( Calendar.MONTH ));18 System.out.println(c.get( Calendar.DAY_OF_MONTH ));19

20 }21

22

23 /*

24 * 计算任意一年的2月有多少天?25 * 由于时间数据是连续的,因此我们可以将当前的时间设置为26 * 当年的3月1日,然后让天数-1,当前的时间就自动的变为了2月的最后一天。27 * 我们只需要将当前这个月中的天数获取出来,就是二月共计有多少天28 */

29 public static voidmethod2() {30

31 //获取到Calendar对象

32 Calendar c =Calendar.getInstance();33

34 //设置当前的时间为 3月 1日

35 for (int year = 1000; year < 2555; year++) {36 c.set(year, 2, 1);37 //让天数 -1

38 c.add(Calendar.DAY_OF_MONTH, -1);39 //获取到当前处理后的月中的天数

40 System.out.println(year + "年的2月有 " + c.get(Calendar.DAY_OF_MONTH) + "天");41 }42 }

二 、 JDK5的特性

1. 静态导入

1 /*

2 * 静态导入演示3 * 在程序中如果需要使用某些类中的静态成员,可以在程序开始的时候,4 * 先将这些静态成员导入到程序中5 * 然后在程序中就可以直接使用静态成员,而不需要指定类名6 */

7 import staticjava.lang.Math.PI;8 import staticjava.lang.System.out;9

10 public classStaticImportDemo {11 public static voidmain(String[] args) {12 out.println(PI);13 }14 }

2.  可变参数

1 /*

2 * 演示可变参数3 */

4 public classParameterArgumentsDemo {5 public static voidmain(String[] args) {6

7 int sum = getSum(1, 2, 4);8 System.out.println(sum);9 /*

10 * 如果需要操作多个类型相同的数据的,将这些数据需要传递给某个方法11 * 在JDK5之前:可以先将这些数据存储到数组中,然后将数组传递给方法12 *13 * 到JDK5之后,可以使用可变参数的技术来接收不确定个数的数据14 *15 */

16 int[] arr = {11,22,33,44,55,66,77,88};17

18 int sum2 = getSum(12,33,44,55);19 System.out.println(sum2);20 }21

22 /*

23 * 演示定义可变参数的方法24 * 可变参数:25 * 1、它实际中接收到的数据之后,依然保持在数组中,在方法中还是要通过数组的方式进行操作26 * 2、如果方法上除了可变参数之外,还有其他的参数,这时可变参数必须写在整个方法参数列表的最后27 */

28 public static int getSum(int x , int... arr ) {29

30 int sum = 0;31 for (int i = 0; i < arr.length; i++) {32 sum +=arr[i];33 }34 returnsum;35 }36 /*计算传递的数组中的和值37 public static int getSum(int[] arr) {38

39 int sum = 0;40 for (int i = 0; i < arr.length; i++) {41 sum += arr[i];42 }43 return sum;44 }45 */

46 //需求:定义功能 计算2个数的和值

47 public static int getSum(int i, int j , intk) {48 return i + j +k;49 }50

51 //需求:定义功能 计算2个数的和值

52 public static int getSum(int i, intj) {53 return i +j;54 }55 }

3.foreach循环

1 /*

2 * 在JDK5中提供了一个可以简化for循环的技术:3 * foreach技术:高级for循环4 * 普通for循环的书写格式:5 * for( 表达式1 ; 表达式2 ; 表达式3 ){6 * 循环体7 * }8 * foreach书写格式:9 * for( 数组空间中的元素类型 变量名 : 数组名 ){10 * 循环体11 * }12 * 使用foreach遍历数组的时候,定义的变量名中保存的数据是从数组中取出的元素13 * 弊端:foreach只能遍历,不能对数组空间中的值进行其他的操作14 */

15 public classForEachDemo {16 public static voidmain(String[] args) {17

18 int[] arr = {11,22,33,44,55,66};19

20 //使用普通for循环遍历

21 for(int i = 0 ; i < arr.length ; i ++){22 System.out.print(arr[i] + " ");23 }24 System.out.println("\n===================");25 //使用foreach遍历数组

26 for( intx : arr ){27 System.out.print(x + " ");28 }29 }30 }

Java13的API_JAVA基础--JAVA API常见对象(其他API)13相关推荐

  1. Java基础-JAVA中常见的数据结构介绍

    Java基础-JAVA中常见的数据结构介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是数据结构 答:数据结构是指数据存储的组织方式.大致上分为线性表.栈(Stack) ...

  2. java hashmap 的api_JAVA基础--JAVA API集合框架(ArrayList、HashSet、HashMap使用)

    一.集合Collection 1. 集合介绍 变量:表示的内存中的一个空间,只能保存确定类型的单个数据 数组:表示的是内存中的多个连续的空间,这些空间中可以存储多个同类型的数据. 后期继续学习面向对象 ...

  3. Java语言基础(常见对象3(数组排序(冒泡排序、选择排序、直接插入排序、快速排序、归并排序)、Arrays、基本数据类型包装类、Integer类、自动拆箱、自动装箱))

    Java语言基础 常见对象 数组排序 冒泡排序 相邻元素两两比较,大的往后放,第一次完毕,最大值的元素就会出现在最大索引处:以此循环 //冒泡排序:public static void main(St ...

  4. Java基础:常见对象

    第一讲   API 一.API概述 1.API(Application Programming Interface) :应用程序编程接口 2.编写一个机器人程序去控制机器人踢足球,程序就需要向机器人发 ...

  5. java常见对象_Java/10_Java常见对象.md at master · DuHouAn/Java · GitHub

    Java常见对象 Arrays Arrays:针对数组进行操作的工具类. Arrays的常用成员方法: public static String toString(int[] a) //把数组转成字符 ...

  6. Java包括jvm及API,Java基础(下)(JVM、API)

    Java基础(下) 第三部分:Java源程序的编辑 我们知道,计算机是不能直接理解源代码中的高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序. 翻译 ...

  7. Java SE基础(十四)常用API

    Java SE基础(十四)常用API 概述 Object类 构造方法 成员方法 toString()方法 equals(Object obj)方法 Arrays排序 Arrays类概述 Arrays成 ...

  8. JAVA SE之常见对象

    常见对象 正则表达式 1 Pattern和Matcher类 1.1 正则表达式的概述和简单使用 1.2 正则表达式的组成规则 1.3 正则表达式的判断功能 1.4 校验用户邮箱是否满足要求 1.5 正 ...

  9. Java基础教程-05-面向对象

    Java基础教程-05-面向对象 1. 面向过程和面向对象解释 1.1 面向过程 1.1.1 简述 我们回想一下, 前面我们完成一个需求的步骤是怎样的? 首先是搞清楚我们要做什么. 然后在分析怎么做. ...

最新文章

  1. spark无法与服务器建立稳定连接,无法在Spark中将从站连接到主站
  2. 声场噪音测试软件,粉红噪声:测试声场频率的标准信号源(转载)
  3. DLL注入-APC注入
  4. android商店账号密码错误,安卓:我失去了我的安卓密钥商店,我该怎么办?
  5. RGB to xml(labelimg应用)
  6. golang中值类型/指针类型的变量区别总结
  7. VC++软件授权加密与管控(附demo)
  8. jQuery 图片轮播插件–GalleryView
  9. 数学与泛型编程(7)置换算法
  10. Lin法求解多方式方程共轭复根
  11. Lemmatization VS Stemming
  12. PHP实现微信小程序免密支付,微信免密支付,微信小程序实现微信支付功能!!!...
  13. VBA 根据股票代码查询价格
  14. “屌丝”身世-由一个低级趣味而来
  15. 红木家具之缅甸花梨家具
  16. 海亮DAY8 关于Tarjan算法用于割点割边相关感受
  17. Linq技术四:动态Linq技术 -- Linq.Expressions
  18. ul、li显示图片标记
  19. 自选项目--手机锁屏软件--NABC分析
  20. AggregatingMergeTree

热门文章

  1. vue php企业站案例,vue 开发企业微信整合案例分析
  2. 纯净pe工具_微PE工具箱2.0
  3. devc++ 运行时黑屏一闪而过
  4. 光端机按照技术类型及接口种类是怎么分类的?
  5. 关于交换机和路由器的区别介绍
  6. 【渝粤题库】陕西师范大学202421 教育管理心理学 作业 (专升本)
  7. 【渝粤题库】陕西师范大学202007 高等数学(二) 作业
  8. 【渝粤题库】国家开放大学2021春2528监督学题目
  9. js结合css3,使用JS和CSS3实现的旗帜飘扬动画
  10. java高级编程期末考试题_java高级编程考题