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) : 按字典顺序比较两个字符串