Java核心类库

核心类库

java.lang.Math

Math.E

public static final double E
    double值比任何其他值更接近 e ,即自然对数的基数。 

Math.PI

public static final double PI
	double值比任何其他 pi更接近,圆的圆周与其直径的比率。 

		// abs求绝对值
        System.out.println(Math.abs(-11.1));// 11.1
        System.out.println(Math.abs(11.2));// 11.2
        // ceil返回大于或等于参数且等于数学整数的最小值
        System.out.println(Math.ceil(11.5));// 12.0
        System.out.println(Math.ceil(-11.5));// -11.0
        // floor返回小于或等于参数且等于数学整数的最大值
        System.out.println(Math.floor(11.5));// 11.0
        System.out.println(Math.floor(-11.5));// -12.0
        // sqrt计算平方根
        System.out.println(Math.sqrt(9));// 3.0
        // cbrt计算立方根
        System.out.println(Math.cbrt(8));// 2.0
        // pow(a,b)计算a的b次方
        System.out.println(Math.pow(2,3));// 8.0
        // max(a,b)计算最大值
        System.out.println(Math.max(1.1,1.2));// 1.2
        // min(a,b)计算最小值
        System.out.println(Math.min(2.2,2.1));// 2.1
        // random返回带有正号的 double值,大于或等于0.0且小于1.0
        System.out.println(Math.random());
        // rint 四舍五入 返回与 double值最接近的 double值,该值等于数学整数
        // 注意:当第一位小数是.5时返回的是偶数
        System.out.println(Math.rint(1.5));// 2.0
        System.out.println(Math.rint(2.5));// 2.0
        System.out.println(Math.rint(2.7));// 3.0
        System.out.println(Math.rint(-1.5));// -2.0
        System.out.println(Math.rint(-2.5));// -2.0
        System.out.println(Math.rint(-2.7));// -3.0
        // round 四舍五入,float时返回int值,double时返回long值
        // 0.01~0.49舍 0.51~0.99入
        System.out.println(Math.round(1.49));// 1
        System.out.println(Math.round(1.75));// 2
        System.out.println(Math.round(2.50));// 3
        System.out.println(Math.round(-1.50));// -1
        System.out.println(Math.round(-1.75));// -2
        System.out.println(Math.round(-2.55));// -3

java.lang.System

概述

System类包含几个有用的类字段和方法。 它无法实例化。System类提供的设施包括标准输入,标准输出和错误输出流; 访问外部定义的属性和环境变量; 加载文件和库的方法; 以及用于快速复制阵列的一部分的实用方法

字段

变量和类型字段描述
static PrintStreamerr“标准”错误输出流。
static InputStreamin“标准”输入流。
static PrintStreamout“标准”输出流。
System.arraycopy(a,b,c,d,e);

其中,a是被复制的数组,b是复制的起始位置,c是被复制的数组,d是复制到这个数组的起始位置,e是复制到这个数组的结束位置

在这里插入图片描述

System.currentTimeMillis();

返回毫秒数,这个就比较简单了,和Date类中的getTime方法一样。

在这里插入图片描述

getProperty获取系统属性

常用的有:

os.arch操作系统的架构
os.version操作系统的版本
file.separator文件分隔符(在 UNIX 系统中是“/”)
path.separator路径分隔符(在 UNIX 系统中是“:”)
line.separator行分隔符(在 UNIX 系统中是“/n”)
user.name用户的账户名称
user.home用户的主目录
user.dir用户的当前工作目录
gc

java垃圾回收器,这个方法不需要我们去调用,jvm发现系统有未使用的对象,会自己进行执行。通常会有两种情况下会调用gc:a、当jvm内存不足时会调用,b、当cpu空闲的时候调用。详细请看一下jvm的具体的垃圾回收机制

在这里插入图片描述

exit

退出虚拟机。exit(int)方法是终止当前正在运行的java虚拟机。参数是状态码。根据惯例,非0的状态码表示异常终止,0表是终止。而且,该方法永远不会正常返回

在这里插入图片描述

这是唯一一个能够退出程序并不执行finally的情况。说明:退出虚拟机会直接终止整个程序,这时的程序已经不是从代码的层面来终止程序,所以finally不会被执行

java.Math.BigDecimal

java.math.BigDecimal 类提供用于算术,刻度操作,舍入,比较,哈希算法和格式转换操作。

		//BigDecimal
        BigDecimal bd1 = new BigDecimal("3.5");
        BigDecimal bd2 = new BigDecimal("4.55");
        BigDecimal bd3 = new BigDecimal("-4.55");
        // 指定精度
        MathContext mc = new MathContext(2);
        // 绝对值
        //abs
        System.out.println(bd3.abs());// 4.55
        //abs(MathContext mc)
        System.out.println(bd3.abs(mc));// 4.6
        // 负值
        System.out.println(bd1.negate());// -3.5
        // 加法
        System.out.println(bd1.add(bd2));// 8.05
        // 减法
        System.out.println(bd1.subtract(bd2));// -1.05
        // 乘法
        System.out.println(bd1.multiply(bd2));// 15.925
        // 除法
        System.out.println(bd1.divide(bd2,mc));// 0.77
        // 四舍五入,根据MathContext设置精度
        System.out.println(bd2.round(mc));// 4.6

java.util.Arrays

copyOf

使用指定数据类型复制指定的数组,截断或填充(如有必要),以使副本具有指定的长度

源码:

在这里插入图片描述

例子:

在这里插入图片描述

copyOfRange

将指定数组的指定范围复制到新数组中

源码:

在这里插入图片描述

例子:

在这里插入图片描述

binarySerch

找到定位数组的下标

1、如果找到关键字,则返回值为关键字在数组中的位置索引,且索引从0开始(就和数组的排序计算一样,都是从零开始)
2、如果没有找到关键字,返回 (-(插入点) - 1),所谓插入点值就是第一个比关键字大的元素在数组中的位置索引

源码:

在这里插入图片描述
例子:
在这里插入图片描述

equals 与 deepEquals

deepEquals用于判定两个指定数组彼此是否深层相等,此方法适用于任意深度的嵌套数组

equals用于判定两个数组是否相等,如果两个数组以相同顺序包含相同元素,则返回true,否则返回false

如果要比较多为数组,则需要使用deepEquals方法

例子:

在这里插入图片描述

fill

将指定值分配给指定的数组的每个元素

源码:

在这里插入图片描述

例子:

在这里插入图片描述

sort 与 parallelSort

Arrays.sort()

方法对对象或原始数据类型的数组进行排序。此方法中使用的排序算法是 Dual-Pivot Quicksort。 换句话说,它是快速排序算法的自定义实现,以实现更好的性能

优点缺点
快速处理较小的数据集大型数据集的性能下降
没有利用系统的多个核心
Arrays.parallelSort()

此方法对对象或原始数据类型的数组进行排序。与 sort() 使用单个线程对数据进行顺序排序不同,它使用并行排序-合并排序算法。它将数组分成子数组,这些子数组本身先进行排序然后合并

优点缺点
为大型数据集提供更好的性能对于大小较小的数组,处理速度较慢
利用系统的多个核心

在这里插入图片描述
在这里插入图片描述

不同之处

当我们要排序的数据集很大时,parallelSort() 可能是更好的选择。但是,在数组较小的情况下,最好使用 sort(),因为它可以提供更好的性能

toString

返回指定数组内容的字符串表示形式

在这里插入图片描述

java.util.Date

after

测试此日期是否在指定日期之后

在这里插入图片描述

before

测试此日期是否在指定日期之前

在这里插入图片描述

clone

返回此对象的副本

在这里插入图片描述

compareTo

比较两个日期的订购

如果参数Date等于此Date,则为0; 如果此Date在Date参数之前,则小于0的值; 如果此Date位于Date参数之后,则值大于0。

在这里插入图片描述
在这里插入图片描述

equals

比较两个相等的日期

在这里插入图片描述

getTime

返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数

在这里插入图片描述

setTime

将此 Date对象设置为表示格林尼治标准时间1970年1月1日00:00:00之后的 time毫秒的时间点

在这里插入图片描述

java.text.DateFormat和SimpleDateFormat类

作用

把时间对象转化成指定格式的字符串。反之,把指定格式的字符串转化成时间对象。

DateFormat是一个抽象类,一般使用SimpleDateFormat类。

字母日期或时间元素示例
GEra 标志符AD
y1996; 96
M年中的月份July; Jul; 07
w年中的周数27
W月份中的周数2
D年中的天数189
d月份中的天数10
F月份中的星期2
E星期中的天数Tuesday; Tue
aAm/pm 标记PM
H一天中的小时数(0-23)0
k一天中的小时数(1-24)24
Kam/pm 中的小时数(0-11)0
ham/pm 中的小时数(1-12)12
m小时中分钟数30
s分钟中的秒数55
S毫秒数978
z时区Pacific Standard Time; PST; GMT-08:00
Z时区-0800
日期和时间模式结果
“yyyy.MM.dd G ‘at’ HH:mm:ss z”2001.07.04 AD at 12:08:56 PDT
“EEE,MMM d, ‘’ yy”Wed, Jul 4, '01
“h:mm a”12:08 PM
“hh ‘o’ ‘clock’ a, zzzz”12 o’clock PM, Pacific Daylight Time
“K:mm a, z”0:08 PM, PDT
“yyyyy.MMMMM.ss GGG hh:mm aaa”02001.July.04 AD 12:08 PM
“EEE, d MMM yyyy HH:mm:ss Z”Wed, 4 Jul 2001 12:08:56 -0700
“yyMMddHHmmssZ”010704120856-0700
“yyyy-MM-dd ‘T’ HH:mm:ss.SSSZ”2001-07-04 T 12:08:56.235-0700

format方法

		//创建Date对象表示当前时间
        Date date = new Date();
        //创建SimpleDateFormat对象,指定目标格式
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY年MM月dd日  				HH:mm:ss");
        //调用format()方法,格式化时间,转换为指定格式的字符串
        String today=simpleDateFormat.format(date);
        System.out.println(today);
		// 2021年01月19日  17:29:55

parse方法

 		String today="2018年01月29日  17:16:36";
        //这里的格式需要与上面的字符串格式相同
        SimpleDateFormat ff=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        Date date=ff.parse(today);
        System.out.println(date);
		// Mon Jan 29 17:16:36 CST 2018

注意:

  • 调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,即ParseException,因此需要异常处理
  • 使用Date类要导入java.util包,使用SimpleDateFormat要导入java.text包

java.util.Calendar

1. 概述

Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR(例如Calendar.MONTH都是Calendar类中定义的静态常量)等日历字段之间的转换提供了一些方法,并为操作日历字段(如获得下星期是日期提供了一些方法,瞬间可用毫秒值表示)

2、创建Calendar对象

该类通过调用getInstance()静态方法获取一个Calendar对象,此对象已由当前日期时间初始化,即默认代表当前时间

Calendar c = Calendar.getInstance();

3、成员方法

public int get(int field)

​ 返回给定日历字段的值。日历类中的每个日历字段都是静态成员变量,且都是int类型

在这里插入图片描述

public void add(int field int amount)

​ 根据给定的日历字段和对应的时间,来对当前日历进行操作

在这里插入图片描述

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

​ 设置当前日历的年月日

在这里插入图片描述

public final Date getTime()

​ 用来获取Date对象,完成Calendar和Date的转换

在这里插入图片描述

public long getTimeInMillis()

​ 返回此Calendar的时间值,以毫秒为单位(和Date类的getTime方法类似)

在这里插入图片描述

java.util.Objects

equals

比较对象a和对象b,使用的是第一个参数的equals()方法,
如果两个参数中有一个是null,则返回false,
如果两个参数都是null,则返回true。

在这里插入图片描述
在这里插入图片描述

deepEquals

比较对象a和对象b是否深度相等,使用的其实是Arrays.deepEquals()方法
只有a和b对应位置的元素都相等时,才返回true,a和b都是null也返回true,否则返回false。

在这里插入图片描述
在这里插入图片描述

hashCode

得到一个对象的hash code,如果参数为null,返回0

在这里插入图片描述
在这里插入图片描述

hash

得到一列对象的hash code,
使用的其实是Arrays.hashCode(Object[]),Object[]数组元素就是hash方法传入的参数值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

toString(Object o)

调用对象的toString()方法,如果参数是null,返回字符串"null"

在这里插入图片描述
在这里插入图片描述

toString(Object o,String nullDefault)

调用对象的toString()方法,如果参数是null,返回第二个参数表示的字符串

在这里插入图片描述
在这里插入图片描述

compare

比较对象a和对象b,如果a和b是相等的,返回0,如果不相等,调用c的compare方法。
注意:如果a或者b是null的情况下,调用c的compare方法时有可能报空指针异常,看c的compare方法怎么写了。

在这里插入图片描述

requireNonNull(T obj)

判断一个对象是不是null,如果不是null则返回对象本身,如果是null则抛出空指针异常。

在这里插入图片描述
在这里插入图片描述

requireNonNull(T obj,String message)

判断一个对象是不是null,如果不是null则返回对象本身,如果是null则抛出空指针异常,并把第二个参数message写在异常信息中

在这里插入图片描述
在这里插入图片描述

isNull

判空方法,如果参数为空则返回true

在这里插入图片描述

nonNull

判断非空方法,如果参数不为空则返回true。

在这里插入图片描述

java.util.String

字符串广泛应用 在 Java 编程中,在 Java 中字符串属于对象,Java 提供了 String 类来创建和操作字符串


创建字符串

创建字符串最简单的方式如下:

String str = "Runoob";

在代码中遇到字符串常量时,这里的值是 “Runoob”",编译器会使用该值创建一个 String 对象

和其它对象一样,可以使用关键字和构造方法来创建 String 对象

用构造函数创建字符串:

String str2=new string("Runoob");

String 创建的字符串存储在公共池中,而 new 创建的字符串对象在堆上:

String s1 = "Runoob";               // String 直接创建
String s2 = "Runoob";               // String 直接创建
String s3 = s1;                     // 相同引用
String s4 = new String("Runoob");   // String 对象创建
String s5 = new String("Runoob");   // String 对象创建

在这里插入图片描述

注意:String 类是不可改变的,所以你一旦创建了 String 对象,那它的值就无法改变了

如果需要对字符串做很多修改,那么应该选择使用 StringBuffer & StringBuilder 类

charAt

返回指定索引处的char值。 指数范围为0length() - 1 。 序列的第一个char值位于索引0 ,下一个位于索引1 ,依此类推,就像数组索引一样。

在这里插入图片描述

compareTo 与 compareToIgnoreCase

compareTo

​ 按字典顺序比较两个字符串,如果参数字符串等于此字符串,则值为0;如果此字符串按字典顺序小于字符串参数,则小于0;如果此字符串按字典顺序大于字符串参数,则值大于0

在这里插入图片描述

compareToIgnoreCase

按字典顺序比较两个字符串,忽略大小写差异

一个负整数,零或正整数,因为指定的String大于,等于或小于此String,忽略了大小写

在这里插入图片描述

concat

将指定的字符串连接到此字符串的末尾

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PSlMrXwR-1624081999456)(C:\Users\10640\AppData\Roaming\Typora\typora-user-images\image-20210119202630844.png)]

contains

当且仅当此字符串包含指定的char值序列时,才返回true

在这里插入图片描述

indexOf

从指定的索引处开始,返回指定子字符串第一次出现的字符串中的索引,如果没有这种情况返回-1

在这里插入图片描述

isBlank

如果字符串为空或仅包含white space代码点,则返回 true ,否则 false

在这里插入图片描述

isEmpty

返回 true ,当且仅当, length()0

在这里插入图片描述

length()

返回此字符串的长度

在这里插入图片描述

repeat(int count)

返回一个字符串,其值为字符串的串联重复count次

在这里插入图片描述

replace(char oldChar, char newChar)

返回从替换所有出现的导致一个字符串 oldChar在此字符串 newChar

在这里插入图片描述

startsWith

测试此字符串是否以指定的前缀开头

在这里插入图片描述

strip

返回一个字符串,其值为此字符串,并删除了所有前导和尾随 white space

在这里插入图片描述

stripLeading()

返回一个字符串,其值为此字符串,并删除了所有前导 white space

stripLeading()

返回一个字符串,其值为此字符串,并删除了所有尾随 white space

substring

返回一个字符串,该字符串是此字符串的子字符串。 子字符串以指定索引处的字符开头,并延伸到此字符串的末尾

在这里插入图片描述
在这里插入图片描述

valueOf

返回声明数据类型参数的字符串表示形式。

在这里插入图片描述

Java StringBuffer 和 StringBuilder 类

当对字符串进行修改的时候,需要使用 StringBuffer 和 StringBuilder 类。

和 String 类不同的是,StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的未使用对象。

img

在使用 StringBuffer 类时,每次都会对 StringBuffer 对象本身进行操作,而不是生成新的对象,所以如果需要对字符串进行修改推荐使用 StringBuffer。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");
        System.out.println(sb);  
        sb.append("!");
        System.out.println(sb); 
        sb.insert(8, "Java");
        System.out.println(sb); 
        sb.delete(5,8);
        System.out.println(sb);  
    }
}

img

以上实例编译运行结果如下:

Runoob..
Runoob..!
Runoob..Java!
RunooJava!
Buffer。

StringBuilder 类在 Java 5 中被提出,它和 StringBuffer 之间的最大不同在于 StringBuilder 的方法不是线程安全的(不能同步访问)。

由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使用 StringBuilder 类。

```java
public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");
        System.out.println(sb);  
        sb.append("!");
        System.out.println(sb); 
        sb.insert(8, "Java");
        System.out.println(sb); 
        sb.delete(5,8);
        System.out.println(sb);  
    }
}

[外链图片转存中…(img-LQSWHbhE-1624081999465)]

以上实例编译运行结果如下:

Runoob..
Runoob..!
Runoob..Java!
RunooJava!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值