- 常用类的总结
1 内部类
2 Object类
3 包装类
4 数学类
5 时间类
6 字符串
7 String Builder 和 String Buffer
8 DecimalFormat - 内部类
- 1 内部类 一个类中内部再定义一个完整的类
一般情况下类与类之间是相互独立的,内部类是一个类在一个类中,和成员变量和成员方法是同一个级别。
内部类的好处: 内部类和外部类的效果是一样的,内部类的隐藏性比较好 这个理由其实比较扯淡
注意一个文件下只有一个public class
2 匿名内部类: 匿名内部类主要是直接实现接口之后重写抽象方法,
- Object 类
- object中常用的方法
1 equals() 方法
常用来和==来做比较
== 是一个比较运算符 可以对基本类型和引用类型做判断,如果是基本类型那就判断值是否相等,如果是引用类型那么判断的是地址是否相等,根据地址引用来决定是不是相同的对象,
这个地址是内存中堆空间中引用的地址,是赋值给变量的.
equals()方法是object中的方法,只能判断引用类型对象, 类中的equals方法默认判断地址是否相等,子类需要重新写equals方法
注意 String类的equals()方法已经重新写了。
2 hashCode() 方法
返回对象的哈希值,不同的对象返回不同的整数,经常用hashCode()和equals()方法来比较对象是否相同,
哈希值是根据内存地址来产生的,但是不等于是内存地址。
如果两个对象相等! 就是说两个对象的equals()方法比较相等,那么他们的hashcode值一定相等,
如果两个对象的哈希值相等! 并不能说明两个对象相等,意思就是说equals相等,因为两个键值对相等那么他们的哈希值一定相等,但是两个键值对的哈希值相等并不能说明键值对的内容相等, 因为哈希值会产生冲突。
3 toString()
返回对象的字符串形式,一般用来返回属性值
4 finzlize() 方法
当对象被回收时,系统会自动调用该对象的finzlize()方法,一般用于释放资源的操作放到该方法中,
当对象没有被引用时,jvm会认为该对象是垃圾对象,就会被回收掉,在销毁之前会先调用finzlize方法
垃圾回收机制是有系统调用的,就是自己的GC算法,也可以通过System.gc() 主动触发垃圾回收机制,
- 包装类
- 基本类型和对应的包装类
byte - Byte
short - Short
int - Integer
long -Long
float - Float
double - Double
char - Character
boolean - Boolean
包装类的意义: 1 让基本类型数据拥有面向对象的特征, 面向对象的基本特征:继承 封装 多态
2 字符串转化成基本数据类型的方式 Integer.parseInt() 字符串转成整数型, Long.paseLong() Double.parseDouble()
- 数学类
- 数学类的方法都是静态方法 Math 类
Math.abs() 取绝对值
Math.max() 求最大值
Math.min() 最小值
Mathi.round() 四舍五入
- java常用的时间类
- Date日期类
- Calendar 日历类
- simpleDateFormat 格式化时间类
- java 8 时间类
1 localDate类 表示今天的日期
2 localTime.now() 获取当前时间
- String 类
- char() 获取某个位置的字符
- concat() 字符串拼接
- contains() 判断是否包含子串
- endWith() 判断源字符串是否以xxx字符串结尾
- startWith() 判断是否以xxx字符串开头
- indexOf() 计算出字符串第一个出现的位置
- lastindexOf() 最后一个位置出现的字符串
- length() 字符串长度
- replace() 替换
- split() 字符串切割
- substring() 字符串截取
- trim() 去除左右空格
- valueOf() 基本数据类型转化成字符串
-
String,String Builder 和 String Buffer
-
String 是不可变字符串数据类型,每次拼接都会产生一个新的字符串,内存迟早会被这些字符串拼接塞满
-
String buffer 和String builder 都是可变字符串 不产生新的对象, 大量的字符串拼接建议使用String buffer
-
String buffer 线程安全 String builder 效率高
-
方法 append() toString()
-
Decimal Format 类
- DecimalFormat 类 对小数进行格式化处理,保留几位小数,
注意 . 表示小数点 0和# 表示保留几位数
DecimalFormat df = new DecimalFormat(".00"); // 或者.##
String s = df.format(d); // 把 d 转成上面设置的格式
System.out.println(s);//3.33