实用类概述

实用类

1. 枚举

switch:支持数据类型,int(byte、short、char)、String、枚举类型。

引用数据类型:

  • 类(自定义类、系统类String)
  • 数组
  • 接口
  • 枚举

枚举:一个一个列举。

JDK 1.5 出现的。

// 枚举
public enum 枚举名 {
    枚举值1, 枚举值2, .......[;]
        
    [普通属性]
    [普通方法]
}
public enum Gender {,}
// 定义类继承了 Enum 类型(枚举类型的顶级父类)
// final 修饰类代表这个类不能被继承
public final class Gender extends Enum {

    // 私有带参构造方法
    // 枚举值,枚举值的序号/索引
    private Gender(String s, int i){
        super(s, i);
    }

    // 三个静态常量
    // Gender类型对象
    public static final Gender gender1;
    public static final Gender gender2;
    // Gender类型对象数组
    private static final Gender[] genderArr;

    // 静态代码块在进行初始化
    static {
        // 给两个Gender类型对象进行对象创建及赋值
        gender1 = new Gender("男", 0);
        gender2 = new Gender("女", 1);
        // 给Gender类型对象数组进行了赋值初始化
        genderArr = new Gender[] {
            gender1, gender2
        };
    }
    
    // .... 略 ....
    public static Gender[] values()
    {
        Gender agender[];
        int i;
        Gender agender1[];
        System.arraycopy(agender = ENUM$VALUES, 0, agender1 = new Gender[i = agender.length], 0, i);
        return agender1;
    }

    public static Gender valueOf(String s)
    {
        return (Gender)Enum.valueOf(demo3/Gender, s);
    }

}

枚举从本质上就是一个普通类型,只不过通过 Java 语法帮助我们优化了常量问题。

  1. 为什么枚举类型中的枚举值是:蓝色加粗倾斜?

    因为它是静态常量! static final,所以 类名.枚举值 也是正常。

  2. 为什么对应枚举类型的属性,可以赋值上枚举值?

    因为枚举值本质上就是一个枚举类型的对象。

2. 包装类

Byte、Short、Integer、Long、Float、Double、Boolean、Character

集合的泛型中使用过的,它们基本数据类型对应的引用数据类型。

这种类型也被称为包装类。


它的出现不是为了取代基本数据类型的,而是为了弥补基本数据类型的缺陷。

  1. 基本数据类型没有方法
  2. 基本数据类型不能接受 null 值
    • 因为有些时候,有些需求要求属性默认没有赋值,但是基本数据类型作为属性时,它所有默认值。
    • int:0
    • double:0.0
    • String:null …

Object:

  • Number
    • Byte
    • Short
    • Integer
    • Long
    • Float
    • Double
  • Character
  • Boolean

包装类型它们的大多构造方法,在 JDK 10 被作废了。因为这些构造还有一些和基本数据类型转换的方法,都没有意义存在了(自动拆箱和装箱)。

// 装箱:将基本数据类型转换为包装类型
// Integer integer = new Integer(10);
// 自动装箱
Integer num = 10;
Character alpha = 'A';

// 拆箱:将包装类型转换为基本数据类型
// int intValue = num.intValue();
// char charValue = alpha.charValue();
// 自动拆箱
int intValue = num;
char charValue = alpha;

还有价值的方法:

  • toString() : String 将基本数据类型转换为字符串类型
  • valueOf(String) : 包装类型 将字符串转换为包装类型
  • parseXXX(String):基本类型 将字符串转换为基本类型

3. Math工具类

java.util包下的一个工具类,用于数学运算。

常用静态方法:

  • random() : double 随机获取 [0.0, 1.0) 之间的小数
  • abs(数值) : 数值类型 获取绝对值
  • max(数值1, 数值2) : 数值类型 获取最大值
  • min(数值1, 数值2) : 数值类型 获取最小值
  • pow(double, double) : double 幂运算
  • sqrt(double) : double 开平方
  • round(double) : long 四舍五入
  • floor(double) : double 向下取整
  • ceil(double) : double 向上取整

4. Random工具类

Random:java.util下的一个随机数工具类。

  • nextInt(int) : int 生成[0, 参数值)随机整数
  • nextDouble() : double 生成[0.0, 1.0)随机小数

5. String类

System.out.println(“Hello World!”);

在 Java 中使用""包裹起来的内容,就属于字符串内容。


String 是一个 java.lang 包下的一个类,意味着它是一个引用数据类型。

String str = new String();

String str = “xxxx”;

// final 修饰的类,不能被继承
public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char[] value;
}

常用方法:

  • length() : int 获取字符串的长度/获取字符串内的字符数量
  • isEmpty() : boolean 判断是否是一个空字符串 “”
  • charAt(int) : char 获取指定索引的字符
  • indexOf(String) : int 获取指定字符的索引(从左向右查找,只找到第一个)
  • lastIndexOf(String) : int 从右向左找,只找到第一个
  • equals(Object) : boolean 判断字符串内容是否相同
  • equalsIgnoreCase(String) : boolean 判断字符串内容是否相同(不区分大小写)
  • startsWith(String) : boolean 判断是否以指定字符串开始
  • endsWith(String) : boolean 判断是否以指定字符串结尾
  • substring(int) : String 从指定索引开始截取字符串
  • substring(int,int) : String 从指定索引开始到指定索引结束截取字符串
  • concat(String) : String 拼接字符串
    • +号拼接
  • replace(CharSequence, CharSequence) : String 替换指定字符
  • split(String) : String[] 按照指定正则切割字符串为字符串数组
  • toLowerCase() : String 转换为小写字母
  • toUpperCase() : String 转换为大写字母
  • trim() : String 去除字符串两侧的空格
  • toCharArray() : char[] 将字符串转换为字符数组
  • format(String format, Object… args) : String 格式化字符串

按理说,为了使用熟练,应该背一下。

但是,实际上背了也忘了。

  1. 用的多了就记住了
  2. 需要用到的时候就百度/API 查一下
  3. 买个鼠标垫,API 长鼠标垫

6. StringBuffer

String:字符串

Buffer:缓冲区

使用 StringBuffer 可以解决字符串在频繁拼接或修改时的效率耗损。

构造方法:

  • 无参构造 StringBuffer()
  • 带参构造 StringBuffer(String)

普通方法:

  • appen(几乎所有类型): StringBuffer 拼接/追加内容

7. 日期时间类

Date

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值