常用API和多态
- 1.什么情况下调用toString ?
- 2.推荐调用Objects的equals方法?
- 3.BigInteger(大整数类):
- 4.Integer不能做运算,Biginteger可以做运算。
- 5.为什么浮点数运算,会精度丢失。
- 6.浮点数运算需要用BigDecimal运算:
- 7.基本类型除零,不会抛出异常,会得到Infinity(无穷的)。
- 8.基本数据类型和包装类进行加减运算时,都拆为基本类型进行运算。
- 9.字符串转Integer或者其他整型类:
- 10.自动装箱和拆箱是语法糖。
- 11.装箱的时候,后面的符号要注意!
- 12.自动装箱什么时候用?
- 13.只要有泛型的地方,必须使用包装类。
- 14.实体类,强烈建议成员属性都定义为包装类型。
- 15.整数和char的都有缓存池:
- 16.字符串和基本类型转换:
- 17.多态是不是还解决了强类型的一部分繁琐问题?
- 18.抽象类作为形参:表示可以接收任何此抽象类的"子类对象"作为实参。
- 19.什么时候隐式调用对象的toString?
- 20.String的split方法截取"."应注意:
- 21.Double转为BigDecimal时应注意:
- 22.快速到文档底部 快捷键:ctrl + end/home。
- 23.Integer中的 valueOf 和 parseInt的区别:
- 24.包装类中---valueOf 和 parseInt的区别:
- 25.正则表达式是什么东东?
- 26.String 方法中 replace 和 replaceAll 的区别:
1.什么情况下调用toString ?
1)print输出对象的时候
2)(字符串+对象)的拼接时候
2.推荐调用Objects的equals方法?
它里面优先做了非空验证,防止空指针,比自己重写的方法安全
3.BigInteger(大整数类):
如果整数大小超过long类型,就会转换为字符串。字符串大小可以是堆空间的大小。
4.Integer不能做运算,Biginteger可以做运算。
5.为什么浮点数运算,会精度丢失。
将十进制小数转换为二进制小数的过程导致的。
6.浮点数运算需要用BigDecimal运算:
1)BigDecimal(double val);[不建议使用,这个构造方法还是有精度丢失的]
2)b1.divide(b2);不建议使用,如果除不尽会抛异常。
推荐使用这个做除法bi.divide(b2,scale: 2,RoundingMode.HALF_UP);
7.基本类型除零,不会抛出异常,会得到Infinity(无穷的)。
切记:引用类型除零会抛出异常,所以要捕捉处理。
8.基本数据类型和包装类进行加减运算时,都拆为基本类型进行运算。
9.字符串转Integer或者其他整型类:
new对象的时候,必须要是数字字符。"123123a23"会异常!!!
10.自动装箱和拆箱是语法糖。
11.装箱的时候,后面的符号要注意!
long n4 = 40L;
Float n5 = 50F;
Float n55 = 5.0F;
Double n6 = 60D;
12.自动装箱什么时候用?
在集合存取-包装类-的时候用的。
ArrayList list = new ArrayList<>();
list.add(100);
13.只要有泛型的地方,必须使用包装类。
14.实体类,强烈建议成员属性都定义为包装类型。
有的学生会出现考0分,而有的学生缺考,这样,就没有办法去区分了。
包装类型 Integer 和 基本类型 int 的最大区别就是包装类可以设置为 null。
缺考设置为null,就ok了。
优点:可以存null
缺点:存null容易空指针,所以要么拆箱要不判断
15.整数和char的都有缓存池:
boolean values true and false
all byte values
short values between -128 and 127
int values between -128 and 127
char in the range \u0000 to \u007F
判断值是否在缓存池中,如果在的话就直接返回缓存池的内容,不在就新建一个。
这个缓存池是存在堆里的常量池。
16.字符串和基本类型转换:
1)字符串转为其他基本类型—类名.parseXXX(Strings)
除了Character类型,其他七种包装类都有
2)基本类型转字符串–类名.toString();
Character只有,charAt。
17.多态是不是还解决了强类型的一部分繁琐问题?
多态重点还是可拓展问题。
18.抽象类作为形参:表示可以接收任何此抽象类的"子类对象"作为实参。
抽象类作为返回值:表示"此方法可以返回此抽象类的任何子类对象";
19.什么时候隐式调用对象的toString?
1)字符串+对象
2)System.out.println()
Objcet中toString打印的是:类名@地址的哈希值,
所以必须要重写类的toString 方法。
20.String的split方法截取"."应注意:
“”.split()---->不能直接截取"."
String s = "aa.cc.vv";
String[] split = s.split("\\.");
21.Double转为BigDecimal时应注意:
建议:BigDecimal.valueOf(Double double),Double转换为BigDecimal
BigDecimal(double val):【不建议使用】,参数是一个double****值,在转存时仍然会出现精度丢失的问题。
22.快速到文档底部 快捷键:ctrl + end/home。
23.Integer中的 valueOf 和 parseInt的区别:
用valueOf返回的是Integer对象,在缓存池中可能会有—==–相等判断的错误。
parseInt返回的是int类型,效率高
Integer.parseInt(String s) 的效率高于 Integer.valueOf(String s)
24.包装类中—valueOf 和 parseInt的区别:
1)valueOf返回的是包装类对象
2)parseXxx返回的是基本类型,效率高
25.正则表达式是什么东东?
正则表达式是使用一套特殊符号模式做为表达格式的字符串,主要用处是描述和解析文本
26.String 方法中 replace 和 replaceAll 的区别:
String string = replace(“旧字符串”,“新字符串”);
String string = replaceAll(“正则表达式”,“新字符串”);