StringBuffer和StringBuilder与BigDecima的使用l
可变字符串
StringBuffer:可变长字符串,JDK1. 0提供,运行效率慢、线程安全
StringBuilder:可变长字符串,JDK5. 0提供,运行效率快、线程不安全
eg :
/**
* StringBuffer和StringBuilder的使用
*和String的区别(1)效率比String高(2)比节省内存
* @author wgw
*
*/
public class Demo05 {
public static void main(String[] args) {
//StringBuffer sb = new StringBuffer();
StringBuilder sb = new StringBuilder();
//1.append();追究
sb.append("java世界第一");
System.out.println (sb.toString());
sb.append("java真香");
System.out.println (sb.toString());
sb.append("java不错");
System.out.println (sb.toString());
//2.insert();添加
sb.insert (0,"我在最前面");
System.out.println (sb.toString());
//3.replace();替换
sb.replace (0,5,"hello");
System.out.println (sb.toString());
//4.delete();删除
sb.delete(0,5);
System.out.println (sb.toString());
//清空
sb.delete(0,sb.length ());
System.out.println (sb.length());
}
}
/**
* 验证StringBuilder效率高于String
* @author wgw
*/
public class Demo06 {
public static void main(String[] args) {
//开始时间
long start = System.currentTimeMillis();
//String string = "";
//for (int i = 0; i < 99999; i++) {
// string+=i;
//}
//System.out.println(string);
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 99999; i++) {
sb.append (i);
}
System.out.println(sb.toString());
long end = System.currentTimeMillis();
System.out.println("用时:"+(end-start));
}
}
BigDecimal
位置:java.math包中
作用:精确计算浮点数
创建方式:BigDecimal bd = new BigDecimal( “1.0");
方法:
BigDecimal add(BigDecimal bd) 加
BigDecimal subtract(BigDecimal bd) 减
BigDecimal multiply(BigDecimal bd) 乘
BigDecimal divide(BigDecimal bd) 除
除法:divide(BigDecimal bd, int scal,RoundingMode mode)
参数scal:指定精确到小数点后几位
参数mode:
指定小数部分的取舍模式,通常采用四舍五入的模式
取值为BigDecimal.ROUND_HALF_UP
eg :
public class Demo07 {
public static void main(String[] args) {
double d1 = 1.0;
double d2 = 0.9;
System.out.println(d1-d2);
//面试题
double result = (1.4-0.5)/0.9;
System.out.println(result);
//BidDecimal,大的浮点数精确计算
BigDecimal bd1 = new BigDecimal("1.0");
BigDecimal bd2 = new BigDecimal("0.9");
//减法
BigDecimal r1 = bd1.subtract (bd2);
System.out.println(r1);
//加法
BigDecimal r2 = bd1.add (bd2);
System.out.println(r2);
//乘法
BigDecimal r3 = bd1.multiply (bd2);
System.out.println(r3);
//除法
BigDecimal r4 = new BigDecimal ("1.4")
.subtract (new BigDecimal ("0.5"))
.divide (new BigDecimal ("0.9"));
System.out.println(r4);
BigDecimal r5 = new BigDecimal ("40")
.divide (new BigDecimal("3"),2,BigDecimal.ROUND_HALF_UP);
System.out.println(r5);
}
}

浙公网安备 33010602011771号