问个Java中String创建的问题

Posted

tags:

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

比如 String a= new String("haha");
创建的过程是首先在stack中创建一个变量a,然后在heap中创建一个对象"haha",再在heap中new一个string空间指向"haha"。最后在a指向new出来的空间。问下大家是这样的吗?

LZ说的过程基本正确,但是有点不对
先再栈里面建立 String a ,然后再在堆里面new出一个String 对象haha ,new String("haha")是一个过程,创建一个对象,这个对象是String对象,haha是这个String对象的属性,当然这个String对象还包括了其他的一些东西,包括从object继承下来的一些方法,最后执行“=” a 指向这个被创建的对象地址
所以说lz"然后在heap中创建一个对象"haha""这句话是不对的,
String a= new String("haha"); 整个语句就创建了两个对象一个是字符串变量a,另外一个是String 其中属性为"哈哈";这个加不加haha进去都是创建了一个String对象,关键是看String的构造方法(可以多态的哈)。
按LZ的说法是创建了3个对象,这个说法明显有不妥之处,需要改正
参考技术A haha字符串说的是在stack中的一个字符串对象,而String a中的a只是一个对这个字符串对象的地址引用而已 参考技术B 好像是这两个对象都是在堆中的~物理地址不同。然后就是把a指向haha 参考技术C 悬赏积分很诱人啊。

问个关于JAVA排列组合代码的问题

小写字母a-z和数字0-9混合组合,把所有的可能显示出来,3位字符
例如aaa,aab,aac....aaz,aa0,aa1,aa2,...zz7,zz8,zz9
完整的代码,这对我初学者来说好困难。。对你们高手来说肯定也就是敲几下键盘的事情。。谢谢了!

package test;
public class tt

/**
* @param args
*/
public static void main(String[] args)
String[] arr="a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"
,"0","1","2","3","4","5","6","7","8","9";
int h=0;
for(int i=0;i<arr.length;i++)

for(int j=0;j<arr.length;j++)

for(int k=0;k<arr.length;k++)

System.out.print(arr[i]+arr[j]+arr[k]+" ");
h++;

System.out.println();





unicode编码我忘记了,就直接手写上去了,方正是实现了。呵呵
参考技术A public class TTT
public static void main(String[] args)
String[] s = new String[36];
for (int i = 0; i < 26; i++)
s[i] = String.valueOf((char) (i + 97));

for (int i = 0; i < 10; i++)
s[i + 26] = String.valueOf(i);

for (String k : s)
System.out.println(k);

for (int i = 0; i < 36; i++)
for (int j = 0; j < 36; j++)
for (int k = 0; k < 36; k++)
System.out.println(s[i] + s[j] + s[k]);




以上是关于问个Java中String创建的问题的主要内容,如果未能解决你的问题,请参考以下文章

刚学java的小白想问个关于读取键盘输入数字的问题

在idea中,创建Maven工程后,写Java项目,测试时出现错误,怎么解决?

问个JAVA控件位置放置问题

小弟问个MFC问题

java中StringBuffer与String创建对象问题???

java中string类创建对象