JAVA基础知识

本文介绍了Java的基础知识,包括Arrays工具类的常用方法,如深拷贝和数组复制;探讨了String、StringBuffer与StringBuilder的区别;讲解了包装类的作用;提到了Math类的相关数学运算;讨论了枚举的特性和用法;解释了clone方法及其深浅拷贝概念;最后简述了Java日期类的更新与发展,特别是Java 8中新增的时间日期API。
摘要由CSDN通过智能技术生成

常用类

Arrays: 操作数组的工具类

静态工厂

1.deepToSting(): 深层打印指导数组内容

2.deepEquals():深层比较

3.copeOf static int[] copyOf(int[] original, int newLength)

使用零复制指定的数组,截断或填充(如有必要),以使副本具有指定的长度。

4.arraycopy static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

将定源数组中的数组从指定位置开始复制到目标数组的指定位置。目的地新数组由自己指定

5.copyOfRange static int[] copyOfRange(int[] original, int from, int to)

将指定数组的指定范围复制到新数组中。

String StringBuffer StringBuilder

String 不可变长的字符序列 StringBuffer 可变长的字符序列|线程安全的|效率较低 StringBuilder 可变长的字符序列|线程不安全,相对效率高

   一个可变的字符序列。
    此类提供与StringBuffer兼容的API,继承相同的父类AbstractStringBuilder,但不保证同步|线程不安全。
    此类设计用作StringBuffer替代品,用于单个线程使用字符串缓冲区的位置(通常情况下)大量操作字符串。
    在可能的情况下,建议使用此类优先于StringBuffer因为在大多数实现中它会更快。]
​
执行效率: StringBuilder > StringBuffer >  String

jdk1.8之前String底层是char [ ]

jdk11之后是byte[ ]

String , StringBuilder , StringBuffer 区别: 共同点: 都是字符序列,表示子串 底层都是字节数组(老版本jdk字符数组)

        区别 :
            1.String 不可变长字符序列
              StringBuffer|StringBuilder 可变长字符序列
            2.执行效率:
                StringBuilder > StringBuffer > String
            3.同步方面:
                StringBuilder 线程不安全
                StringBuffer 同步

包装类

基本数据类型 --> 包装类 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean

 自动拆装箱:
    1.自动装箱 : 基本 --> 引用
    2.自动拆箱 : 引用 --> 基本
​
基本类型与包装类对象比较问题 :
    1.两个int类型比较,值相等就相等
    2.两个new Integer比较,肯定不相等,new就新的地址
    3.int与Integer|new Integer比较,只要值相等就相等,因为会先自动拆箱,再比值
    4.两个Integer比较,如果值 在[-128,127]之间返回缓冲区对象相等,否则返回new Integer不相等
​
基本类型与包装类对象比较问题 :
    1.两个int类型比较,值相等就相等
    2.两个new Integer比较,肯定不相等,new就新的地址
    3.int与Integer|new Integer比较,只要值相等就相等,因为会先自动拆箱,再比值
    4.两个Integer比较,如果值 在[-128,127]之间返回缓冲区对象相等,否则返回new Integer不相等
​
    //自动装箱
    Integer in = i;  //Integer.valueOf(i)
​
    //自动拆箱
    int i2 = in; //in.intValue()

Math

Math 数学相关类

静态工厂

类math包含用于执行基本数字运算的方法,列如基本指数对数平方根和三角函数

枚举:

1.枚举是类,特殊的枚举类型,具有枚举类型特殊的约束 2.定义枚举enum 3.枚举:确定事务的所有可能|实例 4.枚举类的字段默认为public static final 5.枚举类中可以根据需求定义成员,构造器,成员方法 6.自定义枚举类型默认继承自 java.lang.Enum->这是所有Java语言枚举类型的公共基类

public static void main(String[] args) {
    //枚举类字段名
    System.out.println(EnumTest.DAY1);
    System.out.println(EnumTest.DAY1.name());
    //调用成员方法
    System.out.println(EnumTest.DAY1.getDay());
    //获取枚举实例在枚举类中字段列表的序号,从0开始
    System.out.println(EnumTest.DAY1.ordinal());
    //获得枚举类型所有实例
    System.out.println(Arrays.toString(EnumTest.values()));
}

clone

1.clone() 克隆,拷贝 来自Object类的clone()方法 2.方法重写的细节,子类中重写的方法 父类中被重写的方法

  1. java.lang.CloneNotSupportedException : 抛出此异常表示已调用类Object中的clone方法来克隆对象,但该对象的类未实现Cloneable接口。

    1. 方法签名完全相同 2.<= 返回值类型

    3.=权限修饰符

    4.被clone的类需要实现Cloneable接口 5.浅拷贝|浅克隆:当拷贝对象的时候,对象的属性如果为引用数据类型,属性所指向的对象不 拷贝 6.深拷贝|深克隆:当拷贝对象的时候,对象的属性如果为引用数据类型,属性所指向的对象也 拷贝一份

日期类

java8新增时间日期API : Date,SimpleDateFormat 线程不安全的 JDK8当中提供的LocalTimeLocalDateLocalDateTime等类型,线程安全,使用简单灵活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值