Object 类
equals
Object 类的equals()方法默认在比较两个对象的地址值是否相同,但是老是比较地址值意义不大,我们想要比较两个对象的成员变量是否相同,如果相同,我们认为两个对象就相等。也就是说,子类想要按照他的比较方式来比较,那么子类要重写equals()方法。
“张三” == “张三” == 比不出来两个字符串字面上的内容是否相同。如果要比较两个字符串字面上的内容是否相同,要调用equals()方法。
-
instanceof 判断一个引用是不是该类型的一个引用。
-
== 和equals的区别
- == 是比较运算符,既可以比较基本数据类型,也可以比较引用数据类型。==比较基本数据类型,比较的是两个值是否相等,比较引用类型,比较的是地址值是否相等。
- equals()是Object类中的方法,只能比较引用类型,默认比较的是两个对象的地址值是否相等。语法:s1.equals(s1)
- 有些类,会认为父类Object类中equals()方法的默认比较方式,意义不大,会对equals()方法进行重写。
- 我们自定义的类,会重写时,回去比较两个对象的成员变量值是否相同。
-
不比较地址值,比较两个对象的成员变量是否相同
clone
克隆时,需要给被克隆类打上一个标记接口(class Dog implements Cloneable{}),目的是让虚拟机支持克隆操作
-
浅克隆
就是克隆一个对象的时候,如果被克隆的对象中维护了另外一个类的对象,这时候只是克隆另外一个对象的地址,而没有把 另外一个对象也克隆一份。
Scanner
-
Scanner
构造一个新的Scanner,它生成的值是从指定的输入流扫描的。
public static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
- nextXXX 系列的方法,录入int类型、Double类型、字符串类型数据
sc.nextInt();sc.nextDouble();sc.nextLine(); - hasNextXxx() 判断下一个是否是某种类型的元素, 其中Xxx可以是Int, Double等。
如果需要判断是否包含下一个字符串,则可以省略Xxx
- nextXXX 系列的方法,录入int类型、Double类型、字符串类型数据
String
字符串:就是由一个或多个字符组成的序列
字符串可以看成是字符数组,每一个字符从左往后编有索引,从0开始
String 类代表字符串。
-
Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。
-
字符串是常量;它们的值在创建之后不能更改。
-
String s = new String(“hello”) 和String s =“hello”;的区别
先在堆中开辟字符串常量池,再new对象
String s = new String(“hello”)创建了两个对象
String s ="hello"创建一个对象
- 相同的字符串地址相同
- intern()取这个字符串在常量池的地址值
-
String():空参构造 初始化一个新创建的 String 对象,使其表示一个空字符序列。
String s = new String();
String 类重写了父类的toString方法,打印的是字符串字面值空串:""
-
public String( byte[] bytes):把字节数组转成字符串
-
String类 方法
-
判断两个字符串字面上的内容是否相同,区分大小写
boolean b = "abc".equals("abc");
-
不区分大小写比较
b = "abc".equalsIgnoreCase("ABC");
-
判断一个字符串不是空串
String str=""; boolean empty = str.isEmpty();
-
例:需求:模拟登录, 给三次机会, 并提示还有几次。
- 获取字符串长度
- 根据索引,获取字符串中的单个字符
-
- 返回指定字符在此字符串中第一次出现处的索引。如果返回 -1 表示没有找到
- 从指定的索引出开始查找改字符第一次出现的索引
- 从指定的索引出开始查找改字符第2次出现的索引
- 从后往前进行检索
- 从指定的索引出,截取到末尾返回
-
根据起始索引和终止索引截取一部分字符串,含头不含尾
-
遍历字符串,反向遍历
- 统计一个字符串中大写字母字符,小写字母字符,数字字符出现的次数。(不考虑其他字符)
- 将字符串转为字符数组并遍历
-
转大小写
String s2 = "abc".toUpperCase(); String s3 = "BcD".toLowerCase();
-
将数字转化成字符串
int num=100; //"100" String str3=num+""; //拼接空串
或 (把很多种类型转化为字符串)
String s4 = String.valueOf(100); String s5 = String.valueOf(false);
-
拼接字符串
- 字符串替换