当前位置:首页 » 编程语言 » javastring初始化

javastring初始化

发布时间: 2022-06-13 15:57:55

Ⅰ 求教java中初始化字符串变量String toConfession=""

表示的是一个空字符串,其实Java创建String变量有两种方式,一种是你这种,直接用双引号带内容的方式,另一种是String str = new String("内容");

这两种方式是有区别的,这涉及到池的概念,在java中有个常量池,通过第一种方式创建,那JVM会先去常量池里面找有没有你的内容,如果有的话,就直接指向那个内容所在位置,如:String str1 = "1"; 这种方式创建,常量池中已经存在了"1"这个常量,所以str1就直接指向了它;而第二种方式,通过new来创建的,String str2 = new String("1");这个时候虽然在常量池中已经存在了"1"这个常量,可是它还是会去堆中先实例化一个对象,然后对象指向常量池中的 "1";

总结:
第一种方式:若常量池有已经存在的对象,这种初始化方式不会创建对象(通常常量池会先实例化好1-128的整数)
第二种方式:就算常量池已存在对象,还是会在堆中new一个字符串对象,然后指向常量池中的内容

Ⅱ java String数组初始化问题

并不是出乱码了,是你把r加入进去了,r是一个String数组,无法直接转换为String

最后的那句 sb.append(r.toString()); 没有必要,删除就可以了

Ⅲ Java局部变量初始化,String类型为什么不用初始化就能使用

局部变量String需要初始化!

以下代码:

public class Test {

public static void main(String[] args) {

String s;

System.out.println(s);

}

}

这个代码直接报错,无法编译

你上面的代码没错是因为你在while循环里对s进行了初始化

Ⅳ java String 初始化 是 null 还是 “” 他们的区别

你在创建的时候,没有初始化时或赋值时,打印出的是null
因为String类型是一个对象,而不像int之类是基本类型有初始默认值
如果在初始时赋值“”(空值),那也算创建对象了(就是相当于new 操作)
打印出的为“”(空值)

Ⅳ java中的string类中内容一旦被初始化就不能改变为什么还有replace方法呢

朋友,你好,对于你的问题,我觉得下面的回答您会满意明了:
string类对象中的内容一旦被初始化就不能再改变
没错的,这是string类的特性,一定要记住。
下面举个例子:
string
s
=
"hello";
//这时候会在内存中开辟一块空间存储“hello”,并且s的引用指向它;
s
=
“world”;
//看这句,初学者一般觉得这样的话s的值就变了啊,跟string的特性相违背了啊,其实并不然,s只是对象的引用,真正的对象存在了内存中,执行这句语句的时候,会在内存中重新开辟一块内存,用来存储“world”,并将原来的s引用指向“world”。但是原来的内存中的“hello”并没有改变。也就是说string类对象中的内容一旦被初始化就不能再改变。
希望您会看明白。

Ⅵ JAVA中一个类包含String数组怎么初始化的

不可以滴!!
因为在B中,如果没有了带*的那一行,那么仅仅只是代表 有存在一个存放A类型数组:as[i],但是里面每个元素到底存放什么我们是不知道的,在JAVA里面,就是引用为空的意思,既as[i] = null。就是说里面其实是没有任何东西的,仅仅只有一个定义而已,那怎么可以指向A类里面的a属性呢?因为as[i]指向的东西都为空,空就是代表没有任何东西,那么里面自然也不会有a这个属性咯。所以我们在声明完数组的时候,必须把数组里面的元素也申明了。但是为什么C可以呢。
你看C是这样做的:
C先声明了一个数组,所以只要存在C的实例,就可以使用到这个数组。虽然这时候,数组里面的元素是为空的,但是你在主程序里面使用了c.s[1]="3",意思就是为c实例里面的数组的第2个元素给申明了,而不是直接引用,这与B是不同的。
——————————————————————————————————————————————————————
B-->不为空,所以可以使用B里面的元素,既as数组,但是as数组里面的元素是空的,所以不存在里面有某种属性的说法,自然是不可是使用A类里面的元素a咯。
C--》不为空,所以可以使用C里面的元素s数组,然后对s数组进行操作。
祝你好运!!希望你能够理解

Ⅶ java中string类型变量的默认初始值是什么

java中string类型变量的默认初始值是为null。

Ⅷ java中String类型一定需要初始化吗

如果后面有
赋值语句
,那么就不需要初始化,如果没有赋值语句,需要初始化,测试代码如下:
class
test
{
public
static
void
main(String[]
args)
{
String
s;
//System.out.println(s);
s="Hello";
System.out.println(s);
}
}
如果把注释部分的注释符号去掉,则会出现s未初始化的错误提示

Ⅸ java String 初始化 是 null 还是 “” 他们的区别

String str1 = null; str引用为空

String str2 = ""; str引用一个空串

也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。

注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){...}和if(str2.equals("")){...}。

对象用equals比较,null用等号比较。因此,如果str1=null;下面的写法错误:
if(str1.equals("")||str1==null){//如果str1没有值,则....
//。。。。
}
正确的写法是 if(str1==null||str1.equals("")){ //先判断是不是对象,如果是,再判断是不是空字符串
//...
}
打个比方:一个空玻璃杯,你不能说它里面什么都没有,因为里面有空气,当然也可以把它弄成真空,null与" "的区别就象真空与空气一样。

热点内容
怎样删除小视频文件夹 发布:2024-05-19 05:49:29 浏览:589
开启php短标签 发布:2024-05-19 05:44:12 浏览:473
android各国语言 发布:2024-05-19 05:42:54 浏览:247
微信什么资料都没怎么找回密码 发布:2024-05-19 05:35:34 浏览:907
填志愿密码是什么 发布:2024-05-19 05:30:23 浏览:318
城堡争霸自动掠夺脚本 发布:2024-05-19 05:22:06 浏览:204
asp编程工具 发布:2024-05-19 05:20:36 浏览:143
insertpython 发布:2024-05-19 05:12:26 浏览:244
androidant编译 发布:2024-05-19 05:04:11 浏览:988
按键脚本优化 发布:2024-05-19 04:59:57 浏览:752