1、Object
1.1、equals(比较值是否相等)
引用数据类型使用“==”比较的时候,比较的是引用或者说地址。
基本数据使用“==”比较的时候,比的是值。
equals只能用于比较引用数据类型,对于包装类(String、File、Date等)特殊类来说,比较内容时不考虑是否是同一个实例。
equals覆盖:
先判断地址,相同返回true,false判断是否为null。(注意空指针)
如果其中一个为null返回false,两个都为null返回true。都不是null判断类型。
类型ture判断值,类型false返回false。
覆盖后的equals比较的是引用数据的值。
1.2、hashCode(一个编码)
通过hash函数(算法)组成散列码值。代表在hash表中的位置,与内存地址不同。主要用于实现快速查找,也可用于对象的比较。
在同一个程序运行期间,同一个对象的hashCode不变。
如果两个对象相等,对应的hashCode会有相同的整数结果。
如果两个对象不相等,对应的hashCode不一定不相等。
1.3、toString()【转换为String类型】
在object类中,toString()方法默认返回当前对象的类型和地址值,可以根据用户需求重写toString方法,返回需要的信息。
引用数据类型调用toString()将其转换为String类型。
基本数据类型应转换为对应的包装类型,再转换为String类型。
2、Objects
public static boolean equals(Object a,Object b),比较时防止空指针异常。
public static int hashCode(Object a),返回哈希值,为空反0;
public static String toString(Object o),防止空指针异常,转换String。
public static boolean isNull(Object o),java8开始,判断是否为空。
public static boolean nonNull(Object o),java8开始,判断是否非空。
3、String类
双引号括起来的字符序列就是字符串。指向字符串常量池,一旦创建不能改变。如果需要更改只能重新创建(指向别的地址)。
常用方法:
public int length(),获得长度。
public boolean equals(Object o),比较两个字符串是否相等,区分大小写。(能报空指针)
public Boolean equalsIgnoreCase(String s),不区分大小写比较值。
public int compareTo(String s),从前往后比较字符串是否相等,只要一个不同就返回差值(this-s)。比如:x="abc".compareTo("bbc") x= - 1;
public int compareToIgnoreCase(String s) 不区分大小写比较大小
public boolean startsWith(String prefix),判断前缀开始
public boolean endsWith(String suffix),判断后缀结束
public char charAt(int index),判断指定下标的字符
public int indexOf(int ch【char值】),判断指定字符的下标
public int indexOf(int ch,int fromIndex),判断指定位置开始的字符下标
public int indexOf(String s),判断指定字符串的下标
public int indexOf(String s,int fromindex),判断指定位置开始的字符串下标
public int lastIndexOf(String s),判断最后一次出现的下标
public String subString(int beginIndex),从指定位置开始,截取后边全部字符串
public String subString(int beginIndex,int endIndex),截取从指定位置到end-1。
public String trim(),去除两边的空格
public String replace(char old,char new) ,全部替换
public String replace(String target,String replacement),全部替换
public String replaceAll(String regex,String replacement),支持正则的全部替换
public String toUpperCase(),转大写
public String toLowerCase(),转小写
public byte[] getBytes(),将字符串转换为字节数组,通过new可以重新转换为字符串。
public char[] toCharArray() ,将字符串转换为字符数组。new可以回转。
publit String[] split(String regex),根据指定字符拆分数组,支持正则。注:\\. \\|
public String concat(String str),拼接字符串
public static String valueOf(参数列表)将参数的值转换为字符串。
4、Math类
PI:圆周率 E:自然对数
public static double ceil(double d),向上取整。5.5->6
public static double floor(double d),向下取整。5.5->5
public static long round(double d),四舍五入。
public static double abs(double d),绝对值
public static double min(double d),最小值
public static double man(double d),最大值
public static double sqrt(double d),返回平方根
public static double random(),随机数。
5、StringBuffer类和StringBuilder类
与String相比,String为不可变字符串,对于String操作频繁会导致效率低下。
StringBuffer和StringBuilder基本相似,两者的内容均可以被修改,但是StringBuffer速度相对慢,线程安全。StringBuilder速度相对快,但线程不安全。
StringBuffer类
StringBuffer buf1=new StringBuffer();创建一个StringBuffer实例
StringBuffer buf2=new StringBuffer(容量);可以初始自带容量
StringBuffer buf3=new StringBuffer(myString);可以含有相应字符序列,容量为长度+16
public int length(),返回长度
public int capcity(),返回容量
public void setLength(int newLength),设置容量
public char charAt(int index),返回指定位置的字符
public void setCharAt(int index , char ch ),设置指定位置的字符
public void reverse(),将StringBuffer反转
public StringBuffer append(String s),向对象的末尾添加字符(无需接收)
public StringBuffer insert(int offset,String str)指定数据插入到指定位置
public StringBuffer delete(int start ,int end),删除指定位置字符 start到end-1
public StringBuffer deleteCharAt(int index),删除指定位置字符
StringBuilder与StringBuffer相比,功能基本相同,更适用于单线程。