java字符串赋值
A. 如何实现java 字符串变量间的赋值
可以用new一个字符串,字符串本身就比较特殊,根据创建方式不同,占用的内存区域也不同。
如果用String str = new String("acb");那么就会再堆内存中分配一个空间。如果按你上面那种赋值,那么当a="afdf"时候,就会栈中找值等于"dfdf"的字符串,如果找到了,就将a的引用指向它,如果没有找到就开通新的内存,让后a指向它,执行到b=a;时同上,当然这个时候栈中必然有"dfdf"所以不会开辟新的内存空间,而是将b的引用直接指向"dfdf"所占的内存地址。
栈内存中的值可以共享,而堆内存不同,因为堆内存是在编译的时候才会分配的,属于动态的,因为事先也不知道,它会占用多大内存,所以不好分配。
B. 怎样在java 中用键盘读入一个字符串后赋给一字符串变量
java中实现用键盘读入一个字符串后赋值给字符串变量可以使用Scanner来获取键盘输入的字符串,并声明一个字符串变量来存储键盘输入的字符串。
示例代码如下:
publicclassScannerDemo{
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);//创建Scanner对象
System.out.println("请输入字符串:");
Stringstr=scan.next();//获取键盘输入的字符串并复制给变量
System.out.println("输入的字符串为"+str);
}
}
Scanner类主要用来获取键盘输入的信息。
C. java中字符串赋值问题
Java运行时会维护一个String
Pool(String池,
String常量池,
字符串缓冲区)
String池用来存放运行时中产生的各种字符串,并且池中的字符串的内容不重复。
而一般对象不存在这个缓冲池,并且创建的对象仅仅存在于方法的堆栈区
String
s
=
"accp";
创建s之前系统会先在"池子"中查找是否已经存在这个字符串,
如果存在则直接符号该字符串的句柄
如果不存在,
系统会创建一个新"accp"字符串,
并返回句柄,
以后再有"accp"被要求创建,
系统不会创建新的,而是直接返回已经存在的字符串的句柄
String
s
=
new
String("accp");
系统不会去"池子"中查找,
直接在内存中新开辟一块空间,
初始化为"accp",并返回句柄
D. java中 输入字符串怎么给String数组赋值
因为你第一个for循环后i的值已经变成了2 即i=2
而你的数组的长度是2 下标最多是1 在下面的if判断里面你直接使用filenames[i] 此时的i=2 当然错误
java.lang.: 2
E. java中字符串数组如何赋值
变量初始化,和变量赋值是两个不同的语法。
数组初始化时,可以为null,{value1,value2,value3,....},或者赋予另一个数组的值:String[] b = a;
常量只能被初始化,一次,不能再次赋值;
非常量则可以进行赋值操作,赋值操作只能赋予以下情况:null,另一个数组的值。
lz的问题中,a={","}是一个初始化的语法,不是正确的赋值语法。
F. java 字符串变量赋值例如 String a="abc"; String b; b=a; b="
Stringa="abc";//定义了一个"abc"字符串,a指向这个字符串
Stringb;
b=a;//使b也指向a现在指向的那个字符串("abc")
b="abcd";//定义了一个"abcd"字符串,b指向这个新的字符串
在内存中大致的示意图如下:
所以最后 a =“abc”,b=“abcd”
java中字符串是一个较为特殊的存在,如果感兴趣可以找资料详细了解
Java中字符串内存位置浅析
触摸java常量池
G. JAVA中这两种给字符串变量赋值的方法有区别吗
有区别。new出来的对象在堆内存中。
直接赋值的字符串在 常量池区
H. java字符串数组增加赋值
你那是语法错误了
,[]里面给的值是数组的长度
是个数值。
string[]
forname
=
new
string[]{"name","nam2","name3"};
I. java字符串赋值
选BC
a是正确的,定义s并复制一个字符串字面量abcd
b是错误的,\0表示字符串的结束,如果不写,默认添加上,这段是正确的,但字符串不能用单引号,必须用双引号,因此也是错误的
c是错误的,\表示转义身后的字符,\a在java中不是转义字符,\n表示换行,\t表示一个制表符,\r表示回车等
d是正确的,正确定义s,但未初始化
J. java怎么字符串给字符串赋值
JAVA中赋值操作统一 用“=”就可以了包括字符串赋值,如:
String a = "adfasdfasgasdg";