黑马程序员——API对象—Object类、String类、StringBuffer、包装类
2014-11-10 18:26
525 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------
一、Object类
(1)是定义在java.lang包下的,是所有类的超类。所有类都直接或者间接的继承自Object类。
父类:超类,根类,基类。
子类:派生类。
(2)要掌握的方法:
public String toString():返回对象的字符串表示形式。
默认情况下的组合:类的全路径名称+@+对象的哈希值的十六进制表示。
这种做法对我们来说,一般没有意义,所以,建议重写。
重写做法:一般是把所有的成员变量组合成一个字符串返回。
实在不愿意自己写,自动生成。
public boolean equals(Object obj):比较对象的地址值是否相同。
默认情况下,比较的是对象的地址值是否相同。
如果有自己的特殊需求,请重写Object类的该方法。
怎么重写呢?
引用类型用equals()方法。
基本类型用==号即可。
(3)面试题:
==和equals()的区别?
==:
可以比较基本类型,也可以比较引用类型。
比较基本类型,比较的是值是否相同。
比较引用类型,比较的是地址值是否相同。
equals:
只能比较引用类型。
默认情况下,比较的是地址值是否相同。
如果想比较内容,请自己重写Object类的equals()方法。
二、String类的常用方法
1、判断
1.1 boolean equals(Object); //判断传入的字符串是否与调用的字符串字符序列是否相同,相同就返回true否则false
1.2 boolean equalsIgnoreCase(string); //判断传入的字符串是否与调用的字符串字符序列是否相同,不区分大小写,相同就返回true否则false
1.3 boolean contains(string); //判断传入的字符串是否被调用的字符串包含
1.4 boolean startsWith(string); //判断调用的字符串是否以传入的字符串开头
1.5 boolean endsWith(string); //判断调用的字符串是否以传入的字符串结尾
1.6 boolean isEmpty(); //判断字符串是否为空
2、获取
2.1 int length(); //获取字符串的长度
2.2 char charAt(index); //通过索引获取对应的字符
2.3
int indexOf(int ch); //通过传入int数或者是字符找对应索引
int idnexOf(int ch,fromIndex); //在指定fromIndex的位置查找传入的字符
2.4
int indexOf(string str); //通过传入字符串查找字符串所对应的索引
int idnexOf(string str,fromIndex); //通过指定fromIndex的位置查找传入的字符串
2.5
int lastIndexOf(ch); //通过传入的字符从后向前找字符的索引值,把从后向前第一次找到的索引值返回
int lastIndexOf(ch,fromIndex): //通过指定fromIndex的位置,从后向前查找字符,把从后向前第一次找到的索引值返回
2.6
int lastIndexOf(string); //通过传入的字符串,从后向前查找,将第一次找到字符串中第一个字符的索引返回
int lastIndexOf(string,fromIndex): //通过指定fromIndex的位置,从后向前查找对应字符串,将第一次找到字符串中第一个字符的索引返回
2.7
String substring(start); //通过传入的索引值开始向后截取,截取的是索引到length
String substring(start,end); //通过传入的两个索引值截取,有开始有结尾,包含头不包含尾
3、替换。
3.1 String replace(oldChar,newChar); //将newChar替换OldChar,如果OldChar不存在,原字符串直接赋值给替换后字符串
3.2 String replace(string,string);
4、切割。
String[] split(regex); //通过regex切割字符串,切割后会产生一个字符串数组
String s = "老王 老刘 老李";
String[] arr = s.split(" ");
5、去除字符串两空格。
String trim();
6、比较
String str = "ab";
String str1 = "bc";
int num = str.compareTo(str1); //如果str比str1大的话,返回的正数
7、String类面试题
1.判断定义为String类型的s1和s2是否相等
2.下面这句话在内存中创建了几个对象?
3.判断定义为String类型的s1和s2是否相等
4.判断定义为String类型的s1和s2是否相等
5.判断定义为String类型的s1和s2是否相等
二.StringBuffer的常用方法
1,添加
1.1 StringBuffer append(int x); //在缓冲区的末尾追加
1.2 StringBuffer insert(int index,String str);
//在指定索引位置添加
2,删除
2.1 StringBuffer delete(int start, int end);
//包含头索引,不包含尾部索引
2.2 StringBuffer delete(0,sb.length); //清空缓冲区
sb = new StringBuffer();
sb.append("aaaaa");
sb = new StringBuffer();
2.3 StringBuffer deleteCharAt(int index); //根据指定的索引删除索引对应的元素
3,修改
3.1 StringBuffer replace(int start,int end,string);//用String替换,包含头不包含尾
3.2 void setCharAt(int index ,char); //修改,把指定索引位置的值改成传入的char值
3.3 StringBuffer reverse(); //将缓冲区的元素反转
3.4 void setLength(int len); //根据传入的len值截取缓冲区的长度
3.5 toString() //转换成String
4,查找
4.1 int indexOf(str); //查找str在缓冲区第一次出现的位置
4.2 int lastIndexOf(str); //从后向前查找查找str在缓冲区第一次出现的位置
三.StringBuilder和StringBuffer
1.StringBuilder和StringBuffer与String的区别
StringBuilder和StringBuffeer是可变字符序列
String是不变得,一但被初始化,就不能改变
2.StringBuilder和StringBuffer的区别
StringBuilder是线程不安全的,所以效率比较高,1.5版本出现
StringBuffer是线程安全的,效率相对较低,1.0版本出现的
四.包装类
1.什么是包装类
8种基本数据类型都会对应一个包装类
int是Integer, char是Character, 其他都是首字母大写double Double short Short boolean Boolean
2.什么时候使用
集合的泛型中只能写包装类型,后面的课程中会学到集合, 集合是只能装对象的, 而基本数据类型不是对象不能直接装入,在JDK5之前, 如果想把基本数据类型装入集合, 必须人工的进行包装(转为包装类对象),JDK5之后, 基本数据类型和包装类之间可以自动的互相转换了
3.包装类常用的方法
static int parseInt(String s) //将数字字符串转换成数字,如果是非数字字符串会转换失败,抛异常
Integer.toBinaryString() //将一个十进制数字,转换成二进制的字符串
Integer.toOctalString() //将一个十进制数字,转换成八进制的字符串
Integer.toHexString() //将一个十进制数字,转换成十六进制的字符串
static long parseLong(String s)
static double parseDouble(String s)
static char forDigit(int digit, int radix)// radix代表的是进制例如二进制就传2,八进制就传8,digit代表后面进制里面的元素,而且不能超出后面进制的范围
-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
一、Object类
(1)是定义在java.lang包下的,是所有类的超类。所有类都直接或者间接的继承自Object类。
父类:超类,根类,基类。
子类:派生类。
(2)要掌握的方法:
public String toString():返回对象的字符串表示形式。
默认情况下的组合:类的全路径名称+@+对象的哈希值的十六进制表示。
这种做法对我们来说,一般没有意义,所以,建议重写。
重写做法:一般是把所有的成员变量组合成一个字符串返回。
实在不愿意自己写,自动生成。
public boolean equals(Object obj):比较对象的地址值是否相同。
默认情况下,比较的是对象的地址值是否相同。
如果有自己的特殊需求,请重写Object类的该方法。
怎么重写呢?
<span style="white-space:pre"> </span>public boolean equals(Object obj) { if(this == obj) { return true; } if(!(obj instraceof Student)) { return false; } Student s = (Student) obj; return this.name.equals(s.name) && this.age == s.age; }如果有多个成员变量,把多个比较用&&连接即可。
引用类型用equals()方法。
基本类型用==号即可。
(3)面试题:
==和equals()的区别?
==:
可以比较基本类型,也可以比较引用类型。
比较基本类型,比较的是值是否相同。
比较引用类型,比较的是地址值是否相同。
equals:
只能比较引用类型。
默认情况下,比较的是地址值是否相同。
如果想比较内容,请自己重写Object类的equals()方法。
二、String类的常用方法
1、判断
1.1 boolean equals(Object); //判断传入的字符串是否与调用的字符串字符序列是否相同,相同就返回true否则false
1.2 boolean equalsIgnoreCase(string); //判断传入的字符串是否与调用的字符串字符序列是否相同,不区分大小写,相同就返回true否则false
1.3 boolean contains(string); //判断传入的字符串是否被调用的字符串包含
1.4 boolean startsWith(string); //判断调用的字符串是否以传入的字符串开头
1.5 boolean endsWith(string); //判断调用的字符串是否以传入的字符串结尾
1.6 boolean isEmpty(); //判断字符串是否为空
2、获取
2.1 int length(); //获取字符串的长度
2.2 char charAt(index); //通过索引获取对应的字符
2.3
int indexOf(int ch); //通过传入int数或者是字符找对应索引
int idnexOf(int ch,fromIndex); //在指定fromIndex的位置查找传入的字符
2.4
int indexOf(string str); //通过传入字符串查找字符串所对应的索引
int idnexOf(string str,fromIndex); //通过指定fromIndex的位置查找传入的字符串
2.5
int lastIndexOf(ch); //通过传入的字符从后向前找字符的索引值,把从后向前第一次找到的索引值返回
int lastIndexOf(ch,fromIndex): //通过指定fromIndex的位置,从后向前查找字符,把从后向前第一次找到的索引值返回
2.6
int lastIndexOf(string); //通过传入的字符串,从后向前查找,将第一次找到字符串中第一个字符的索引返回
int lastIndexOf(string,fromIndex): //通过指定fromIndex的位置,从后向前查找对应字符串,将第一次找到字符串中第一个字符的索引返回
2.7
String substring(start); //通过传入的索引值开始向后截取,截取的是索引到length
String substring(start,end); //通过传入的两个索引值截取,有开始有结尾,包含头不包含尾
3、替换。
3.1 String replace(oldChar,newChar); //将newChar替换OldChar,如果OldChar不存在,原字符串直接赋值给替换后字符串
3.2 String replace(string,string);
4、切割。
String[] split(regex); //通过regex切割字符串,切割后会产生一个字符串数组
String s = "老王 老刘 老李";
String[] arr = s.split(" ");
5、去除字符串两空格。
String trim();
6、比较
String str = "ab";
String str1 = "bc";
int num = str.compareTo(str1); //如果str比str1大的话,返回的正数
7、String类面试题
1.判断定义为String类型的s1和s2是否相等
<span style="font-size:14px;">String s1 = "abc"; String s2 = "abc"; System.out.println(s1 == s2); System.out.println(s1.equals(s2));</span>
2.下面这句话在内存中创建了几个对象?
String s1 = new String("abc");
3.判断定义为String类型的s1和s2是否相等
String s1 = new String("abc"); String s2 = "abc"; System.out.println(s1 == s2); ? System.out.println(s1.equals(s2)); ?
4.判断定义为String类型的s1和s2是否相等
String s1 = "a" + "b" + "c"; String s2 = "abc"; System.out.println(s1 == s2); ? System.out.println(s1.equals(s2)); ?
5.判断定义为String类型的s1和s2是否相等
String s1 = "ab"; String s2 = "abc"; String s3 = s1 + "c"; System.out.println(s3.equals(s2)); ?
二.StringBuffer的常用方法
1,添加
1.1 StringBuffer append(int x); //在缓冲区的末尾追加
1.2 StringBuffer insert(int index,String str);
//在指定索引位置添加
2,删除
2.1 StringBuffer delete(int start, int end);
//包含头索引,不包含尾部索引
2.2 StringBuffer delete(0,sb.length); //清空缓冲区
sb = new StringBuffer();
sb.append("aaaaa");
sb = new StringBuffer();
2.3 StringBuffer deleteCharAt(int index); //根据指定的索引删除索引对应的元素
3,修改
3.1 StringBuffer replace(int start,int end,string);//用String替换,包含头不包含尾
3.2 void setCharAt(int index ,char); //修改,把指定索引位置的值改成传入的char值
3.3 StringBuffer reverse(); //将缓冲区的元素反转
3.4 void setLength(int len); //根据传入的len值截取缓冲区的长度
3.5 toString() //转换成String
4,查找
4.1 int indexOf(str); //查找str在缓冲区第一次出现的位置
4.2 int lastIndexOf(str); //从后向前查找查找str在缓冲区第一次出现的位置
三.StringBuilder和StringBuffer
1.StringBuilder和StringBuffer与String的区别
StringBuilder和StringBuffeer是可变字符序列
String是不变得,一但被初始化,就不能改变
2.StringBuilder和StringBuffer的区别
StringBuilder是线程不安全的,所以效率比较高,1.5版本出现
StringBuffer是线程安全的,效率相对较低,1.0版本出现的
四.包装类
1.什么是包装类
8种基本数据类型都会对应一个包装类
int是Integer, char是Character, 其他都是首字母大写double Double short Short boolean Boolean
2.什么时候使用
集合的泛型中只能写包装类型,后面的课程中会学到集合, 集合是只能装对象的, 而基本数据类型不是对象不能直接装入,在JDK5之前, 如果想把基本数据类型装入集合, 必须人工的进行包装(转为包装类对象),JDK5之后, 基本数据类型和包装类之间可以自动的互相转换了
<span style="font-size:14px;">Integer i = 10; int x = i + 20; Integer i1 = 98; Integer i2 = 98; i1 == i2? Integer i3 = 198 Integer i4 = 198 i3== i4</span>
3.包装类常用的方法
static int parseInt(String s) //将数字字符串转换成数字,如果是非数字字符串会转换失败,抛异常
Integer.toBinaryString() //将一个十进制数字,转换成二进制的字符串
Integer.toOctalString() //将一个十进制数字,转换成八进制的字符串
Integer.toHexString() //将一个十进制数字,转换成十六进制的字符串
static long parseLong(String s)
static double parseDouble(String s)
static char forDigit(int digit, int radix)// radix代表的是进制例如二进制就传2,八进制就传8,digit代表后面进制里面的元素,而且不能超出后面进制的范围
<span style="font-size:14px;">String s = "123"; int x = Integer.parseInt(s); String s = "abc"; char ch = Character.parseChar(s);</span>
-------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
相关文章推荐
- 黑马程序员------API(String类,StringBuffer,StringBuilder及基本数据类型包装类)
- 黑马程序员——java第十三天:String类、StringBuffer、StringBuilder、基本数据类型对象包装类、进制转换
- 黑马程序员 --- String类 StringBuffer 基本数据类型对象包装类
- 黑马程序员——Java基础:String类、StringBuffer、基本数据类型对象包装类
- 黑马程序员 常用对象API-- String类、Stringbuffer、StringBuilder总结
- 黑马程序员—Java的String类以及Java基本数据类型对象包装类
- 黑马程序员——String类,StringBuffer,基本数据类型包装类
- 黑马程序员——Java基础——String类、StringBuffer类、StringBuilder类、基本数据类型对象包装类操作、正则表达式应用
- 黑马程序员——String类和基本数据类型对象包装类
- 黑马程序员——Java基础---String类和基本数据类型对象包装类
- 黑马程序员--Java基础之String类和基本数据类型对象包装类
- 【黑马程序员】------java基础----String类、StringBuffer(StringBuilder)、基本数据类型包装类
- 黑马程序员:API及基本数据类型的对象包装类
- 黑马程序员——Java之String类、基本数据类型对象包装类等
- String类、 StringBuffer、基本数据类型对象包装类
- 黑马程序员----论String,StringBuffer,StringBuilder,基本数据类型对象包装类
- 黑马程序员——java基础知识之String类和基础数据类型对象包装类
- 黑马程序员_面向对象三(异常Exception,包package,String类,StringBuffer)
- 黑马程序员——常用API(StringBuilder和StringBuffer以及基本数据类型包装类)
- 黑马程序员_JAVA学习日记_JAVA中API中对象String类的补充