Java基础-----String类的概述

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuming226/article/details/84575946
前言

1、String类对象不可改变的含义:不能改变对象内的成员变量,包括基本数据类型的值不能改变、引用类型的变量不能指向其他对象、引用类型指向的对象的状态也不能改变。

2、对象和对象引用的区别
(1)对象在内存中是一块内存区域。
(2)引用存放的是指向对象的地址。

String类的概述

1、字符串字面值“abc”也可以看成是一个字符串对象。
2、字符串是常量,一旦被赋值,就不能被改变。

String类的构造方法

1、public String():空构造。
2、public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串。
3、public String(byte[] bytes):把字节数组转成字符串。
4、public String(char[] value):把字符数组转成字符串。
5、public String(char[] value,int index,int count):把字符数组的一部分转换成字符串。
6、public String(String original):把字符串常量值转成字符串。

package java基础;

public class Demo2_String {
	public static void main(String[] args){
		byte[] arr1 = {97,98,99,100,101};
		String str = new String(arr1);
		System.out.println(str);
		System.out.println("--------------");
		String str1 = new String(arr1,2,3);
		System.out.println(str1);
		System.out.println("--------------");
		char[] arr2 = {'a','b','c','d'};
		String s1 = new String(arr2);
		System.out.println(s1);
		System.out.println("--------------");
		String s2 = new String(arr2,1,2);
		System.out.println(s2);
		System.out.println("--------------");
		String s3 = new String("kfg");
		System.out.println(s3);
	}
}
判断String对象的“=”与equals

1、首先会查看常量池中是否有这个字符串,如果没有创建该字符串对象,如果有直接引用即可。

package java基础;

public class Demo3_String {
	public static void main(String[] args) {
		String s1 = "abc";
		String s2 = "abc";
		System.out.println(s1 == s2);
		System.out.println(s1.equals(s2));
	}
}

执行结果如下:
在这里插入图片描述
2、创建2个对象,一个在常量池中一个在堆内存中。

package java基础;

public class Demo3_String {
	public static void main(String[] args) {
		String s1 = new String("qwe");
		System.out.println(s1);
	}
}

3、

package java基础;

import java.util.Scanner;

public class Demo_Scanner {
	public static void main(String[] args) {
		String s1 = new String("abc");//记录的是堆内存对象的地址值。
		String s2 = "abc";//记录的是常量池中的地址值。
		System.out.println(s1 == s2);//false
		System.out.println(s1.equals(s2));//ture
	}
}

4、

package java基础;

public class Demo4_String {
	public static void main(String[] args) {
		String s1 = "a" + "b" + "c";
		String s2 = "abc";
		System.out.println(s1 == s2);//true,java中有常量优化机制。
		System.out.println(s1.equals(s2));//true。
	}
}

5、

package java基础;

public class Demo4_String {
	public static void main(String[] args) {
		String s1 = "ab";
		String s2 = "abc";
		String s3 = s1 + "c";
		System.out.println(s3 == s2);//false
		System.out.println(s3.equals(s2));//true
	}
}

配图:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yuming226/article/details/84575946