object
是什么?
所有类的父类
因为继承所以所有类都有Object提供的方法,也可以重写Object提供的方法
Object提供的方法
getClass():获取该类的类对象
JVM加载class文件时会生成该class文件的对象,class文件的对象称为类对象
一个类只有一个类对象,因为一个class文件只会被加载一次 暂时了解就行
hashCode() Object提供的该方法是用于获取对象的哈希码值(可以理解为对象的内存地址)
clone() 拷贝该对象,
注意调用该方法的类要实现Cloneable接口
toString() 将对象转换为字符串
注意:Object提供的该方法是获取调用该方法的对象所属类的地址+@+该对象的内存地址值(16位进 制) System.out.println():打印对象时默认会调用对象的toString方法,所以为方便观看对象的 属性值,所以重写对象所属类的toString方法
equals(obj) 判断是否相同
Object提供的该方法只能判断对象的内存地址是否相同
String可以使用该方法判断值相同,是因为重写了该方法
重写思路 1,先判读内存地址是否相同 2,在判断传入的对象是否是该类对象 3,强制类型转换该对象 4,逐个属性比较
@Override
public boolean equals(Object obj) {
if (this==obj) {
return true;
}
if (obj instanceof Cat) {
Cat cat=(Cat) obj;
if (this.name.equals(cat.getName())&&
this.age==cat.getAge()&&this.color.equals(cat.getColor())) {
return true;
}
}
return false;
}
finalize():了解 对象销毁时由JVM控制对象调用该方法 因为JAVA有垃圾回收机制所以无须自己手动回收
包装类
概念:八个基本数据类型对应的引用数据类型
byte Byte short Short
int Integer long Long
float Float double Double
boolean Boolean char Character
自动装箱 概念:将基本数据类型转换为对应的引用数据类型的对象
自动拆箱 概念:将引用数据类型的对象转换为对应的基本数据类型
整数缓冲区: -128~127
泛型:只能使用引用数据类
转换字符串
Integer.parseInt(字符串或字符串变量):将字符串转换为int变量 注意字符串必须是整数型的字符串
Double.parseDouble(字符串或字符串变量):将字符串转换为double变量 注意字符串必须是数的字符串
Boolean.parseBoolean(字符串或字符串变量):将字符串转换为boolean变量 注意:除true(忽略大小写)字符串以外都是false
System
概念:系统 提供的方法:
System.currentTimeMillis(); 获取距离1970年1月1日 00:00:00的毫秒值(格林威治时间) System.exit(0); 退出当前程序 禁止使用
0表示正常退出,其他表示非正常退出 System.gc(); 手动调用java垃圾回收机制
BigDecimal
注意:创建对象时建议使用字符串传入值
提供的方法: add:加 subtract:减 multiply:乘 divide:除
如: double d1 = 0.1; double d2 = 0.01; System.out.println(d1-d2); BigDecimal b01 = new BigDecimal(0.1+""); BigDecimal b02 = new BigDecimal(0.01+""); System.out.println(b01.add(b02)); System.out.println(b01.subtract(b02));
System.out.println(b01.multiply(b02));
BigDecimal divide = b01.divide(b02);
int intValue = divide.intValue();
System.out.println(intValue);
String
分类: 可变字符串:
StringBuffer:
特点: 1,线程安全 2,JDK1.0出现 3,效率稍微比StringBuilder慢
特有方法: append();添加到尾部
insert(index,str):指定位置插入 ...
StringBuilder
特点: 1,线程不安全 2,JDK1.5出现 3,效率稍微比StringBuffer快
特有方法: append();添加到尾部 insert(index,str):指定位置插入
不可变字符串
String 提供的方法:
增 +:字符串连接符
改 字符串1.replace(要替换的字符串,替换后的字符串)
注意:返回值是替换后的字符串
查 字符串1.length():查询字符串长度
字符串1.isEmpty():判断字符串是否为空
字符串1.contains(子字符串):判断字符串中是否包含子字符串
字符串1.indexOf(子字符串):获取子字符串在字符串中第一次出现的位置(开始 位置,下标从0开始),如果查询的子字符串不存在,返回-1
字符串1.equals(字符串2):判断两个字符串内容是否相同(不忽略大小写)
字符串1.equalsIgnoreCase(字符串2):忽略大小写判断字符串内容是否相同
字符串1.trim():忽略字符串前后的空白
字符串1.endsWith(字符串2):字符串1是否以字符串2作为结尾
字符串1,startsWith(字符串2):判断字符串1是否以字符串2作为开始
字符串1.toUpperCase():将字符串转化中小写字母全部转换为大写字母
字符串1.toLowerCase():将字符串转化中大写字母全部转换为小写字母
字符串1.toCharArray():将字符串转换为字符数组
字符串1.charAt(index):获取字符串中指定位置的字符
字符串1.getBytes():将字符串转换为字节数组
字符串1.split(字符串2):按照字符串2对字符串1进行切割
注意:使用.切割是使用\\.
字符串1.substring(开始位置,结束位置):截取字符串,包含开始位置,不包含结 束位置
字符串1.substring(开始位置):截取字符串,从开始位置到字符串末尾 注意:大量(大于10000)字符串操作时请使用可变字符串
注意:大量(大于10000)字符串操作时请使用可变字符串
与时间有关的类
Date 概念:日期,包含年月日时分秒
步骤:
1,获取Date对象 new Date();获取当前时间 new Date(long num);获取与1970年1月1日00:00:00的时间+参数时间的时间,num单位 为毫秒
调用
date1.after(date2):判断date1的时间是否在date2之后
date1.before(date2):判断date1的时间是否在date2之前
date.getTime():获取date对应的时间距离格林威治时间的毫秒值
Calendar
概念:日历
步骤: 1,获取Calendar对象 2,调用方法
SimpleDateFormat