Java SE
1.Object
在Java类继承结构中,java.lang.Object类位于顶端。如果定义一个Java类时没有使用extends关键字声明其父类,则其父类为java.lang.Object类。Object定义了“对象”的基本行为,被子类默认继承。
public class Cat {
}
//等价于
public class Foo extends Object {
}
toString方法
Object类中定义有toString方法,用于返回对象的字符串表示。
所有的Java类都继承了toString方法,Object类toString方法返回的字符串形式为:“类名@ hashCode值”。
Java类可以根据需求重写toString方法以返回更有意义的信息。
public class Rect {
int x;
int y;
int width;
int height;
public void setLocation(int x1,int y1) {
x = x1;
y = y1;
}
public void setSize(int w,int h) {
width = w;
height = h;
}
public String toString() {
return "x=" + x + ",y=" + y + ",width=" + width + ",height =" + height;
}
}
equals方法
Object的equals方法用于对象 “相等” 逻辑。
equals方法的定义如下:
public boolean equals(Object obj) {
return (this == obj);
//当this和obj是同一个对象时才会返回true。
}
2.String 和 StingBuilder
String的特性(不可变)
java.lang.String用于封装字符串序列。
String类属于不可变类,即String对象一经创建后,其封装的字符串序列是不能改变的。
String str = "WhatisJava";
str = str.toUpperCase();
//toUpperCase将返回字符串的大写形式,但并不是将原字符串变大写,而是返回一个信息的字符串。
System.out.println(str);
String s1 = "Hello";
String s2 = s1;
String s3 = "word";
s1 += s3;
System.out.println(s1);//Helloword
System.out.println(s2);//Hello
System.out.println(s3);//word
//引用变量变了,String对象没有变。
String的特性(常量池)
Java可以直接使用直接量“字符序列”创建字符循环序列:String str = "HelloWord"
出于性能考虑,JVM会将字符串字面量对象缓存在常量池中。如有重复,JVM首先会在缓存池中查找,若存在直接返回。
String的基本方法
-
简单基本方法
- String toLowerCase() //返回字符串的小写形式
- String toUpperCase() //返回字符串的大写形式
- String trim() //去掉前后的空白
- boolean startsWith(String prefix) //判断字符串是否以什么开头
- boolean endsWith(String prefix) //判断字符串是否以什么结尾
- int length() //返回字符串序列的长度
-
indexOf方法
indexOf方法用于实现在字符串中检索另一个字符串。- int indexOf(String str) //在字符串中检索str,返回第一个的位置,没有返回-1
- int indexOf(String str,int fromIndex) //从fromIndex位置开始检索
- int lastIndexOf(String str) //返回最后一个出现的位置
-
charAt方法
- char charAt(int index) //用于返回字符串指定位置的字符
-
substring方法
- String substring(int beginIndex,int endIndex) //返回字符串从下标开始到结束的子字符串。
- String substing(int beginIndex) //返回从下标开始到结尾的字符串
-
getBytes方法
- byte[] getBytes(String charsetName) //按照指定编码,返回字符串的二进制序列
- byte[] getBytes() //按系统默认的编码,返回字符串的二进制序列
String s1 = "御龙林Spuer"; byte[] arr = s1.getBytes(); System.out.println(Arrays.toString(arr)); //[-27, -66, -95, -23, -66, -103, -26, -98, -105, 83, 112, 117, 101, 114]
-
split方法
String的split方法可以将字符串按照特定的分隔符拆分为字符串数组。
String[] split(String regex) //参数regex为正则表达式String s5 = "ffff 0000 1234 5678"; String[] arr = s5.split("\\s"); System.out.println(Arrays.toString(arr)); //[ffff, 0000, 1234, 5678]
StringBuilder
和String对象不同,StringBuilder封装可变的字符串,对象创建后可以通过调用方法改变其封装的字符序列。
StringBuilder常用的构造方法:
public StringBuilder()
public StringBuilder(String str)
StringBuilder常用方法 append、insert、delete和replace、reverse等,用于追加、插入、删除、翻转
- StringBuilder append(CharSequence s)
- StringBuilder append(int s)
- StringBuilder insert(int dstOffset,CharSequence s)
- StringBuilder insert(int dstOffset,int s)
- StringBuilder delete(int start,int end)
- StringBuilder replace(int start,int end,String str)
- StringBuilder reverse()
3.Commons-lang简介
commons-lang是Apache Commons项目的一个组件,针对JDK官方的java.lang包中的类提供了一些使用的补充。
StringUtils常用方法
针对字符串操作的工具类
- String repeat(String str,int reprat) //重复字符串若干次
- String join(Object[] array,String separator) //将一个数组中的元素连接成字符串
- String leftPad(String str,int Size,char padChar) //向左边填充指定字符已达到指定长度
- String rightPad(String str,int Size,char padChar) //向右边填充指定字符已达到指定长度