java核心类

+:直接拼接字符串,每次循环都会创建新的字符串对象,然后扔掉旧的字符串,不但浪费内存,还会影响GC效率。
StringBuilder:预分配缓冲区,不会创建新的临时对象。
StringJoiner: 分隔符拼接数组StringJoiner(", "),以开始结尾并加分隔符拼接StringJoiner(", ", "开始", "结尾")
join(): 简单拼接字符串

基本类型:byte,short,int,long,boolean,float,double,char
引用类型:所有class和interface类型,Boolean、Byte、Short、Integer、Long、Float、Double、Character
int和Integer可相互转换
自动装箱: 直接把int变为Integer的赋值写法 自动拆箱: 把Integer变为int的赋值写法
装箱和拆箱会影响代码的执行效率,自动拆箱执行时可能会报NullPointerException。
引用类型不可用==比较,可用equals()方法比较。

创建新的Integer实例: Integer n = new Integer(100);
把内部优化留给Integer的实现者去做,即使在当前版本没有优化,也有可能在下一个版本进行优化: Integer n = Integer.valueOf(100);

JavaBean: 传递数据,把一组数据组合成一个JavaBean便于传输

enum类型的每个常量在JVM中只有一个唯一实例,比较时用==和equals()都可以。enum只能定义无法继承,定义的每个实例都时唯一的,enum可用于switch。可以为enum编写构造方法、字段和方法。enum的构造方法要声明为private,字段强烈建议声明为final。
enum方法: name()返回常量名; ordinal()返回定义的常量的顺序,从0开始计数; toString()会返回和name()一样的字符串

Record纪录类: 记录类自动生成了构造方法、equals()、hashCode()和toString()方法。所有字段默认是私有和最终的(private和final),因此实例是不可变的。

BigInteger: 无范围限制,速度比较慢。BigInteger转换成基本类型时可使用longValueExact()等方法保证结果准确。
BigDecimal: 表示一个任意大小且精度完全准确的浮点数。
Math: 数学计算的类,提供了大量的静态方法。Math会尽量针对平台优化计算速度。
StrictMath: 和Math用法一样,但保证所有平台计算结果都是完全相同的。
Random: 创建伪随机数。指定一个种子seed,就会得到完全确定的随机数序列
SecureRandom: 创建安全的随机数。使用RNG算法。通过操作系统提供的安全的随机种子来生成随机数。这个种子是通过CPU的热噪声、读写磁盘的字节、网络流量等各种随机事件产生的“熵”。

posted @ 2024-06-14 11:14  恬不可吃  阅读(31)  评论(0)    收藏  举报