Java JDK常用的类


 

Math

Math.round(x)  //四舍五入
Math.floor()  //向下取整
Math.ceil()  //向上取整

Math.min(x,y)  //返回2个数中小的一个
Math.max(x,y)  //返回大的一个

Math.random()  //返回一个[0,1)之间的伪随机数

BigDecimal

/是整除,如果2个操作数都是整数,则结果舍弃小数部分、只取整;只要有1个操作数是浮点数,结果就是浮点数。

计算机表示浮点数容易产生误差,不精确,Bigdecimal类可以精确表示浮点数,并进行精确的四则运算

// 以下2种方式创建的才是精确的
BigDecimal db1=new BigDecimal("1.23");  //参数是String类型
BigDecimal db2=BigDecimal.valueOf(1.23)  //参数是数值型


// BigDecimal类提供了加减乘除的方法,可以进行精确的四则运算
// add 加,subtract 减,multiply 乘,divide 除
BigDecimal db3=db1.add(db2);


// 转换为数值型,xxxValue()
double d=db3.doubleValue();

NumberFormat

NumberFormat类可以格式化数字

NumberFormat nf1 = NumberFormat.getCurrencyInstance(Locale.CHINA);  //获取指定国家的货币格式,比如中国是¥,美国是$,参数为Locale类的常量
NumberFormat nf2 = NumberFormat.getIntegerInstance();  //整型数字格式,如果含有小数,先四舍五入转换为整数
NumberFormat nf3 = NumberFormat.getNumberInstance();  //通用数字格式,可以格式化所有类型的数字,保留原值、不四舍五入


// 格式化数字,返回字符串。从末尾起,每3位加一个逗号
String str1 = nf1.format(12345);  //"¥12,345"
String str2 = nf2.format(12345);   //"12,345"
String str3 = nf3.format(12345.678);  //"12,345.678"


// 将格式字符串转换为数值,返回Number类型
try {
    Number n1 = nf1.parse(str1);  //12345
    Number n2 = nf2.parse(str2);  //12345
    Number n3 = nf3.parse(str3);  //12345.678
} catch (ParseException e) {
    e.printStackTrace();
}

Random、ThreadLocalRandom

Random、ThreadLocalRandom2个类用来随机生成数字、布尔值。

Random random1 = new Random();  //默认以当前时间戳作为种子
Random random2 = new Random(1212121122323232L);  //设置种子

int next = random1.nextInt(10);  //返回[0,10)内的一个随机整数
int i = random1.nextInt();  //返回int范围内的一个随机整数
boolean b = random1.nextBoolean();  //随机生成布尔值


// ThreadLocalRandom是Random的加强版,在并发环境下资源占用更少,并且可以设置范围的下限
ThreadLocalRandom random = ThreadLocalRandom.current();

生成的数字均是伪随机数,如果使用同一个种子,则生成的随机数相同。

String、StringBuilder、StringBuffer

String str="hello";

String不可变,修改字符串是在副本上操作,原串不变。

不可变指的是“hello”这个字符串不可变,不能修改“hello”这个字符串,但变量str是可变的、可修改的。
 

StringBuffer、StringBuilder都是可变的,修改字符串是在原串上操作,原串改变。

StringBuffer线程安全,StringBuilder线程不安全。StringBuffer为保证线程安全,有额外的开销,所以StringBuilder效率更高。

记法:有红buff加成,打架更安全;还在刷装备尚未成型(builder),不安全。

猜你喜欢

转载自blog.csdn.net/chy_18883701161/article/details/106243423
今日推荐