Java基础——常用类
一、Object类
1.Object类介绍
Object类是类层次结构的根,Java中所有的类都继承自这个类。
2个特征:
1.Object类是Java中唯一没有父类的类。
2.其他所有的类都继承了Object类中的方法,所以其方法的重要性不言而喻
如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类
public class Person {
…
}
等价于:
public class Person extends Object {
...
}
2.==操作符与equals方法
①==既可以比较基本数据类型,也可以比较引用数据类型。
1>基本数据类型: 判断值是否相等,相等返回true,不相等返回false
2>引用数据类型:比较的是引用数据类型在堆里面的地址值是否相等
②equals():定义在Object中
1>只能比较引用数据类型
2>在object类中,发现equals方法比较的是地址值是否相等
3.toString方法
toString()方法在Object类中定义,其返回值是String类型,内容为类名以及该对象的引用地址。
在进行String与其它类型数据的连接操作时,自动调用toString()方法。
例如:
Date now=new Date();
System.out.println(“now=”+now);
相当于
System.out.println(“now=”+now.toString());
可以根据需要在用户自定义类型中重写toString()方法
比如String 类就重写了toString()方法,返回字符串的值。
s1=“hello”;
System.out.println(s1);
相当于
System.out.println(s1.toString());
基本类型数据转换为String类型时,调用了对应封装类的 toString()方法例如:
int a=10;
System.out.println(“a=”+a);
二、Java中的字符串与String
1.Java中字符串是常量,它们的值在创建之后不能更改。
2.String类的引用可以指向不同的字符串,这是因为字符串对象虽然是不能修改的, 但是它们的地址可以共享。
String类的内存解析
java程序类似于c语言, 运行时会把程序占用的内存大致分割成几个部分,分别是stuck(栈区), Heap(堆区), Data(数据区)和代码区,其中数据区用于存放静态变量和字符串常量
String类的本质:
String类实例化对象的方法:
String类的构造函数有很多个(参数不同), 但是在平时编码中,常用的实例化对象方法无非是两种。第一种就是与其他类一样, 利用构造方法。
例如:String s = new String(“abc”);
字符串对象操作
package SX0113_1;
import org.junit.Test;
public class TestString1 {
public void test(){
//1.返回字符串长度(常用)
String str="yangshan";
System.out.println(str.length());
//2.返回指定索引位置的字符,index从0开始
System.out.println(str.charAt(0));
//4.返回字符串在某个字符串出现的位置
System.out.println(str.indexOf("g"));
//5.返回字符串在某个字符串从startpoint开始首次出现的位置,如果没有返回-1
System.out.println(str.indexOf("n", 3));
//8.boolean startsWith(String prefix):判断字符串是否以prefix开头
System.out.println(str.startsWith("n"));
//8.boolean endsWith(String suffix):判断字符串是否以suffix结尾
System.out.println(str.endsWith("n"));
}
public void test1() {
String str="yangshan";
//1.substring(int startpoint):根据startpoint去截取字符串,坐标从0开始(常用)
System.out.println(str.substring(5));
//2.substring(int start,int end):根据start开始截取,到end结束,包含头,不包含尾(常用)
System.out.println(str.substring(3, 5));
//3.replace(char oldChar,char newChar):把指定字符串替换成一个新的字符串
String str2=str.replace("g", "abc");
System.out.println(str2);
//5.trim():去掉一个字符串前后的空格(常用)
String str3=" ssss ssss sss sssss ";
System.out.println(str3);
System.out.println(str3.trim());
//6.concat(String str):连接字符串
String str4=str.concat(str3.trim());
System.out.println(str4);
//7.String[] split(string regex):根据regex将当前字符串拆分成多个字符串,返回一个字符串数组(常用)
String str5="aaa-bbb-ccc-ddd-eee";
String[] strs=str5.split("-");
for (String string : strs) {
System.out.println(string);
}
}
}
StringBuffer类介绍
StringBuffer:就是字符串缓冲区,用于存储可变字符序列的容器。
特点:
1.可以对字符串进行修改。
2.长度可变。
StringBuffer类的常用方法:
构造:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
添加:
StringBuffer append(data);
StringBuffer insert(index,data);
删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(int index):删除指定位置的元素
查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);
package SX0114_1;
public class TestStringBuffer {
public static void main(String[] args) {
// StringBuffer:可变字符串,可以在原有字符串的基础上进行添加
//String:不可变,如果在原有的字符基础上进行添加,会先看字符串常量池有没有该字符串,如果没有,开辟新的空间,造一个
StringBuffer sb=new StringBuffer();
//append():添加
sb.append("张三");
sb.append("是个人吗?");
System.out.println(sb);
//insert(index,data):在字符串的指定位置添加一个字符串,0开始
sb.insert(1, "四");
System.out.println(sb);
//删除
//delete(start,end)
sb.delete(3, 7);
System.out.println(sb);
}
}
StringBuffer:可变字符序列、线程安全、效率低
StringBuilder:可变字符序列、线程不安全、效率高
封装类:
针对八种基本定义相应的引用类型—封装类
包装类的常用方法:
实现int和Integer类之间的转换
int n = 10;
Integer in = new Integer(100);
//将int类型转换为Integer类型
Integer in1 = new Integer(n);
//将Integer类型的对象转换为int类型
int m = in.intValue();
parseInt方法
public static int parseInt(String s)
toString方法
public static String toString(int i)
该方法的作用是将int类型转换为对应的String类型。
使用示例代码如下:
int m = 1000;
String s = Integer.toString(m);
则字符串s的值是”1000”
Date and DateFormat类
Date类在java.util包中。使用Date类的无参构造方法创建的对象可以获取本地当前时间。
SimpleDateFormat可用来实现日期的格式化。
public SimpleDateFormat(String pattern):使用参数pattern指定的格式创建一个对象。
public String format(Date date):按照构造方法中指定的pattern格式化时间对象date。