一、Object
前面讲述面向对象接口的时候说过,Object是所有类的超类(父类或基类),所有的类都直接或间接的继承了这个类。
Object类中的成员方法(可在网上搜索java api文档进行查看)。
1)public int hashCode():返回对象的哈希码值,是根据哈希算法计算出来的值。
2)public final Class getClass():返回对象的运行时类。
结果:
3)public String toString():返回对象的字符串示例。
结果:
4)public boolean equals(Object o):比较对象之间是否相等。
在前面有 == 这个比较符,在基本数据类型中,比较的是数值的大小,在引用数据类型中,比较的是地址值是否相同。 使用equals()方法,默认比较的是地址值,这个比较意义不大,所以要重写这个方法,重写这个方法也是使用开发工具自动生成,快捷键(alt+Insert)。一般重写equals()方法时,都是和hashCode()方法一起重写。
结果:
5)protected void finalize():由对象的垃圾回收期调用,用于回收垃圾对象,具体回收时机由系统决定。
6)protected Object clone():某个类实现了Cloneable接口,该方法就能“复制(克隆)”一个对象,然后重新给这个对象重新分配内存空间。
克隆分为浅克隆和深克隆,浅克隆:基本数据类型属性完全重新创建,引用类型属性依然和原来的对象共用,称为浅克隆;深克隆:所有数据类型的属性都完全被创建,称为深克隆。
浅克隆代码:
结果:
深克隆代码:
结果:
二、String
String称作字符串,它是由多个字符(char)组成的数据,可以看做是字符数组。
1)String的构造方法:
public String():无参构造方法
public String(byte[] bytes):把字节(byte)数组转成字符串
public String(byte[] bytes,int index,int length):把字节(byte)数组的一部分(从索引index处到指定长度)转成字符串
public String(char[] value):把字符(char)数组转成字符串
public String(char[] value,int index,int count):把字符(char)数组的一部分(从索引index处到指定长度)转成字符串
public String(String original):把字符串常量值(例如:"hello world")转成字符串
结果:
2)String的判断方法:
boolean equals(Object obj):判断两个字符串的内容是否相同,区分大小写。例如:"hello"和"HELlo"是不一样的
boolean equalsIgnoreCase(String str):判断字符串的内容是否相同,忽略大小写。例如:"hello"和"HELlo"是一样的
boolean contains(String str):判断长的字符串中是否包含短的字符串。例如"helloworld"包含了"hello"
boolean startsWith(String str):判断字符串是否以某个指定的字符串开头。例如"helloworld"是以"h"开头 或 "helloworld"是以"he"开头 或 "helloworld"是以"hel,,,"开头
boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾。例如"helloworld"是以"d"结尾或 "helloworld"是以"ld"结尾 或 "helloworld"是以"...ld"结尾
boolean isEmpty():判断字符串内容是否为空。
结果:
3 )String的转换方法:
byte[] getBytes():把字符串转换为字节(byte)数组。
char[] toCharArray():把字符串转换为字符(char)数组。
static String valueOf(char[] chs):把字符(char)数组转成字符串。
static String valueOf(int i):把int类型的数据转成字符串。
提示:String类的valueOf方法可以把任何类型的数据转成字符串。
结果:
String toLowerCase():把字符串内容全部转成小写。
String toUpperCase():把字符串内容全部转成大写。
String concat(String str):把字符串拼接起来和“+”功能一样,但是它们之间是有区别的。
结果:
4) 替换功能:
String replace(char old,char new):使用新的字符(char)替换旧的字符
String replace(String old,String new)使用新的字符串(String)替换旧的字符串
String trim(): 去除字符串两端空格
结果:
5)按字典顺序比较两个字符串
int compareTo(String str):区别大小写
int compareToIgnoreCase(String str):不区分大小写
结果:
6)String的截取方法:
String substring(int beginIndex):从一个索引位置开始,截取剩下的所有字符;
String substring(int beginIndex, int endIndex):返回两个索引位置之间(不包括第endIndex个字符)的所有字符;
7)String的分割方法:
public String[] split(String regex):根据某种规则去分割字符串,得到的是一个String数组
结果:
注意:字符串一旦被赋值,就不能改变。字符串还有很多方法,可以上网搜索“java api”去查看这些方法的使用。
三、正则表达式
正则表达式其实就是一种规则,它是由一些有特殊意义的字符(也称作元字符)组成,,例如:\d表示的是数字。在使用手机号码注册账号的时候,如果手机号码输入不正确,就会给出提示,这些一般都是用正则表达式去检查输入的手机号是否正确。
正则表达式规则:
1)字符
x 字符 x。例如:'a'表示字符a
\\ 反斜线字符。
\n 新行(换行)符 ('\u000A')
\r 回车符 ('\u000D')
2)边界匹配器
^ 行的开头
$ 行的结尾
\b 单词边界: 不是单词字符的地方。
3)字符类
[abc] a、b 或 c
[^abc] 任何字符,除了 a、b 或 c
[a-zA-Z] a到 z 或 A到 Z,两头的字母包括在内
[0-9] 0到9的字符都包括
4)预定义字符类
. 任何字符。. 本来就是字符,如果想单独表示 . 就要使用\.进行转义
\d 数字:[0-9]
\w 单词字符:[a-zA-Z_0-9]
5)Greedy 数量词
X? X,一次或一次也没有
X* X,零次或多次
X+ X,一次或多次
X{n} X,恰好 n 次
X{n,} X,至少 n 次
X{n,m} X,至少 n 次,但是不超过 m 次
正则表达式提供了两个类: Pattern(正则表达式编译后的表现形式)和Matcher(通过字符串调用判断方法(boolean matches(String regex))返回值获得)
结果:
公众号二维码