Java String的使用问题总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java String的使用问题总结相关的知识,希望对你有一定的参考价值。

 

1 == 运算符

用来判断两个对象的引用地址是否相等

2 equals方法

用来判断两个对象的值(内容)是否相等

3 String在使用匿名对象字符串或初始化赋值字符串引用变量时会采用对象池策略,相同内容的字符串,会共用同一段堆内存

4 String在new实例化方式创建字符串对象时会开辟不同的堆内存存储字符串内容,即便是相同的内容。

5 字符串的内容平不可改变,即便是对一个字符串变量赋予新的内容,但是与此同时也智慧开辟新的堆内存空间来存储,并不会改变原来的堆内存空间的内容。而短时间内JVM还来不及回收前面所创造的垃圾内存空间,这可能会造成不好的影响。

下面的例子是对以上的内容的:

StringDemo.java

package test.string;

public class StringDemo {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		boolean b11 = false;
		boolean b12 = false;
		boolean b21 = false;
		boolean b22 = false;
		boolean b31 = false;
		boolean b32 = false;
		boolean b41 = false;
		boolean b42 = false;
		
    if ("hello"=="hello"){
      b11 = true;
    }
    if("hello".equals("hello")){
    	b12 = true;
    }
    System.out.println(b11);//true
    System.out.println(b12);//true
    //===================================
    String str1 = "Hello";
    String str2 = "Hello";
    if(str1 == str2){
    	b21 = true;
    }
    if(str1.equals(str2)){
    	b22 = true;
    }
    System.out.println(b21);//true
    System.out.println(b22);//true
    //==================================
    String str3 = "Hello";
    String str4 = new String("Hello");
    String str5 = new String("Hello");
    if(str3 == str4){
    	b31 = true;
    }
    if(str3.equals(str4)){
    	b32 = true;
    }
    if(str5 == str4){
    	b41 = true;
    }
    if(str5.equals(str4)){
    	b42 = true;
    }
    System.out.println(b31);//false
    System.out.println(b32);//true
    System.out.println(b41);//false
    System.out.println(b42);//true
    //==================================
    String str = "hello ";
    str = str + "world";
    System.out.println(str);//hello world, generate two heap memories
	}
}

  

 

以上是关于Java String的使用问题总结的主要内容,如果未能解决你的问题,请参考以下文章

学号:201521123116 《java程序设计》第八周学习总结

Failed to convert property value of type ‘java.lang.String‘ to required type ‘int‘ for property(代码片段

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

Jsp获取Java的重定向赋值(String)

java Ftp上传创建多层文件的代码片段

Java进阶之光!2021必看-Java高级面试题总结