Stringa变量如何用Java基础创建并初始化为abc?

2026-04-27 21:131阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计329个文字,预计阅读时间需要2分钟。

Stringa变量如何用Java基础创建并初始化为abc?

1. String a=abc; // 检查字符串常量池中是否存在abc,如果存在,将a指向该地址

2.String a=abc; // 检查字符串常量池中是否存在abc,如果存在,将a指向该地址

1、Stringaabc;首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在abc如果存在直接将a指向这个地址注意

1、String a "abc";

首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在"abc"如果存在直接将a指向这个地址注意指向的是字符串常量池中的地址

如果字符串常量池中不存在"abc"则进行如下操作1、在栈中创建三个char型的值a,b,c然后在堆中new一个String对象它的值是刚才在栈中创建的三个char型值组成的数组{a,b,c}接着这个String对象会被存放进字符串常量池中最后将a指向这个对象在字符串常量池中的地址。

String a "abc";

等效于

char data[] {a, b, c};

String a new String(data);

2、String a   new String("abc");

首先在栈中定义了一个引用变量a然后在堆中new一个String对象a指向这个对象然后new出来的String对象再指向常量池中的abc。

Stringa变量如何用Java基础创建并初始化为abc?

3、比较

String a "abc";

String b "abc";

String c new String("abc");

String d new String("abc");

System.out.println(ab);

System.out.println(ac);

System.out.println(c d);

执行结果

true

false

false

注意new String("abc") 无论字符串常量池中是否存在“abc”都会在堆中生成一个新的对象所以a、c、d三者不相等。

以上为个人理解如果有误欢迎指正。

本文共计329个文字,预计阅读时间需要2分钟。

Stringa变量如何用Java基础创建并初始化为abc?

1. String a=abc; // 检查字符串常量池中是否存在abc,如果存在,将a指向该地址

2.String a=abc; // 检查字符串常量池中是否存在abc,如果存在,将a指向该地址

1、Stringaabc;首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在abc如果存在直接将a指向这个地址注意

1、String a "abc";

首先在栈中定义了一个引用变量a检查字符串常量池中是否已经存在"abc"如果存在直接将a指向这个地址注意指向的是字符串常量池中的地址

如果字符串常量池中不存在"abc"则进行如下操作1、在栈中创建三个char型的值a,b,c然后在堆中new一个String对象它的值是刚才在栈中创建的三个char型值组成的数组{a,b,c}接着这个String对象会被存放进字符串常量池中最后将a指向这个对象在字符串常量池中的地址。

String a "abc";

等效于

char data[] {a, b, c};

String a new String(data);

2、String a   new String("abc");

首先在栈中定义了一个引用变量a然后在堆中new一个String对象a指向这个对象然后new出来的String对象再指向常量池中的abc。

Stringa变量如何用Java基础创建并初始化为abc?

3、比较

String a "abc";

String b "abc";

String c new String("abc");

String d new String("abc");

System.out.println(ab);

System.out.println(ac);

System.out.println(c d);

执行结果

true

false

false

注意new String("abc") 无论字符串常量池中是否存在“abc”都会在堆中生成一个新的对象所以a、c、d三者不相等。

以上为个人理解如果有误欢迎指正。