Java常用类

目录

1. String类

1.1 对String不可变性的理解:

1.2 String类中的常用方法:

1.3 String与char数组之间的转换

1.4 String和byte数组之间的转换

2. StringBuffer和StringBuilder类

3. 时间日期相关API

3.1 java.uitl.Date类

3.2 java.sql.Date类

3.3 SimpleDateFormate类

3.4 Calendar类

3.5 Instant类

4. 比较器


1. String类

String类代表一个字符串,该类为final类,不能被继承;实现了comparable接口,使得不同的String数组之间可以进行比较;底层使用final char[] value来存储数据,使得数据是不可变的

1.1 对String不可变性的理解

使用字面量来对String对象赋值时,字面量声明在常量池中,而在常量池中不会保存两份一样的内容,所以如果是同一个字面量则他们指向同一个实例。

需要注意的点是:①常量和常量的拼接是放在常量池中的;拼接时,只要有一个不是常量而是引用,那么最后就是保存在堆空间中的。②如果拼接的对象使用intern()方法,则返回值会保存在常量池中,这时候使用该对象和通过字面量创建的String对象进行比较时,两者是相同的。

1.2 String类中的常用方法

in length():返回字符串的长度

char charAt(int index):返回指定索引位置的字符

boolean isEmpty():判断字符串是否为空

String toLowerCase():将字符串中的大写字母转换成小写字母

String toUperCase():将字符串中的小写字母转换成大写字母

String trim():返回一个新字符,忽略前后空白

boolean equalsIgnoreCase():忽略大小写进行比较是否相同

String concat(String str):将指定字符串加在字符串后面,等价于“+”

int compareTo(String str):比较两个字符串的大小

String substring(int beginIndex):返回一个新字符串,从原字符串的beginindex开始到字符串的结尾

String substring(int beginIndex,int endIndex):返回一个新字符串,从原字符串的beginindex开始到endindex结束

boolean endsWith(String sub):判断该字符串是否是以指定的字符串结尾

boolean startsWith(String sub):判断该字符串是否是以指定的字符串开始

boolean startsWith(String sub,int toffset):判断该字符串从指定的索引开始是否是以指定的字符串开始

boolean contains(charSequence s):判断该字符串是否包含指定的字符串

int indexOf(String str):返回指定字符串在字符串中第一次出现的索引

int indexOf(String str,int fromIndex):返回指定字符串在字符串中第一次出现的索引,从指定的索引开始

int lastIndexOf(String str):返回指定字符串在字符串中最后一次出现的索引

int lastIndexOf(String str,int index):返回指定字符串在字符串中最后一次出现的索引,从指定的索引开始反方向查找

String replace(char oldChar,char newChar):将字符串中指定的字符用newChar代替

String replace(CharSequence target,CharSequence replacement):将原字符串中的指定的字串用新字串替代

1.3 String与char数组之间的转换

char[] toCharArray():将String数组转换成char数组

char数组转换成String只需要调用String的构造方法即可

1.4 String和byte数组之间的转换

String转byte数组:调用String的getBytes()方法(可以指定字符集)

byte数组转换成String只需要调用String的构造方法即可

2. StringBuffer和StringBuilder类

StringBuffer是线程安全的,效率较低。StringBuilder是线程不安全的,效率较高。

StringBuffered在创建对象时,如果没有指定容量大小,则底层先创建一个长度为16的char数组,在之后长度不够时才进行扩容。扩容时容量为原来的两倍+2.同时将原来的数据复制到新数组中。

常用方法

StringBuffer append(xxx):用于字符串拼接

StringBuffer delete(int start,int end):删除指定位置的数据

StringBuffer replace(int start,int end,String str):将指定位置的数据用新数据替代

StringBuffer insert(int offset,xxx):在指定的位置插入数据

StringBuffer reverse():将字符串反转

3. 时间日期相关API

System类的currentTimeMillis():获取当前时间的时间戳

3.1 java.uitl.Date类

两个构造器

new Date():创建一个对应当前时间的对象

new Date(long time):创建一个指定毫秒数的对象

两个方法

toString():显示当前的年月日时分秒

getTime():获取当前Date对象的时间戳

3.2 java.sql.Date类

对应着数据库中的Date类型,是java.util.Date类的子类

构造器

new Date(long time):创建一个指定时间戳的对象

util.Date转sql.Date的方法

先调用util.Date对象的getTime()获取时间戳,再使用该时间戳创建一个sql.Date对象

3.3 SimpleDateFormate类

对日期Date的格式化

格式化:将日期转换成指定格式的字符串

解析:将指定格式的字符串转换成日期

实例化:

通常使用如下指定格式

SimpleDateFormate("yyyy-MM-dd hh:mm:ss")

格式化:使用formate()方法将对应的Date对象转换成字符串

解析:使用parse(String time)方法获取对应的Date对象 

3.4 Calendar类

常用方法

下述的int filed都是Calendar类中定义的静态常量

Calendar.getInstance():获取当前时间的Calendar对象

get(int filed):获取该Calendar对象的指定信息

set(int filed,int num):将指定的信息修改成num

add(int filed,int num):将指定的信息增加num

getTime():通过日历类对象获取一个Date类对象

setTime(Date time):将日历类对象的时间设置成指定的Date时间

LocalDate、LocalTime、LocalDateTime类

实例化

通过使用类方法:now()获取当前时间的对象

通过使用类方法:of()获取指定时间的对象

常用方法

getXxx():获取指定信息

setXxx(int num):将指定信息设置成num

plusXxx(Long num):将指定信息增加num

DateTimeFormatter类

用来替换SimpleDateFormate类。常用获取实例的方法:使用DateTimeFormatter的类方法ofPattern(String pattern)获取。通常使用ofPattern("yyyy-MM-dd hh:mm:ss")。

3.5 Instant类

实例化

使用类方法:now()获取程序执行该语句时的瞬时对象

ofEpochMilli(long time):获取时间戳对应的瞬时对象

常用方法

toEpochMilli():获取对应的时间戳

4. 比较器

Java中的对象正常情况下是不能进行比较的,但是我们在开发中又通常会有这个需求。为此我们可以使类实现Comparable接口后重写compareTo(Object obj)方法,进而实现对象之间的大小比较。如果我们类没有实现Comparable接口同时又不方便修改类的结构,我们还可以创建一个类实现Comparator接口后再重写compare(Object obj1,Object obj2)方法来实现对象大小的比较。

compareTo(Object obj)方法重写的要求:如果方法调用者大于参数obj则返回正数,如果小于参数则返回负数,否则返回0.

compare(Object obj1,Object obj2)方法重写要求:如果obj1大于obj2则返回正数,如果obj1小于obj2则返回负数,否则返回0.

Arrays中sort()方法的使用:在Java的数组排序中,对于一维数组的排序,我们通常会使用Arrays类的静态方法sort(Object [] obj)来对数组进行排序,这要求我们传入的数组的类实现类Comparable接口并且重写了compareTo方法。在执行这个方法后,数组会按compareTo方法实现中从小到大的顺序排序。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值