java基础知识(五)

2020-05-11  本文已影响0人  木石前盟_429a

函数式接口代表只包含一个抽象方法的接口。函数式接口可以包含多个默认方法、类方法,但只能声明一个抽象方法。


lamabd表达式


强制系统垃圾回收有如下两种方式:

➢ 调用System类的gc()静态方法:System.gc()。

➢ 调用Runtime对象的gc()实例方法:Runtime.getRuntime().gc()。


系统类的使用


不同的是,StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。



String类提供了大量构造器来创建String对象,其中如下几个有特殊用途。

➢ String():创建一个包含0个字符串序列的String对象(并不是返回null)。

➢ String(byte[] bytes, Charset charset):使用指定的字符集将指定的byte[]数组解码成一个新的String对象。

➢ String(byte[] bytes, int offset, int length):使用平台的默认字符集将指定的byte[]数组从offset开始、长度为length的子数组解码成一个新的String对象。

➢ String(byte[] bytes, int offset, int length, String charsetName):使用指定的字符集将指定的byte[]数组从offset开始、长度为length的子数组解码成一个新的String对象。

➢ String(byte[] bytes, String charsetName):使用指定的字符集将指定的byte[]数组解码成一个新的String对象。➢ String(char[] value, int offset, int count):将指定的字符数组从offset开始、长度为count的字符元素连缀成字符串。

➢ String(String original):根据字符串直接量来创建一个String对象。也就是说,新创建的String对象是该参数字符串的副本。➢ String(StringBuffer buffer):根据StringBuffer对象来创建对应的String对象。

➢ String(StringBuilder builder):根据StringBuilder对象来创建对应的String对象。String类也提供了大量方法来操作字符串对象,下面详细介绍这些常用方法。

➢ int compareTo(String anotherString):比较两个字符串的大小。如果两个字符串的字符序列相等,则返回0;不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差。另一种情况,较长字符串的前面部分恰巧是较短的字符串,则返回它们的长度差。

➢ char charAt(int index):获取字符串中指定位置的字符。其中,参数index指的是字符串的序数,字符串的序数从0开始到length()-1

➢ String concat(String str):将该String对象与str连接在一起。与Java提供的字符串连接运算符“+”的功能相同。

➢ boolean contentEquals(StringBuffer sb):将该String对象与StringBuffer对象sb进行比较,当它们包含的字符序列相同时返回true。

➢ static String copyValueOf(char[] data):将字符数组连缀成字符串,与String(char[]content)构造器的功能相同。

➢ static String copyValueOf(char[] data, int offset, int count):将char数组的子数组中的元素连缀成字符串,与String(char[] value,int offset,int count)构造器的功能相同

➢ boolean endsWith(String suffix):返回该String对象是否以suffix结尾。

➢ boolean equals(Object anObject):将该字符串与指定对象比较,如果二者包含的字符序列相等,则返回true;否则返回false。

➢ boolean equalsIgnoreCase(String str):与前一个方法基本相似,只是忽略字符的大小写。

➢ byte[] getBytes():将该String对象转换成byte数组。

➢ void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin):该方法将字符串中从srcBegin开始,到srcEnd结束的字符复制到dst字符数组中,其中dstBegin为目标字符数组的起始复制位置。

➢ int indexOf(int ch):找出ch字符在该字符串中第一次出现的位置。

➢ int indexOf(int ch, int fromIndex):找出ch字符在该字符串中从fromIndex开始后第一次出现的位置。

➢ int indexOf(String str):找出str子字符串在该字符串中第一次出现的位置。

➢ int indexOf(String str, int fromIndex):找出str子字符串在该字符串中从fromIndex开始后第一次出现的位置。

➢ int lastIndexOf(int ch):找出ch字符在该字符串中最后一次出现的位置。

➢ int lastIndexOf(int ch, int fromIndex):找出ch字符在该字符串中从fromIndex开始后最后一次出现的位置。

➢ int lastIndexOf(String str):找出str子字符串在该字符串中最后一次出现的位置。

➢ int lastIndexOf(String str, int fromIndex):找出str子字符串在该字符串中从fromIndex开始后最后一次出现的位置。

➢ int length():返回当前字符串长度。

➢ String replace(char oldChar, char newChar):将字符串中的第一个oldChar替换成newChar。

➢ boolean startsWith(String prefix):该String对象是否以prefix开始。

➢ boolean startsWith(String prefix, int toffset):该String对象从toffset位置算起,是否以prefix开始。

➢ String substring(int beginIndex):获取从beginIndex位置开始到结束的子字符串。

➢ String substring(int beginIndex, int endIndex):获取从beginIndex位置开始到endIndex位置的子字符串。

➢ char[] toCharArray():将该String对象转换成char数组。

➢ String toLowerCase():将字符串转换成小写。➢ String toUpperCase():将字符串转换成大写

➢ static String valueOf(X x):一系列用于将基本类型值转换为String对象的方法。



ThreadLocalRandom类是Java 7新增的一个类,它是Random的增强版。在并发访问的环境下,使用ThreadLocalRandom来代替Random可以减少多线程资源竞争,最终保证系统具有更好的线程安全性。







➢ Greedy(贪婪模式):数量表示符默认采用贪婪模式,除非另有表示。贪婪模式的表达式会一直匹配下去,直到无法匹配为止。如果你发现表达式匹配的结果与预期的不符,很有可能是因为——你以为表达式只会匹配前面几个字符,而实际上它是贪婪模式,所以会一直匹配下去。

➢ Reluctant(勉强模式):用问号后缀(?)表示,它只会匹配最少的字符。也称为最小匹配模式。

➢ Possessive(占有模式):用加号后缀(+)表示,目前只有Java支持占有模式,通常比较少用。



Pattern是不可变类,可供多个并发线程安全使用。Matcher类提供了如下几个常用方法:

➢ find():返回目标字符串中是否包含与Pattern匹配的子串。

➢ group():返回上一次与Pattern匹配的子串。

➢ start():返回上一次与Pattern匹配的子串在目标字符串中的开始位置。

➢ end():返回上一次与Pattern匹配的子串在目标字符串中的结束位置加1。

➢ lookingAt():返回目标字符串前面部分与Pattern是否匹配。

➢ matches():返回整个目标字符串与Pattern是否匹配。

➢ reset():将现有的Matcher对象应用于一个新的字符序列。


上一篇 下一篇

猜你喜欢

热点阅读