![](https://i-blog.csdnimg.cn/blog_migrate/65e3af8e0d19957e3d101ac91f96aea5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/11d9cbc0ce087fb5808dd3a9a8c3b607.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2c1ed8f7f1ef5f67f8b8ba6a72258e2a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9150b0d48fc625b734315bcbd2317fd3.png)
toString() 返回对象的字符串表示形式。如果一个对象所在的类中,没有重写Object类中 toString(),那么这个对象调用toString()返回的是对象内存地址的字符串形式;
如果一个对象所在的类中,重写Object类中toString(),那么这个对象调用toString()
返回的是重写属性值的字符串形式.
注意:注意,System.out.println()和System.out.print()这两个方法输出的变量是基本数 据类型,直接输出值;如果输出的引用数据类型,会自动调用这个变量的toString();
八种基本数据类型违反Java是一种纯面向对象的语言,Java为了维护自己是一种纯面向对象的语 言,给八种基本数据类型提供包装类.
5.1:包装类:将基本数据类型封装成类;
5.2:八种基本数据类型的包装类
基本数据类型 包装类
byte java.lang.Byte
short java.lang.Short
int java.lang.Integer
long java.lang.Long
float java.lang.Float
double java.lang.Double
boolean java.lang.Boolean
char java.lang.Character
StringBuilder:是一个最终的,可变字符串类,它的值可更改.在单线程中使用效率高,在多线程中 使用不安全.
7.1:常用方法
eg:public static void main(String[] args) {
//创建StringBuilder对象
StringBuilder sb1=new StringBuilder("哈哈");
//1.append(Object obj) 追加 Object参数的字符串 Object形式。
sb1.append("嘻嘻");
//2.delete(int start, int end) 删除此序列的子字符串中的字符。包括起始索引,不包括终止索引
//sb1.delete(1, 4);
//3.insert(int offset, Object obj) 将 Object参数的字符串表示插入到此字符序列中。
sb1.insert(2, "今晚周考");
//4.reverse() 导致该字符序列被序列的相反代替。
sb1.reverse();
System.out.println(sb1);
}
String VS StringBuffer VS StringBuilder(面试)
8.1:相同点:
8.1.1:都是字符串类,都可以存字符串.
8.1.2:都是最终类,不能被继承.
8.2:不同点:
String:是一个最终字符串类,它空间一但赋值,不可更改.
StringBuffer: 是一个最终字符串类,它是一个可变字符序列,空间中值可更改.在多线程中 使用安全,但是效率低.
StringBuilder:是一个最终字符串类,它是一个可变字符序列,空间中值可更改.在单线程中 使用效率高,在多线程中使用不安全
9.1:为什么要用BigDecimal
eg:public static void main(String[] args) {
//声明变量并赋值
double num1=1;
double num2=0.9;
//计算两数之差
double result=num1-num2;
System.out.println(result);
}
9.2:BigDecimal类的常用方法
eg:public static void main(String[] args) {
//创建对象
BigDecimal num1=new BigDecimal(10);
BigDecimal num2=new BigDecimal(3);
//计算两数之和
BigDecimal result1=num1.add(num2);
//计算两数之差
BigDecimal result2=num1.subtract(num2);
//计算两数之积
BigDecimal result3=num1.multiply(num2);
//计算两数之商,如果两个数除不断,BigDecimal会报错
//BigDecimal result4=num1.divide(num2);
//第一个参数是除数,第二个参数保留的小数位数,第三个参数是取舍模式(四舍五入)
BigDecimal result4=num1.divide(num2, 2, BigDecimal.ROUND_HALF_UP);
System.out.println("两数之和为:"+result1);
System.out.println("两数之差为:"+result2);
System.out.println("两数之积为:"+result3);
System.out.println("两数之商为:"+result4);
}