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

一、其他API

1.System类

f9694a3e3d4b5112c5da64532395addc.png

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:它封装了和数学运算相关的方法。

9789add9f6efc25d3ecbf3ef2fa1fee3.png

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类

e846db5b33ff4e13f2313957bcdf91fe.png

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中也有对应的类描述这些数据。

64c5cd059b5be1a707e2b438e13925b8.png

类 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类介绍

093b0391085a7590b1ab25d9ed79e221.png

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类介绍

aca6df8d12d20957896d5ded5d5ca50f.png

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

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

39a9a08a672519b634651d9bc22bbfac.png

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

a78f36c2e046750e19f853965da9295c.png

创建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. 日历类

da5fd48063cf91587486b1e91de061f4.png

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

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

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

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

cae9a65a30e243fffa531789258af96b.png

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 }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349981.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

适用于Java开发人员的Elasticsearch:简介

本文是我们学院课程的一部分&#xff0c;该课程的标题为Java开发人员的Elasticsearch教程 。 在本课程中&#xff0c;我们提供了一系列教程&#xff0c;以便您可以开发自己的基于Elasticsearch的应用程序。 我们涵盖了从安装和操作到Java API集成和报告的广泛主题。 通过我们简…

人民邮电出版社图灵公司的两本SQL Server 2005图书诚征译者

人民邮电出版社图灵公司介绍&#xff08;来自http://www.turingbook.com/&#xff09; 北京图灵文化发展有限公司成立于2005年6月&#xff0c;由人民邮电出版社投资控股&#xff0c;以策划出版高质量的科技书籍为核心业务&#xff0c;主要出版领域包括计算机、电子电气、数学统…

java容器类继承_JAVA容器 - weslie - OSCHINA - 中文开源技术交流社区

一、 数组1、数组是保存一组对象的最有效的方式。但数组有固定的尺寸而受限(p216)2、数组与其他种类的容器之间的区别有三方面&#xff1a;效率、类型和保存基本类型的能力。在Java中&#xff0c;数组是一种效率最高的存储和随机访问对象引用序列的方式。数组就是一个简单的线性…

前端通信

Node中的net模块提供的前端通信 H5提供的 webSocket 【 常用于 移动端 】pc端低版本浏览器使用 socket.io 通信- 服务端&#xff1a; 总的服务器 举例&#xff1a; 腾讯的qq服务器 1个整体- 客户端&#xff1a; 单个用户使用应用 举例&#xff1a; 每个人的qq 多个client.js 客…

java定位线程阻塞_Arthas - 定位 Java 性能问题原来这么简单

目录&#xff1a;一、Arthas 介绍二、Arthas 使用场景三、Arthas怎么使用四、Arthas 定位性能问题定位Java代码导致占用CPU高的问题线程死锁前言&#xff1a;在做性能测试的过程中&#xff0c;当遇到Java性能问题&#xff0c;比如CPU飙升&#xff0c;负载突高&#xff0c;内存溢…

SVN 本地文件锁/服务端文件锁清除步骤

1.本地文件锁&#xff0c;直接cleanup&#xff0c;cleanup界面选择break locks即可 2.服务端文件锁&#xff0c;本地文件右击没有release lock或者break lock的选项时 方法1&#xff1a;右键&#xff0c;svn选择browser repo&#xff0c;找到该文件&#xff0c;右击&#xff0c…

java 对象复活_Java对象复活

java 对象复活总览 收集覆盖了finalize&#xff08;&#xff09;的对象之后&#xff0c;将其添加到终结处理队列中&#xff0c;以在调用每个对象的finalize&#xff08;&#xff09;方法之后进行清理。 如果您复活了物体&#xff0c;会发生什么&#xff1f; 何时定案&#xff…

a b和c 15 java_1011. A+B和C (15)

给定区间[-231, 231]内的3个整数A、B和C&#xff0c;请判断AB是否大于C。输入格式&#xff1a;输入第1行给出正整数T(<10)&#xff0c;是测试用例的个数。随后给出T组测试用例&#xff0c;每组占一行&#xff0c;顺序给出A、B和C。整数间以空格分隔。输出格式&#xff1a;对…

深入浅出《设计模式》之工厂模式(C++)

前言 模式介绍 在之前简单工厂模式中&#xff0c;我们介绍了简单工厂模式的缺陷是违背了开放-封闭原则。如果在面馆中添加了烤海参&#xff0c;那将会修改waiter工厂类。违背了类内封闭原则。 还以面馆为例&#xff0c;现在两种面&#xff0c;用一个服务员来卖就可以&#xff0…

当心Spring缓慢的事务回调

TL; DR 如果您的应用程序无法获得新的数据库连接&#xff0c;则重新启动ActiveMQ代理可能会有所帮助。 有兴趣吗 性能问题 几个月前&#xff0c;我们经历了生产中断。 大家都很熟悉&#xff0c;许多请求都失败了&#xff1a; java.sql.SQLTransientConnectionException: Hika…

jmeter学习笔记(八-1)

Jmeter中有较多需要参数化测试的地方&#xff1a; 1.从一个用户登录的接口获取登录后的token值&#xff0c;取值后用于后续接口调用 2.获取用户浏览后的cookies信息&#xff0c;需要用到HTTP Cookie 管理器来为同一线程组提供通用的cookies信息 Jmeter中通过${}形式来取参数值 …

python 对象转dict_如何将python dict对象转换为java等效对象?

总是有jython。这里有一点来自this article&#xff0c;它提供了python/java的良好并排视图The Jython analogues to Javascollection classes are much moretightly integrated into the corelanguage, allowing for more concisedescriptions and useful functionality.For e…

NOIP模拟测试5「星际旅行·砍树·超级树」

星际旅行 0分 瞬间爆炸。 考试的时候觉得这个题怎么这么难&#xff0c; 打个dp&#xff0c;可以被儿子贡献&#xff0c;可以被父亲贡献&#xff0c;还有自环&#xff0c;叶子节点连边可以贡献&#xff0c;非叶子也可以贡献&#xff0c;自环可以跑一回&#xff0c;自环可以跑两回…

学java选i5还是i7_选笔记本电脑,到底CPU是要选i5还是i7

又到了一年毕业季&#xff0c;准备上大学的学生们肯定是摩拳擦掌&#xff0c;准备入手一台新的笔记本电脑。而我们在选购笔记本电脑的时候&#xff0c;经常会遇到不同的配置&#xff0c;比如说同一台笔记本电脑会有i5以及i7两个处理器可供选择&#xff0c;而价格往往相差一两千…

apache apollo_Apache Apollo REST API

apache apolloApache Apollo是新一代&#xff0c;高性能&#xff0c;多协议的消息传递代理&#xff0c;它是从头开始构建的&#xff0c;可以替代ActiveMQ5.x。 我过去曾在博客上发表过文章 &#xff08;第一部分已经与第二部分一起发布了&#xff09;。 Apollo的无阻塞异步体系…

Node 之 模块加载原理与加载方式

Node.js中的模块可以分为原生模块和文件模块&#xff0c;通过Node.js中可以通过require方法导入模块、exports方法导出模块。 1、require导入模块 对于原生模块&#xff08;比如说&#xff1a;http&#xff09;&#xff0c;只需要使用require&#xff08;‘http’&#xff09;导…

php excel 下拉菜单,使用 PHPExcel 遇到的一个问题:下拉列表的数据来源过长时,显示了别的正常的下拉列表的数据来源...

遇到的问题&#xff1a;我们还是先来看手册是怎么说的&#xff1a;It is important to remember that any string participating in an Excel formula is allowed to be maximum 255 characters (not bytes).当下拉列表的数据来源过长(more than 255 characters)时&#xff0c;…

有效的Java –创建和销毁对象

创建和销毁对象&#xff08;第2章&#xff09; 这是Joshua Blochs的《 有效的Java》第2章的简短摘要。我仅包括与自己相关的项目。 静态工厂&#xff08;项目1&#xff09; 静态工厂与构造函数的一些优点&#xff1a; 工厂方法的名称为构造函数添加了描述 他们可以返回预先构…

【洛谷P2743】【poj 1743】[USACO5.1]乐曲主题Musical Themes

题目 还是板子题 因为旋律会同时加减一个数&#xff0c;所以我们在差分数组上做就好了 注意因为差分了&#xff0c;跨越的个数要少一个 基数排序循环写反了&#xff0c;调了好久 qwq /* Date : 2019-07-19 10:17:22 Author : Adscn (adscnqq.com) Link : https://www.cn…

exec导入 php,PHP exec运行一个文件

我正在尝试最后3个小时告诉PHP运行一个简单的文件.我在本地主机中使用wamp服务器用于Windows(Windows 8)我尝试过使用exec()&#xff1a;echo exec(whoami);我得到了权威的回应.还测试了&#xff1a;if(function_exists(exec)) {echo "exec is enabled";}它可能有用吗…