Java基础:Day13笔记内容 ( Object类、StringBuffer类)

来源:互联网 发布:windows远程连接linux 编辑:程序博客网 时间:2024/05/17 06:39

1.Object类
每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
构造方法摘要: Object()
成员方法:
public int hashCode():返回对象的哈希吗值.
这个哈希码值是将对象的物理地址值转成一个int数实现的。
相同的对象,hashCode()值一定相同。
物理地址不同的对象,hashCode()值一般不相同。
示例
class ObjectDemo {
public static void main(String[] args) {
Object obj = new Object();//创建一个Object类的对象
//输出打印Object对象的哈希值
System.out.println(obj.hashCode());
Object obj2 = new Object();
System.out.println(obj2.hashCode());
//把创建的第一个Object类的对象赋值给新的对象
Object obj3 = obj;
System.out.println(obj3.hashCode());
}
}
运行结果(这个结果每次运行都会不同)
这里写图片描述

2.Class类
这个类型的实例代表一个已加载的.class文件对象.
String getName():返回字节码对象表示的类型的字符串形式
示例
class ObjectDemo2 {
public static void main(String[] args) {
ObjectDemo2 obj = new ObjectDemo2();
ObjectDemo2 obj2 = new ObjectDemo2();
//返回ObjectDemo2对象的.class字节码对象文件
Class c = obj.getClass();
Class c2 = obj2.getClass();
System.out.println(c == c2); //true
String str = c.getName();
System.out.println(str); //ObjectDemo2
String str2 = obj.toString();//返回一个字符串对象
System.out.println(str2);
System.out.println(obj);
}
}
运行结果
这里写图片描述
这里写图片描述

3.String类
1.字符串对象一旦被初始化就不会被改变.重新赋值只是改变引用对象的地址值.
String类重写了equals方法 , 该方法只会比较字符串内容.
代码:
public static void main(String[] args) {
String s =”abc”;
String s1 = new String(“abc”);
System.out.println(s.equals(s1));
}
结果:
这里写图片描述

String类常用方法
1,获取:
int length() 获取字符串中字符的个数(长度).
char charAt(int index) 根据位置获取字符。
int indexOf(int ch) 获取字符ch在字符串中第一次出现的位置.
int indexOf(int ch,int from):从指定位置from查找ch第一次出现位置
int indexOf(String str); 获取str在字符串中第一次出现的位置.
int indexOf(String str,int from);根据字符串获取在字符串中的第一次出现位置.
int lastIndexOf(int ch) 获取字符ch在字符串中最后出现的位置
int lastIndexOf(int ch,int from):从指定位置from查找ch最后出现位置 int lastIndexOf(String str);获取str在字符串最后出现的位置
int lastIndexOf(String str,int Index);从指定位置from查找str最后出现位置
获取字符串中一部分字符串:
String substring(int begin, int end)//包含begin 不包含end 。
String substring(int beginIndex);
代码:
private static void stringMethodDemo_1() {
String s = “abcdae”;
System.out.println(“length:”+s.length());//6 System.out.println(“char:”+s.charAt(2));//c//StringIndexOutOfBoundsException
System.out.println(“index:”+s.indexOf(‘k’));//0//-1 我们可以根据-1,来判断该字符或者字符串是否存在。
System.out.println(“lastIndex:”+s.lastIndexOf(‘a’));//4
System.out.println(“substring:”+s.substring(2,4));
}
结果:
这里写图片描述

2,转换:
String[] split(String regex) 将字符串变成字符串数组(字符串的切割)
char[] toCharArray() 将字符串变成字符数组。
byte[] getBytes() 将字符串变成字节数组。
将字符串中的字母转成大小写。
String toUpperCase():大写
String toLowerCase():小写
将字符串中的内容进行替换
String replace(char oldch, char newch);//替换所有
String replace(String s1,String s2);//替换第一次出现
String trim() 将字符串两端的空格去除。
字符串进行连接 String concat(string);
代码:
private static void stringMethodDemo_2() {
String s = “张三,李四,王五”;
String[] arr = s.split(“,”);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
char[] chs = s.toCharArray();
for (int i = 0; i < chs.length; i++) {
System.out.println(chs[i]);
}
s = “ab你”;
byte[] bytes = s.getBytes();
for (int i = 0; i < bytes.length; i++) {
System.out.println(bytes[i]);
}
System.out.println(“Abc”.toUpperCase());
String s1 = “java”;
String s2 = s1.replace(‘q’, ‘z’);
System.out.println(s1==s2);//true
System.out.println(“-“+” ab c “.trim()+”-“);
}
结果:
这里写图片描述

3,判断
boolean equals(Object obj); 两个字符串内容是否相同
boolean equalsIgnoreCase(string str);忽略大写比较字符串内容。
boolean contains(string str);字符串中是否包含指定字符串?
boolean startsWith(string);字符串是否以指定字符串开头
boolean endsWith(string);字符串是否以指定字符串结尾
代码:
private static void stringMethodDemo_3() {
String s = “abc”;
System.out.println(s.equals(“ABC”.toLowerCase()));
System.out.println(s.equalsIgnoreCase(“ABC”));
System.out.println(s.contains(“cc”));
String str = “ArrayDemo.java”;
System.out.println(str.startsWith(“Array”));
System.out.println(str.endsWith(“.java”));
System.out.println(str.contains(“Demo”));
}
结果:
这里写图片描述

int compareTo(String other)
按字典顺序比较两个字符串大小, 大于返回正数, 小于返回负数, 相等返回0.
代码:
private static void stringMethodDemo_4() {
System.out.println(“abc”.compareTo(“aqz”));
}
结果:
这里写图片描述

4.StringBuffer类
用于存储数据的容器。
1,长度的可变的。
2,可以存储不同类型数据。
3,最终要转成字符串进行使用。
4,可以对字符串进行修改。
添加
StringBuffer append(data);
StringBuffer insert(index,data);
代码:
public static void bufferMethodDemo(){
StringBuffer sb = new StringBuffer();//创建缓冲区对象。
sb.append(4).append(false);
sb.insert(1, “haha”);
System.out.println(sb);
}
结果:
这里写图片描述
删除
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(int index):删除指定位置的元素
代码:
StringBuffer sb = new StringBuffer(“abce”);
sb.delete(1, 3);
System.out.println(sb);
结果:
这里写图片描述
查找
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
修改
StringBuffer replace(start,end,string);
void setCharAt(index,char);
StringBuffer sb = new StringBuffer(“abce”);
sb.setCharAt(2, ‘q’);
System.out.println(sb);
sb.replace(1, 3, “nba”);
System.out.println(sb);
结果:
这里写图片描述
5.StringBuilder类
jdk1.5以后出现, 功能和StringBuffer一模一样, 不同的是:
StringBuffer是线程同步的。通常用于多线程。
StringBuilder是线程不同步的。通常用于单线程。 它的出现提高效率。

部分笔记内容,整个笔记一共27天,打包下载:
网盘地址——链接:http://pan.baidu.com/s/1c1iem6c 密码:8lj8

0 0