Object

Object:是类层次结构的根类.每个类都使用 Object 作为超类(父类)

Object几个常用方法:

public int hashCode() : 返回该对象的哈希码值,把它理解地址值(不是实际意义的地址值)
public final Class getClass() : 返回此 Object 的运行时类

Class类中有一个方法:

public String getName() : 以 String 的形式返回此Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。返回值是Class

public String toString(); 返回该对象的字符串表示
直接输出对象名称 : 实际执行了Object中的toString(),输出的全类名@十六进制数据

注意 : 如果不想让toString()直接输出的是一个地址值(对象的地址值),就需要重写Object中的toSring(),一般情况:自动生成即可 ,建议所有子类都重写此方法。

public boolean equals(Object obj) : 指示其他某个对象是否与此对象“相等”。

==:比较的值相等(地址值)
equals:本身属于Object类中的方法,默认比较的是地址值是否相同

按照正常情况:equals方法底层实际执行的两个对象在==,比较是地址值;假如:学生的年龄和姓名一致,看成同一个人, 在自定义的类中,重写Object中的equals()方法,比较是两个对象的成员变量的值是否相同. 自动生成即可

**rotected Object clone()**创建并返回此对象的一个副本, Object 类的 clone 方法执行特定的复制操作。首先,如果此对象的类不能实现接口 Cloneable,则会抛出 CloneNotSupportedException。

注意 : 所有的数组都被视为实现接口 Cloneable

数组复制的5种方法:

1、“=”,相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变

2、使用FOR循环,将数组的每个元素复制或者复制指定元素,不过效率差一点

3、使用clone()方法,得到数组的值,而不是引用,不能复制指定元素,灵活性差一点

int[] src={1,3,5,6,7,8};
int[] dest;
dest=(int[]) src.clone();//使用clone创建副本,注意clone要使用强制转换

4、使用System.arraycopy()方法,推荐使用,效率最高

int[] src={1,3,5,6,7,8};
int[] dest = new int[6];
System.arraycopy(src, 0, dest, 0, 6);

5、Arrays.copyOf(),不是System的方法,而是Arrays的方法,其效率比不上 arraycopy的.

Scanner

Scanner类: 简单文本扫描器。

键盘录入的步骤:

1)需要创建键盘录入对象
Scanner scan =new Scanner(System.in);
2)导入包:import java.util.Scanenr; ctrl+shift+o
3)接收数据
XXX 变量名= sc.nextXXX();

构造方法:
public Scanner(InputStream source): 以输入流的形式录入数据的
InputStream:字节输入流:
InputStream in = System.in ; //底层执行返回的是一个字节输入流(标准输入流)

Scanner类的一些常见的方法:

XXX 变量名 = 键盘录入对象.nextXXX();

在Scanner类中它提供一个判断功能:

public boolean hasNextXXX():当前扫描器判断是否有下一个可以录入的XXX类型数据
nextXXX();

java.util.InputMismatchException:录入的数据和接收的数据类型不匹配异常

String

String:表示字符串:

字符串是常量;它们的值在创建之后不能更改。

String是一种特殊的引用类型:

默认值:null

String字符串的最大的特点:

字符串一旦被赋值,其值不能被改变

String的构造方法:

String():无参构造

String(byte[] bytes) :将字节数转换成字符串

public String(byte[] bytes, int index,int length) : 将字节数组的一部分转换成字符串

public String(char[] value):将字符数组转化成字符串

public String(char[] value, int index, int count):将字符数组的一部分转换成字符串

public String(String original):将一个字符串常量构造成一个字符串对象

String常用的方法:

public int length() : 返回此字符串的长度

String类的常用的判断功能:

boolean equals(Object obj):将此字符串与指定的对象比较
boolean equalsIgnoreCase(String str) : 将此 String 与另一个 String 比较,不考虑大小写

boolean contains(String str): 判断当前大川中是否包含子字符串 (重点)

boolean startsWith(String str): 以当前str字符串开头(重点)

boolean endsWith(String str): 以当前str字符串结尾(重点)

boolean isEmpty():判断字符串是否为空

public String concat(String str):字符串的特有功能:拼接功能和+拼接符是一个意思

String类的常用获取功能:

public int length():获取字符串的长度

public char charAt(int index) 返回指定索引处的 字符

public int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引

问题:既然传入的字符:这里为什么用int类型

'a’和97 都表示a

public int indexOf(int ch,int fromIndex) 返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。

public int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引

public int indexOf(String str,int fromIndex) 回在此字符串中第一次出现指定字符串处的索引,从指定的索引开始搜索。

截取功能:

public String substring(int beginIndex):从指定位置开始截取,默认截取到末尾,返回新的字符串

public String substring(int beginIndex, int endIndex):从指定位置开始到指定位置末尾结束,包前不包含

String的常用转换功能:

public byte[] getBytes() : 将字符串转换为字节数组

toCharArray() : 将字符串转换成字符

public char[] toCharArray() : 将字符串转换成字符数组(重点)

public static String valueOf(int i) : 将int类型的数据转换成字符串(重点),这个方法可以将任何类型的数据转化成String类型

public String toLowerCase() : 转成小写

public String toUpperCase() : 字符串中所有的字符变成大写

String类型的其他功能:

public String replace(char oldChar,char newChar) : 将大字符串中的某个字符替换掉成新的字符

public String replace(String oldStr,String newStr) : 将大串中的某个子字符串替换掉

public String trim() : 去除字符串两端空格

public int compareTo(String anotherString) : 按字典顺序比较两个字符串