String类及Date、SimpleDateFormat、Calendar的基本用法

本文详细介绍了Java中String类的特点、创建方式与常用方法,包括其不可变性。接着讨论了Date类的概念、构造方法和常用方法。还讲解了SimpleDateFormat如何将日期转换为字符串,以及Calendar类的基本概念和日期转换。内容覆盖了这四个类的基本用法和相互转换。
摘要由CSDN通过智能技术生成

一、String类的基本用法

1.1. String的注意事项

注意:1. String表示字符串类型,属于 引用数据类型,不属于基本数据类型。

            2. 在java中随便使用 双引号括起来 的都是String对象。

           例如:“abc”,“def”,“hello world!”,这是3个String对象

1.2 String类的不变性

1.字符串是常量,在创建之后不能更改

其实就是说一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。字符串本身不能改变,但str变量中记录的地址值是可以改变的。

2.源码分析,String类底层采用的是字符数组:
private final char value[]
private 修饰说明value只能在String类内部使用,而且又没有提供get方法,所以外部无法获取value数组,就无法改变数组中元素的值。
final修饰说明value是常量,一旦创建,就不能被改变,value一旦被初始化成某个数组,将永远指向这个数组,不可能再指向其它的数组了。

1.3 String类特点:

1. 一切都是对象,字符串事物 "" 也是对象。

2.类是描述事物,String类,描述字符串对象的类。

3.所有的 "" 都是String类的对象。

4.字符串是一个常量,一旦创建,不能改变。

 例题:

public class StringDemo {
			public static void main(String[] args) {
				//引用变量str执行内存变化
				//定义好的字符串对象,不变
				String str = "abc";
				System.out.println(str);
				str = "edf";
				System.out.println(str);
				}
				}

1.4 String类创建方式和比较

创建对象的数量比较
String s3 = “abc”;
在内存中只有一个对象。这个对象在字符串常量池中
String s4 = new String(“abc”);
在内存中有两个对象。一个new的对象在堆中,一个字符串本身对象,在字符串常量池中
 

 例题:

public class StringDemo2 {
	public static void main(String[] args) {
		//字符串定义方式2个, 直接=  使用String类的构造方法
		String str1 = new String("abc");
		String str2 = "abc";
		System.out.println(str1);
		System.out.println(str2);
		System.out.println(str1==str2);//引用数据类型,比较对象的地址 false
				System.out.println(str1.equals(str2));//true
			}
		}

 1.5 String类构造方法(常见构造方法) 

  public String():-------空构造
  public String(byte[] bytes):-------把字节数组转成字符串
  public String(byte[] bytes,int index,int length):-------把字节数组的一部分转成字符串
  public String(String original):-------把字符串常量值转成字符串

例题:

class StringTest{
    public static void main(String[] args) {
    	//最常用的方式
        String s1 = "我爱你中国";
        System.out.println(s1);//我爱你中国

        String s2 = new String("我爱你中国");
        System.out.println(s2);//我爱你中国

        char[] c = {'我' , '爱', '你', '中', '国'};
        String s3 = new String(c);
        System.out.println(s3);//我爱你中国
        String s4 = new String(c, 2, 3);
        System.out.println(s4);//你中国

        byte[] b = {65, 66 ,67, 68};
        String s5 = new String(b);
        Syste
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值