对部分常用类的细节总结
Posted -archenemy-
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对部分常用类的细节总结相关的知识,希望对你有一定的参考价值。
注意!!!
字符串是常量,不可变。在对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对象用来对数字的精确计算。
格式:
BigDecimal bd = new BigDecimal("0.1");
在赋值时传入的是字符串,这样比直接传入0.1的精确度要高,在计算机内部小数的存储是通过换算近似的,还是会存在误差,而直接存入字符串就不存在转化近似的问题。
BigDecimal中的常用方法
作用 | 方法名 | 作用 | 方法 |
---|---|---|---|
加 | add() | 乘 | multiply() |
减 | subtract() | 除 | divide() |
Math
近似
作用 | 方法名 |
---|---|
四舍五入 | round() |
向上取整 | ceil() |
向下取整 | floor() |
三角函数
对于Java中的三角函数需要注意的是三角函数传入的参数不是角度值而是弧度制。
角度值/180*PI = 弧度值
Java中的时间
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); //转化时间格式为我们想要的样式
以上是关于对部分常用类的细节总结的主要内容,如果未能解决你的问题,请参考以下文章