1.在使用浮点数float和double时存在精度错误问题,因为计算机是二进制的,而浮点数并不能进行二进制运算。
2.Math.random(); -->随机数
Math.PI; -->π的值
Math.abs(),-->求绝对值
Math.ceil(); -->向上取整
Math.floor(); -->向下取整
Math.round(); -->四舍五入 返回int类型(-1.5 是-1!!)
Math.pw(5,3); -->平方125
Math.sqrt(3); -->开平方1.732
3. String一些类:使用final修饰的为不可变类,一旦定义之后不可以更改(存储)。
1) string.charAt(int index); -->返回index处的char值。
2) string.compareTo(String anotherString); -->此字符串大于字符串参数返回大于1的值。
3) string.compareTognoreCase(String str); -->此字符串大于字符串参数返回大于1的值,不考虑大小写。
4) string.concat(String str); -->参数字符串连接到此字符串的结尾。
5) string.equals(Object anObject);-->两个String类型是否true false
6) string.format(Locale 1,String format,Object... args);-->使用指定 的语言环境、格式字符串和参数返回一个格式化 字符串
7) string.indexOf(int ch);-->返回指定字符在此字符串中第一次出现处的索引。
string.indexOf(int ch,int fromIndex);-->返回从指定索引开始第一次出现指定字符处的索引。
string.indexOf(String str);-->返回子字符串第一处出现处的索引。
string.indexOf(String str,int fromIndex);-->返回子字符串从指定位置开始第一次出现处的索引。
8) string.isEmpty();-->当它length()为0时返回true。
9) String.lastIndexOf();-->和7类似,就是变成从最后一次出现的地方或者从指定地点反向搜索。
10) string.length();-->返回字符串长度。
11) string.matches(String regex);-->如果匹配给定的正则表达式则返回true。
12) string.replace(Char oldChar,char newChar);-->返回一个字符串,将字符串中的字符全部替换。
13) string.split(String regex);-->根据给定的正则表达式的匹配拆分此字符串。
14) string.toString();-->返回此对象本身。
15) string.trim();-->返回省略空白和尾部空白的字符串副本。
16) string.valueOf();-->
4. StrigBuffer:可变字符串
strbuff.append(“123”); -->字符串的拼接
strbuff.append(“123”); -->字符串的拼接
strbuff.toString(); -->增加大码可读性
strbuff.length(); -->字符串长度
strbuff.charAt(0); -->第一个字符
strbuff.delete(2,4) -->包含2不包含4,改变的是他本身
strbuff.substring(1,2); -->包括1不包括2
strbuff.insert(2 ,’a’); -->在第二个位置插入a(也就是第三个)
strbuff.replace(1,4,”hello”); -->替换,包括一不包括4
strbuff.reverse(); -->反转,倒序输出
5. StringBuilder:可以理解为是一个轻量级的StringBuffer。
StringBuffer有的东西东西,StringBuilder都有,使用方式也一样。
StringBuffer是线程安全的,因为要维护线程安全,所以相对于StringBuilder是重量级的。
StringBuilder是线程不安全的。
String是不可变字符串,StringBuffer是可变字符串。
String一旦定义不可以修改(从存储上),StringBuffer可以通过多种方式修改字符串(insert、delete、replace);
StringBuffer可以通过toString转变成string字符串
应用场景:
当需要频繁变更的字符串,如果只在单线程的情况下使用StringBuilder,多线程用StringBuffer(用的最多-->如果分不清就用StringBuffer-->保险一点)。
一般情况下还是String字符串。