目录
Object类
- Object类是java中所有类的祖宗类,因此,java中所有类的对象都可以直接使用Object类中提供的一些方法。
方法名 | 说明 |
public String toString() | 返回对象的字符串表示形式 |
public boolean epuals(Object o) | 判断两个对象是否相等 |
protected Object clone() | 对象克隆 |
toString 存在的意义:toString()方法存在的意义就是为了被子类重写,以便返回对象具体的内容。
equals默认比较两个对象的地址,它存在的意义也是为了被我们的子类重写,以便用来比较两个对象的内容的。直接比较两个对象的地址是否相同完全可以用“==” 替代equals。
对象克隆:当某个对象调用这个方法时,这个方法会复制一个一模一样的新对象返回。
(标记接口中没有任何东西)
浅克隆:拷贝出的新对象,与原对象中的数据一模一样(引用类型拷贝的只是地址)
深克隆:对象中基本类型的数据直接拷贝。
对象中的字符串数据拷贝的还是地址。
对象中还包含的其它对象,不会拷贝地址,会创建新对象。
0bjects
- Objects是一个工作类,提供了很多操作对象的静态方法给我们使用
方法名 | 说明 |
public static boolean equals(Object a,Object b) | 先做非空判断,再比较两个对象 |
public static boolean isNull(Object obj) | 判断对象是否为null,为null返回true,反之返回false |
public static boolean noNull(Object obj) | 判断对象是否不为null,不为null则返回true,反之返回false |
源码分析
public static boolean equals(Object a, Object b){
return(a==b)||(a!=null&&a.equals(b);
}
String s1 =null;
String s2 = itheima;
System.out.println(s1.equals(s2));
//报空指针异常
System.out.println(Object.equals(s1,s2);
//false
使用Object.equals方法更安全更好
包装类
- 包装类就是把基本类型的数据包装成对象。
基本数据类型 | 对应的包装类(引用数据类型) |
byte | Byte |
short | Short |
int | Integer |
long | Long |
char | Character |
float | Float |
double | Double |
boolean | Boolean |
基本类型的数据包装成对象的方案 |
public Integer(int value):已过时 |
public static Inter valueOf(int i) |
自动装箱:可以自动把基本类型的数据转换成对象。
自动拆箱:可以自动把包装类型的对象转换成对应的基本数据类型。
public class Test{
public static void main(String[]args){
Integer a2=Integer.valueOf(12);
System.out.println(a2);
Integer a3 = 12;//自动装箱
int a4 = a3;//自动拆箱
}
}
包装类的其他常见操作
- 可以把基本类型的数据转换成字符串类型。
public static String toString(double d)
public String toString()
- 可以把字符串类型的数值转换成数值本身对应的数据类型。
public static int parsenlnt(String s)
public static Integer valueOf(String s)
StringBuilder StringBuffer
-
StringBuilder代表可变字符串对象,相当于是一个容器,它里面装的字符串是可以改变的,就是用来操作字符串的。
-
好处:StringBuilder比String更适合做字符串的修改操作,效率会更高,代码也会更简洁。
构造器 | 说明 |
public StringBuilder() | 创建一个空白的可变的字符串对象,不包含任何内容 |
public StringBuilder(String str) | 创建一个指定字符串内容的可变字符串对象 |
方法名称 | 说明 |
public StringBuilder append() | 添加数据并返回StringBuilder对象本身 |
public StringBuilder reverse() | 将对象的内容反转 |
public int length | 返回对象内容的长度 |
public String toString | 通过toString()就可以实现StringBuilder转换为String |
对于字符串相关操作,如频繁的拼接,修改等,建议用StringBuilder,效率更高!
注意:如果操作字符串变少,或者不需要操作,以及定义字符串变量,还是建议用String。
String是不可变字符串,stringBuilder是可变的字符串容器,它在操作字符串方面效率更高。
StringBuff的用法与StringBuilder是一模一样的。
但StringBuilder是线程不安全的,StringBuffer是线程安全的。
StringJoiner
- JDK8才开始有的,跟StringBuilder一样,特是用来操作字符串的 ,也可以看成是一个容器,创建之后里面的内容是可变的。
- 好处:不仅能提高字符串的操作效率,并且在有些场景下使用它操作字符串,代码会更简洁。
构造器 | 说明 |
public StringJoiner(间隔符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号 |
public StringJoiner(间隔符号、开始符号、结束符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号、开始符号、结束符号 |
方法名称 | 说明 |
public StringJoiner add(添加的内容) | 添加数据并返回对象本身 |
public int length() | 返回长度(字符出现的个数) |
public String toString() | 返回一个字符串(该字符串就是拼接之后的结果) |
Math System Runtime
Math:代表数学,是一个工具类,里面提供的都是对数据进行操作的一些静态方法。
方法名 | 说明 |
public static int abs(int a) | 获取参数绝对值 |
public static double ceil(double a) | 向上取整 |
public static double floor(double a) | 向下取整 |
public static int round(float a) | 四舍五入 |
public static int max(int a,int b) | 获取两个int值中的较大值 |
public static double pow(double a,double b) | 返回a的b次幂的值 |
public static double random() | 返回值为double的随机值,范围[0.9,1.0] |
//1
System.out.println(Math.abs(-12));
//2
System.out.println(Math.ceil(4.000000001));
//3
System.out.println(Math.floor(4.99999999));
//4
System.out.println(Math.round(3.4999));
//5
System.out.println(Math.max(10,20));
//6
System.out.println(Matn.pow(2,3));
//7
System.out.println(Math.random());
System:代表程序所在系统,也是一个工具类。
方法名 | 说明 |
public static void exit(int status) | 终止当前运行的java虚拟机 |
public static long currentTimeMills() | 返回当前系统的毫秒值形式 |
Runtime:代表程序所在的运行环境,是一个单例类。
方法名 | 说明 |
public static Runtime getRuntime() | 返回与当前java应用程序关联的运行时对象 |
public void exit(int ststus) | 终止当前运行的虚拟机 |
public int availableProcessdrs() | 返回java虚拟机可用的处理器数 |
public long totalMemory() | 返回java虚拟机中的内存总量 |
public long freeMemory() | 返回java虚拟机中的可用内存 |
pulblic Process exec(String command) | 启动某个程序,并返回代表该程序的对象 |
BigDecimal
解决浮点型运算时出现结果失真的问题。
BigDecimal b1=BiaDecimal.valueOf(0.1)
构造器 | 说明 |
public BigDecimal(double val)注意:不推荐 | 将double转换为BigDecimal |
public BiaDecimal(String val) | 把String转成BigDecimal |
方法名 | 说明 |
public static BigDecimal valueOf(double val) | 转换一个double成BigDecimal |
public BigDecimal add(BigDecimal b) | 加法 |
public BigDecimal subtract(BidDecimal b) | 减法 |
public BigDecimal multiply(BigDecimal b) | 乘法 |
public BigDecimal divide(BigDecimal b) | 除法 |
public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式) | 除法、可以控制精确到小数点几位 |
public double doubleValue() | 将BigDecimal转换为double |