位于java.long包下
object o = 任意类型的对象
getClass() : 返回引用中指向的对象的实际类型
//判断 a 和 a1指向的实际对象 是否是同一类型
System.out.println(a.getClass() == a1.getClass()); //一致 - true; 不一致- false
int hashCode(): 返回值对象的哈希码值(对象地址的整数表现形式)
String toString(): 返回对象的字符串表现形式
Worker w = new Worker();
System.out.println(w);
打印对象就是打印toString方法的返回值(对象的字符串表现形式)
需要覆盖toString方法:
public String toString() {
return name+" "+age+" "+score;
}
boolean equals(Object o):判断当前对象和指定对象内容是否相同
注意:自定义类型需要重写equals方法
public boolean equals(Object o) {
if(this==o) return true; // 1. 自反性判断
if(o==null) return false; // 2. 非空判断
if(this.getClass()!=o.getClass())
return false; // 3. 判断类型是否一致
Worker w = (Worker)o; // 4. 强转
if(this.name.equals(w.name)&&this.age==w.age&&this.score==w.score)
return true; // 5. 逐一比较属性是否一致
return false;
}
void finalize():垃圾回收器回收垃圾对象时调用
垃圾对象:没有引用指向的对象
垃圾回收:销毁垃圾对象,释放内存空间
垃圾回收机制:
自动回收机制:JVM内存耗尽时,将不能再为新创建的对象分配空间。此时垃圾回收器回一次性回收所有垃圾对象(自动调用finalize方法)
手动回收机制:利用System.gc();通知JVM做垃圾回收。若垃圾回收器空闲则回收;若不空闲则暂不回收。
概念:八种基本数据类型对应的对象类型,称为包装类。
Integer —— int
// int --> Integer
Integer i1 = new Integer(a); //1. 通过构造方法
Integer i2 = Integer.valueOf(a); //2. 通过静态方法valueOf
// Integer-->String
String s1 = i4.toString();
String s2 = i4+"";
String ——Integer
// String-->Integer
Integer i4 = new Integer(s); //1. 通过构造方法
Integer i5 = Integer.valueOf(s); //2. 通过静态方法valueOf
// Integer-->String
String s1 = i4.toString();
String s2 = i4+"";
String —— int
// String-->int
// static int parseInt(String s) 获取s的int表现形式
int i6 = Integer.parseInt(str);
注意:字符串类型转换成Integer
、int
类型,则要求字符串内容只能是数字。
否则运行报错,报错信息为:java.lang.NumberFormatException(数字格式转换异常)
// int-->String
String str1 = 10+"";
JDK 5.0 开始,包装类类型和基本数据类型之间可以自动转换。称之为自动拆装箱
拆箱:包装类类型转换为基本数据类型
装箱:基本数据类型转换为包装类类型
Integer i1 = 10; //装箱
int i2 = i1; //拆箱
当自动装箱时,默认调用的是valueOf方法。
对-128~127之间的数字,做了预包装,存放在缓冲区
提高效率。
区分0和null,即有效数据和无效数据
char charAt(int index):
返回下标对应的字符
int length():
返回字符串的长度
String[] split(String s) :
根据s将字符串进行拆分成一个字符串数组
String toUpperCase():
将字符串转换成大写
String toLowerCase()
将字符串转换成小写
boolean endsWith(String s):
判断字符串是否以s结尾
int indexOf(String s):
返回字符串中第一次出现s的下标,若不存在返回-1
int lastIndexOf(String s):
返回s在字符串中最后一次出现的下标,若不存在返回-1
String substring(int start,int end) :
截取字符串,从start-end(不包含end)
String s = "abc";
String s = new String("abc");
String intern():
返回字符串在串池中的字符串对象不可变长:
串池中的String是字面值常量,创建之后不可更改。
存放在串池中,资源共享,节省空间。
缺点:
当进行字符串拼接时,不会改变原有的空间,而是产生大量的副文本存放新的字符串对象。从而降低了字符串拼接的效率。
StringBuffer
: JDK 1.0 线程安全的 效率低
StringBuilder
: JDK 5.0 线程不安全的 效率高
StringBuilder s = new StringBuilder("abc");
append():
字符串拼接 //类似于String的+toString()
方法转换成String对象作用:用于精确的表示、计算浮点数
BigDecimal bd1 = new BigDecimal("1.0"); //参数选取字符串
BigDecimal bd1 = new BigDecimal("10.0"); //bd1 = 1.0
BigDecimal bd2 = new BigDecimal("3.0"); //bd2 = 0.9
BigDecimal bd3 = bd1.add(bd2); //bd3 = bd1+bd2
BigDecimal bd4 = bd1.subtract(bd2); //bd4 = bd1-bd2
BigDecimal bd5 = bd1.multiply(bd2); //bd5 = bd1*bd2
//bd2 :表示分母 2:表示 精确位数 BigDecimal.ROUND_HALF_UP:四舍五入的取值方式
BigDecimal bd6 = bd1.divide(bd2,2,BigDecimal.ROUND_HALF_UP); //bd6 = bd1/bd2