什么是Object类?
(1) Object:是位于 java.lang包中的类,使用时无需导包
(2) Object类:是所有类的父类,直接父类或是间接父类
(3) Object类型的引用可以存储任意类型的对象
Object代表对象
(4) Object类中方法是每个类都默认具有的功能
Object类中的常见方法:
(1) getClass():被final修饰,允许子类继承,不能被覆盖
作用:获取引用中存储的实际对象类型
(2) int hashCode():没有被final修饰,允许子类覆盖
作用:返回对象哈希码值
(3) String toString():没有被final修饰,允许被子类覆盖
作用:返回对象的字符串形式
(4) boolean equals(Object obj):没有被final修饰,允许被子类覆盖
作用:用于比较两个对象的内容是否相等,相等-true;不相等-false
注意:
= =的应用:
= = 如果两端为基本数据类型变量,则判断变量中数值是否相等
= = 如果两端为引用,则判断引用中存储的地址是否相等
(5) void finalize():没有被final修饰,允许子类覆盖 [JVM进行性能调优涉及]
作用:垃圾回收器回收垃圾对象时,jvm自动调用
什么是包装类?
基本数据类型对应的类称为包装类.
目的:让Object统一管理所有类型的数据
8个基本数据类型提供的对应类:
位于 java.lang包中,包装类被final修饰,没有子类.
包装类的默认值均为null.
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
数据类型之间的转换:
String->int
int n = Integer.paseInt("123");
注意:参与转换的字符串必须是纯数值,否则运行报错,错误信息为:
java.lang.NumberFormatException(数值格式转换异常)
自动装箱和拆箱:
(1) JDK5.0版本提供类了自动装箱和拆箱,即基本数据类型和对应的包装类型之间相互转换
(2) 装箱和拆箱
装箱:将基本数据类型转换为对应的包装类型
Integer i1 = 12; // int- >Integer
拆箱:包装类型转换为对应的基本数据类型
Integer i1 = 12; int n = i1; // Integer -> int
什么是String类?
代表字符串:由""引起来的一个或是多个字符
位于java.lang包中,被final修饰,没有子类
获取字符串的两种方式:
(1) String str1 = "hello";
直接使用""方式获取字符串直接在串池中查看是否有需要的字符串对象;
如果串池有,则直接使用;没有需要在串池中产生一个字符串对象;
串池中的字符串对象可以被共享使用
(2) String str2 = new String("world");
利用构造方法获取字符串,首先在堆空间中创建一个字符串对象;
然后查看串池中是否存在此字符串对象;
存在-串池中就不在创建字符串对象;
不存在-串池中需要再创建一个字符串对象用于共享;
这种获取字符串的方式产生1~2个字符串对象
字符串的常见方法:
(1) int length():获取字符串的长度
注意:数组获取长度:数组名.length
(2) boolean equals(String str):判断字符串内容是否相等,相等-true;不相等-false
注意:实际开发时,比较字符串内容是否相等,必须使用equals
(3) boolean equalsIgnoreCase(String str):比较字符串的内容是否相等,而且忽略大小写
注意:实际开发时,对验证码比较无需关注大小写时可以应用
(4) char charAt(int index):根据下标获取对应的字符
注意:如果指定的下标超过字符串的下标范围,则运行报错,错误信息为:
java.lang.StringIndexOutOfBoundsException
(字符串下标越界:上越界+下越界)
String的不可变性:
(1) String字符串为字面值常量,一旦创建不能更改
(2) 由于String不可变性,完成字符串拼接时,相对效率较低
String的可变长字符串:(字符串拼接时使用)
(1) 常用的可变长字符串:位于java.lang包中
a. StringBuffer:jdk1.0版本,线程安全,效率低
b. StringBuilder:jdk5.0版本,线程不安全,效率高
(2) 常见的构造方法:
a. StringBuilder():无参数的构造方法
b. StringBuilder(String str):以 String类型的字符串创建一个变长的字符串
(3) 常见的功能方法:
字符串的拼接: StringBuilder append(参数):完成字符串的 拼接
(4) 注意:
将String转换为StringBulder:
StringBuilder sb = new StringBuilder("");
将StringBuilder转换为String:
String s = sb.toString();
String、StringBuidler、StringBuffer的区别: