舔砖加瓦(java)之java常用类

本文详细介绍了Java中的常用类,包括String的不可变性、字符串拼接原理,以及StringBuffer与StringBuilder的区别。同时,文章讲解了日期时间API,如Date、SimpleDateFormat、Calendar,以及Java 8引入的LocalDate、LocalTime和LocalDateTime,并提到了DateTimeFormatter类的使用。通过对这些基础知识的探讨,帮助读者更好地理解和运用Java中的核心类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

添砖加瓦(java)

常用类

前言:

大家好我是kdy丶

一丶字符串相关的类

1丶String类

1)String的不可变性

1丶 String类:代表字符串。Java 程序中的所有字符串字面值都作为此类的实例实现。
2丶 String是一个final类,代表不可变的字符序列。
3丶字符串是常量,用双引号引起来表示。它们的值在创建之后不能更改。
4丶String对象的字符内容是存储在一个字符数组value[]中的。

我们可以看一下String的源码:
在这里插入图片描述

String 底层代码中value[]是由final修饰的,所以这也是一定程度上体现了String的不可变性。

例:

public class demo01 {
   

    public static void main(String[] args) {
   

     String s1="kdy";
     String s2="kdy";
     String s3=new String("kdy");
     String s4=new String("kdy");

        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s3==s4);
        System.out.println(s1==s4);
        

    }
}


    }
}

运行结果:
在这里插入图片描述

首先我们要知道,String是一个类而不是一个数据类型。字符串常量是定义在方法区的常量池中的,new String()是在堆中的。所以当我们判断s1,s2与s3,s4是否相等的时候,(因为常量池中s1和s2都是指向同一个字符串常量的),我们就会发现一个是true另一个是flase。有了这个当做基础的铺垫我们再看一下下面的代码:

public class demo02 {
   
    public static void main(String[] args) {
   
        String s1="kdy";
        String s2="kdy";

        s2+="lll";

        System.out.println(s1==s2);

    }
}

运行结果:
在这里插入图片描述
我们可以看见s1和s2在没改变之前是true的,都指向同一字符串创两,但是为什么改变之后是flase?
其实就是因为这个String的不可变性!

在这里插入图片描述
我们可以看到要是我们堆s2进行因为新的拼接,只能再次开辟对象地址,才可以,不能在原有的对象地址基本上进行拼接。

2)字符串的拼接
字符串的拼接还是有很多说头的。

我们来看这一下这段代码:

public class demo03 {
   
    public static void main(String[] args) {
   
        String s1="kdy";
        String s2="777";

        String s3 = "kdy777";
        String s4 = "kdy" + "777";
        String s5 = s1 + "777";
        String s6 = "kdy" + s2;
        String s7 = s1 + s2;

        System.out.println(s3 == s4);//true
        System.out.println(s3 == s5);//false
        System.out.println(s3 == s6);//false
        System.out.println(s3 == s7);//false
        System.out
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值