如题,把斜杠/当作字符或字符串有什么区别呢?
一个是当作基本数据类型char,一个是对象String。具体有什么区别呢?
当作字符效率会更高吗?
String str = "abc" + '/';
和
String str = "abc" + "/";
------解决思路----------------------
刚才猜测了一下,两个在空间存储上完全相同
private final char value[];
public String() {
this.value = new char[0];
}
public String(String original) {
this.value = original.value;
this.hash = original.hash;
}
String 在存储中是按照字符数组存储的,所以,字符型的 '/' 和 字符串型的 "/" 到了存储时都是 char[] 数组中的一个字符而已
试了一下
String str1 = "abc" + "/";
String str2 = "abc" + '/';
System.out.println(str1 == str2);
str1 和 str2 相等,而且它们指向同样的字符串常量
------解决思路----------------------
我觉得应该使用的是valueOf方法变为字符串的,毕竟String的构造函数就没有
String(char ch)只有
String(char[] value)。 至于说str1和str2参见
String.intern()方法的介绍
------解决思路----------------------
楼主提的问题真不错
我一般在做Web项目的时候都是使用字符串的,而且经常都在DB里组好字符串(可能使用Stored Procdure),基本上卡效率的地方不在这里。
------解决思路----------------------
问题很好,其实如果不是/而是a的话,可能就有差别了
------解决思路----------------------
虽然我不是很懂但是你都是存成了String 类型 应该是char强转了吧
------解决思路----------------------

这种常量字符串编译阶段直接得结果,不存在运行效率差异问题
------解决思路----------------------
额, 关于这个问题我觉得可以使用javap工具,
详细的过程我写了一个博客: http://blog.csdn.net/u011004037/article/details/45248117
7楼厉害!!! 在是常量时确实没区别, 可是是变量时就有区别了
------解决思路----------------------
string类型 就是char[] ,“/”就是1个字符的字符串,占的内存都是一样大。