String s=null;
String s="";
String s=new String();
以上三种的区别是什么?请详细解答!
java,三种String的区别?
答案:6 悬赏:80 手机版
解决时间 2021-03-10 14:32
- 提问者网友:孤山下
- 2021-03-10 08:02
最佳答案
- 五星知识达人网友:玩世
- 2021-03-10 09:11
第一个声明并未初始化属于引用类型的变量并未得到具体的存放数据的内存地址而第二和第三种都在声明的同时初始化属于地址类型变量他们都得到了存放数据的内存地址是可用的
全部回答
- 1楼网友:旧脸谱
- 2021-03-10 14:55
我也不懂
- 2楼网友:低血压的长颈鹿
- 2021-03-10 13:26
你怎么这么懒呢,查API呀。。
String() 初始化一个新创建的 String 对象,它表示一个空字符序列。
String(byte[] bytes)
构造一个新的 String,方法是使用平台的默认字符集解码字节的指定数组。
String(byte[] bytes, int offset, int length, String charsetName)
构造一个新的 String,方法是使用指定的字符集解码字节的指定子数组。
String(byte[] bytes, String charsetName)
构造一个新的 String,方法是使用指定的字符集解码指定的字节数组。
String(char[] value)
分配一个新的 String,它表示当前字符数组参数中包含的字符序列。
String(char[] value, int offset, int count)
分配一个新的 String,它包含来自该字符数组参数的一个子数组的字符。
String(int[] codePoints, int offset, int count)
分配一个新的 String,它包含该 Unicode 代码点数组参数的一个子数组的字符。
String(String original)
初始化一个新创建的 String 对象,表示一个与该参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的一个副本。
String(StringBuffer buffer)
分配一个新的字符串,它包含当前包含在字符串缓冲区参数中的字符序列。
String(StringBuilder builder)
分配一个新的字符串,它包含当前包含在字符串生成器参数中的字符序列。
- 3楼网友:等灯
- 2021-03-10 12:45
String s=null;是定义了一个字符串,它的内容是空的,就是没有内容
String s="";是定义了一个空的字符串,它是有内容的,但是内容是空的
String s=new String();是定义了一个String类的对象,这个对象的内容还没赋值
- 4楼网友:老鼠爱大米
- 2021-03-10 11:23
按理来说你应该更明白的是第三中啊,这个很简单阿。你看i+""也就是一个int型的常量。+上个空的字符串,这里牵涉到了string的一些基础知识,string类型的+int在java中他会去这样理解是string类型的字符串跟上个int类型的i代表的字符串(先把i转换为string),int+string型就是先将int型的i转为string然后跟上后面的string,这东西纯属我自己的理解
- 5楼网友:雪起风沙痕
- 2021-03-10 10:14
看了楼上说的···
我也不懂了··
这都写的啥啊?
String s=null;表示为一个String 应用赋空值。如果此时使用s将得到空指针异常。这样做主要是避免编译器提示字符串s未初始化。但是不提倡。
String s="";表示新建一个字符串,该字符串是没有字符。虽然s没有字符,但是有值,也就是有对象,所以使用它不会报空指针异常。此时的字符串就是"",它的值就是空字符串。和null是不同的。
String s=new String();
通第二种情况,只是另外一种建立字符串对象的方法而已。结果与第二种一样。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯