标签:builder sim 换算 string mod divide 方便 fresh 基本类型
注意!!!
字符串是常量,不可变。在对Sting的类赋值时是先删除在创建。
理解小练习
请问下述代码一共生成了几个对象?
String a = "a"; String b = "b"; String c = "c"; String d =a + b + c ;
正确答案是五个!
因为String对象不可改变所以做字符拼接时会创建新的匿名对象。从这里可以发现String类中的字符拼接很占用内存以及时间。
为了解决这种状况,Java中新定义两种类StringBuffer、StringBuilder。这两个类的作用与String类似,但是不同的是这两个类对于字符串的相加做了优化,对于StringBuffer、StringBuilder来说,每次调用.add()相加,都是放入缓存区,需要调用时在将值从缓存区中取出来。这样后会大大减少拼接的时间以及运行内存。虽然StringBuffer、StringBuilder中的API一样,但是两者也有区别.StringBuffer线程安全、StringBuilder线程不安全.
在Java中为了方便,给每个基本数据类型都封装了一个类。
整型 | 实型 | 字符型 | 布尔类型 | ||||
---|---|---|---|---|---|---|---|
byte | Byte | double | Double | char | Character | boolean | Boolean |
short | Short | float | Float | ||||
int | Integer | ||||||
long | Long |
上述基本类型封装内部的方法都是静态方法,这意味着可以通过:封装名.方法名()的方式调用。
基本类的封装还有一个好处,对于集合来说,集合内部的元素都是对象,这时我们就可以用基本类型封装类来代替基本数据类型。
作用:BigDecimal对象用来对数字的精确计算。
格式:
BigDecimal bd = new BigDecimal("0.1");
在赋值时传入的是字符串,这样比直接传入0.1的精确度要高,在计算机内部小数的存储是通过换算近似的,还是会存在误差,而直接存入字符串就不存在转化近似的问题。
BigDecimal中的常用方法
作用 | 方法名 | 作用 | 方法 |
---|---|---|---|
加 | add() | 乘 | multiply() |
减 | subtract() | 除 | divide() |
作用 | 方法名 |
---|---|
四舍五入 | round() |
向上取整 | ceil() |
向下取整 | floor() |
对于Java中的三角函数需要注意的是三角函数传入的参数不是角度值而是弧度制。
角度值/180*PI = 弧度值
Date d = new Date(); //1. Date导入的包是 java.util.Date //2. 对于Date一旦new便获得当前时间的 //3. d -> 星期 月 日 格林威治时间 GMT+8:00:00 年 DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String str = sdf.format(d); //转化时间格式为我们想要的样式
标签:builder sim 换算 string mod divide 方便 fresh 基本类型
原文地址:https://www.cnblogs.com/-Archenemy-/p/11979925.html