Java笔记-07 常用类

这篇博客详细介绍了Java中的基础类库,包括包装类的自动装箱拆箱和缓存机制,字符串String的特性与操作,时间处理类Date、DateFormat和Calendar的使用,Math类的数学运算,Random类的随机数生成,File类的文件操作,以及枚举的定义和应用。通过实例讲解了这些类的重要功能和常见操作。
摘要由CSDN通过智能技术生成

包装类

  • 将基本类型数据转化成对象,包装类位于java.lang包中
  • 提供: 字符串、 基本类型数据、 对象之间互相转化的方式,包含每种基本数据类型的相关属性如最大值、 最小值等
基本数据类型 包装类
byte Byte
boolean Boolean
short Short
char Character
int Integer
long Long
float Float
double Double
  • 以Integer为例
public class TestWapperedClass {
   
    public static void main(String[] args) {
   
        int i = 100000;
        //基本数据类型转换为包装类的两种方式
        Integer a = new Integer(i);
        Integer b = Integer.valueOf(i); //推荐

        //包装类转换为基本数据类型
        int a1 = a; //自动装箱拆箱
        int a2 = a.intValue();

        //字符串转换为包装类
        Integer a3 = new Integer("1234");
        Integer a4 = Integer.valueOf("1234");
        Integer a5 = Integer.parseInt("1234");

        //包装类转换为字符串
        String s = a3.toString();

        //常用的常量
        System.out.println(Integer.MIN_VALUE);
        System.out.println(Integer.MAX_VALUE);
        //方法
        System.out.println(Integer.max(4,6)); //求最大值
        System.out.println(Integer.compare(6,6));//第一个数是否大于第二个数,结果为1,-1,0
    }
}

  • 自动装箱拆箱
        Integer a = 312; //自动装箱 Integer.valueOf()
        int b = a; //自动拆箱 a.intValue()
  • 缓存 -128到127之间的数字,缓存是个数组
  • 如果数据在-128~127这个区间,那么在类加载时就已经为该区间的每个数值创建了对象,并将这256个对象存放到一个名为cache的数组中。每当自动装箱过程发生时(或者手动调用valueOf()时),就会先判断数据是否在该区间,如果在则直接获取数组中对应的包装类对象的引用,如果不在该区间,则会通过new调用包装类的构造方法来创建对象。
        Integer a1 = -128;
        Integer a2 = -128;
        System.out.println(a1 == a2); //true
        System.out.println(a1.equals(a2)); //true

        Integer a3 = 1234;
        Integer a4 = 1234;
        System.out.println(a3 == a4); //false
        System.out.println(a3.equals(a4)); //false

字符串String

  • String 类对象代表不可变的Unicode字符序列。private final char value[];
  • 判断是不是同一个字符串使用equals
  • ==判断两个对象是否为同一个,equals判断内容是不是相同
        String str1 = "abc";
        String str2 = "123";
        String str3 = str1 + str2;
        String str4 = "abc" + "123";
        System.out.println(str3 == str4); //false
        System.out.println(str4 == "abc123"); //true
        System.out.println(str3.equals(str4)); //true
  • StringBuilder是可变的字符序列,StringBuffer也是,都是AbstractStringBuilder的子类,前者效率高但是线程不安全,StringBuffer线程安全,效率低
  • 可变字符串,修改时直接修改本身
        StringBuilder sb = new StringBuilder("abcdefg");
        System.out.println(Integer.toHexString(sb.hashCode()));//字符串地址
        sb.setCharAt(2,'k'); //修改一下
        System.out.println(sb); //输出修改结果
        System.out.println(Integer.toHexString(sb.hashCode()));//再次打印字符串地址
  • 常用方法,追加,删除,插入,修改
        StringBuilder sb1 = new StringBuilder();
        for(int i = 0;i<26;i++){
   
            sb1.append((char)('a'+i));//追加26个小写字母
        }
        System.out.println(sb1);
        sb1.reverse(); //反转
        System.out.println(sb1);
        sb1.setCharAt(2,'A');//修改一个字符
        System.out.println(sb1);
        //插入,返回对象本身,可以链式调用
        sb1.insert(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独孤尚亮dugushangliang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值