J-12 常见对象
API常用类
API概述;
Object类;
Scanner类;
String类;
API概述
API(Application Programming Interface)
Java API指的就是JDK中提供的各种功能的Java类。
Object类
定义
类层次结构的根类
所有类都直接或者间接的继承自该类
方法
public int hashCode()
- 返回该对象的hash值。
- 注意:
哈希值是根据哈希算法计算出来的值,与地址值有关。
public final Class getClass()
-
返回此 Object 的运行时类。
-
注意:
Class类的方法:public String getName()
以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
public String toString()
-
返回该对象的字符串表示。
-
通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
-
注意:
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())
Interger类下的一个静态方法:
public static String toHexString(int i)
以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
-
重写该方法:
手动重写:把该类的所有变量组成返回即可。
自动生成:右键 -- Source -- Gerenate toString
快捷键:shift+alt+S -- S -
注意:
直接输出对象的名称时,自动调用该对象的toString()方法。
public boolean equals(Object obj)
-
指示其他某个对象是否与此对象“相等”,默认情况下比较的是地址值。
-
比较地址值意义不大,要重写方法。
-
==:
基本类型:比较的是值是否相同
引用类型:比较的是地址值是否相同 -
看源码:
public boolean equals(Object obj) { return (this == obj); }
-
重写方法:
用来比较对象的成员变量值是否相同。-
手动重写:
判断该对象名是否是该类名的一个对象
格式:对象名 instanceof 类名
-
自动重写:右键 -- Source -- Gerenate hashCode(),equals()
快捷键:shift+alt+S -- h
-
protected void finalize()
- 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。
- 用于垃圾回收,但何时回收不确定
protected Object clone()
- 创建并返回此对象的一个副本。
- 标记接口:告诉我们实现该接口的类就可以实现对象的复制了。
Cloneable:此类实现了 Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。 - 克隆,是复制了新的对象,改变原对象值时,克隆后的对象值不改变。
Scanner类
定义
-
JDK5以后用于获取用户的键盘输入。
-
导包:import java.util.Scanner;
-
使用方法:
Scanner sc = new Scanner(System.in);
-
System类下有一个静态的字段
public static final InputStream in; // “标准”输入流,对应着键盘录入. -
使用的构造方法
Scanner(InputStream source) 构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
方法
基本格式:
-
public boolean hasNextXxx(); 判断是否是某种类型的元素
判断是否还有下一个输入项,其中Xxx可以是Int,Double等。如果需要判断是否包含下一个字符串,则可以省略Xxx -
public Xxx nextXxx(); 获取该元素
获取下一个输入项。Xxx的含义和上个方法中的Xxx相同
默认情况下,Scanner使用空格,回车等作为分隔符
以int举例
- public boolean hasNextInt()
- public int nextInt()
常用方法
-
public int nextInt()
获取一个int值 -
public String nextLine()
获取一个String类型的值 -
出现问题:
先获取一个int值,再获取一个字符串。
解决方案:
① 先获取一个数值后,再创建一个新的键盘录入对象获取字符串。
② 把所有数据都先按照字符串获取,然后要什么就对应的转换成什么。
String类
概述
- 定义:
字符串是由多个字符组成的一串数据(字符序列)
字符串可以看成是字符数组 - 特点:
① 字符串字面值“abc”也可以看成一个字符数组。
② 字符串是常量,一旦被赋值,就不能被改变。
构造方法
- public String()
空构造 - public String(byte[] bytes)
把字节数组转成字符串,通过ASCII码转成字符串。 - public String(byte[] bytes,int offset,int length)
把字节数组的一部分转成字符串 - public String(char[] value)
把字符数组转成字符串 - public String(char[] value,int offset,int count)
把字符数组的一部分转成字符串 - public String(String original)
把字符串常量转成字符串
创建对象
-
String字面值对象
String s = "hello";
-
构造方法创建对象
String s = new String("hello");
-
区别:
前者创建一个对象(方法区中),后者创建两个对象(堆内存、方法区中)。
判断功能
-
boolean equals(Object obj)
比较字符串内容是否相同 ,区分大小写。 -
boolean equalsIgnoreCase(String str)
比较字符串内容是否相同 ,不区分大小写。 -
boolean contains(String str)
判断大字符串中是否包含小字符串 -
boolean startsWith(String str)
判断字符串是否以某个指定字符串开头 -
boolean endsWith(String str)
判断字符串是否以某个指定字符串结尾 -
boolean isEmpty()
判断字符串是否为空
内容为空String s = "";
字符串对象为空String s = null;
获取功能
- 注意:
不存在返回 *- 1 - int length()
获取字符串的长度 - char charAt(int index)
获取指定索引位置的字符 - int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
返回值为int类型,即返回的是ASCII码。 - int indexOf(String str)
返回指定字符串在此字符串中第一次出现处的索引。 - int indexOf(int ch,int fromIndex)
返回指定字符在此字符串中,从指定位置后第一次出现处的索引。 - int indexOf(String str,int fromIndex)
返回指定字符串在此字符串中,从指定位置后第一次出现处的索引。 - String substring(int start)
从指定位置开始截取字符串,默认到末尾结束 - String substring(int start,int end)
从指定位置开始到指定位置结束截取字符串,包括start索引不包括end索引(包左不包右)
转换功能
- byte[] getBytes()
把字符串转换为字节数组,打印ASCII码 - char[] toCharArray()
把字符串转换为字符数组,打印每一个字符的值 - static String valueOf(char[] chs)
把字符数组转成字符串 - static String valueOf(int i)
把int类型的数据转成字符串。
注意String类的valueOf方法可以把任意类型的数据转换为字符串 - String toLowerCase()
把字符串转成小写 - String toUpperCase()
把字符串转成大写 - String concat(String str)
把字符串拼接
其他功能
- 替换功能
String replace(char old,char new)
String replace(String old,String new)
- 去除字符串两空格
String trim()
- 按字典顺序比较两个字符串
int compareTo(String str)
①返回ASCII码的差值 hello,owo
②返回长度的差值 hello,hel