以下JAVA代码 String s1="bc"; String s2="b为什么只创建了一个对象?在Java当中,String是一个比较特殊的类,跟其他引用类型的变量不同,String在某些时候可以当作基本类型的变量来看待,这就是题目当中的s1和s2跟只创建一个对象的道理,创建的两个变量都指向了同一块内存空间 。\x0d\x0aString s1=new String("bc"); String s2=new String("bc");则是创建两个对象,每次new的时候都是在内存当中另外开辟出一块空间分别储存 。\x0d\x0a\x0d\x0a还有一句很重要的话就是:String永远不会发生改变,任何对String的操作都是另外返回一个新的String,而不是在原有的String上进行修改:\x0d\x0a例如:String s1 = "bc";\x0d\x0aString s2 = s1;\x0d\x0a\x0d\x0as1 = "de";\x0d\x0a\x0d\x0a这时输出s2会发现s2仍然等于"bc"\x0d\x0a\x0d\x0a正是String的这个特性,占用太多内存空间,后来才有了StringBuffer/StringBuilder两个类 。\x0d\x0a关于String这个比较特殊类的用法还有很多,楼主有兴趣的话可以单独找来看看 。
java中string什么意思啊1.String不属于基本数据类型,String是一个对象 。,因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象 , 有其它对象没有的一些特性 。
2. new String()和new String(“”)都是申明一个新的空字符串 , 是空串不是null;
3. String str=”kvill”;
String str=new String (“kvill”);
区别:这里不谈堆也不谈栈,只先简单引入常量池这个简单的概念 。
常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据 。它包括了关于类、方法、接口等中的常量,也包括字符串常量 。
java中String是什么?仔细看:解释的不好,还请指点!
String他很特殊,Java为他单独设计了一些方法,你不要和其他类混淆!(是被Java封装好了的)
知道构造原理以后,他其实也很简单,我先说特殊地方,就是双引号
String s="你好";此刻s指向的就是一个字符串对象,是对象!与你平时写的new很类似,只不过他这个对象放在常量池里面!你想想,有没有其他对象可以直接用双引号来声明对么?这就是特殊地方!(String s="你好"等效 String s=new String("你好");)
它的对象组成其实也很简单,底层用的是数组,和字典!
比如"abc";Java会先去看看常量池有没有abc,如果没有,它就从字典里面(就是字符集编码表)去找,先找a放进数组,然后在找b放进数组,在找c,然后就组成了一个长度为3的char类型数组了!
这个abc被封装成一个对象,放进了常量池里面!
所以等你学了容器以后,你会发现字符串的拼接组成,非常影响效率,大都使用容器进行解决这个问题了!
另外,Java是开源的,你如果想仔细研究,可以打开String源码一看究竟!
java中string类的方法有哪些?方法摘要\x0d\x0acharcharAt(intindex)\x0d\x0a返回指定索引处的char值 。\x0d\x0aintcodePointAt(intindex)\x0d\x0a返回指定索引处的字符(Unicode代码点) 。\x0d\x0aintcodePointBefore(intindex)\x0d\x0a返回指定索引之前的字符(Unicode代码点) 。\x0d\x0aintcodePointCount(intbeginIndex,intendIndex)\x0d\x0a返回此String的指定文本范围中的Unicode代码点数 。\x0d\x0aintcompareTo(StringanotherString)\x0d\x0a按字典顺序比较两个字符串 。\x0d\x0aintcompareToIgnoreCase(Stringstr)\x0d\x0a不考虑大小写java代码string,按字典顺序比较两个字符串 。\x0d\x0aStringconcat(Stringstr)\x0d\x0a将指定字符串联到此字符串的结尾 。\x0d\x0abooleancontains(CharSequences)\x0d\x0a当且仅当此字符串包含char值的指定序列时java代码string , 才返回true 。\x0d\x0abooleancontentEquals(CharSequencecs)\x0d\x0a当且仅当此String表示与指定序列相同的char值时 , 才返回true 。\x0d\x0abooleancontentEquals(StringBuffersb)\x0d\x0a当且仅当此String表示与指定的StringBuffer相同的字符序列时,才返回true 。\x0d\x0astaticStringcopyValueOf(char[]data)\x0d\x0a返回指定数组中表示该字符序列的字符串 。\x0d\x0astaticStringcopyValueOf(char[]data,intoffset,intcount)\x0d\x0a返回指定数组中表示该字符序列的字符串 。\x0d\x0abooleanendsWith(Stringsuffix)\x0d\x0a测试此字符串是否以指定的后缀结束 。\x0d\x0abooleanequals(ObjectanObject)\x0d\x0a比较此字符串与指定的对象 。\x0d\x0abooleanequalsIgnoreCase(StringanotherString)\x0d\x0a将此String与另一个String进行比较 , 不考虑大小写 。\x0d\x0astaticStringformat(Localel,Stringformat,Object...args)\x0d\x0a使用指定的语言环境、格式字符串和参数返回一个格式化字符串 。\x0d\x0astaticStringformat(Stringformat,Object...args)\x0d\x0a使用指定的格式字符串和参数返回一个格式化字符串 。\x0d\x0abyte[]getBytes()\x0d\x0a使用平台默认的字符集将此String解码为字节序列 , 并将结果存储到一个新的字节数组中 。\x0d\x0avoidgetBytes(intsrcBegin,intsrcEnd,byte[]dst,intdstBegin)\x0d\x0a已过时 。该方法无法将字符正确转换为字节 。从JDK1.1起 , 完成该转换的首选方法是通过getBytes()构造方法,该方法使用平台的默认字符集 。\x0d\x0abyte[]getBytes(StringcharsetName)\x0d\x0a使用指定的字符集将此String解码为字节序列,并将结果存储到一个新的字节数组中 。\x0d\x0avoidgetChars(intsrcBegin,intsrcEnd,char[]dst,intdstBegin)\x0d\x0a将字符从此字符串复制到目标字符数组 。\x0d\x0ainthashCode()\x0d\x0a返回此字符串的哈希码 。\x0d\x0aintindexOf(intch)\x0d\x0a返回指定字符在此字符串中第一次出现处的索引 。\x0d\x0aintindexOf(intch,intfromIndex)\x0d\x0a从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引 。\x0d\x0aintindexOf(Stringstr)\x0d\x0a返回第一次出现的指定子字符串在此字符串中的索引 。\x0d\x0aintindexOf(Stringstr,intfromIndex)\x0d\x0a从指定的索引处开始 , 返回第一次出现的指定子字符串在此字符串中的索引 。\x0d\x0aStringintern()\x0d\x0a返回字符串对象的规范化表示形式 。\x0d\x0aintlastIndexOf(intch)\x0d\x0a返回最后一次出现的指定字符在此字符串中的索引 。\x0d\x0aintlastIndexOf(intch,intfromIndex)\x0d\x0a从指定的索引处开始进行后向搜索 , 返回最后一次出现的指定字符在此字符串中的索引 。\x0d\x0aintlastIndexOf(Stringstr)\x0d\x0a返回在此字符串中最右边出现的指定子字符串的索引 。\x0d\x0aintlastIndexOf(Stringstr,intfromIndex)\x0d\x0a从指定的索引处开始向后搜索 , 返回在此字符串中最后一次出现的指定子字符串的索引 。\x0d\x0aintlength()\x0d\x0a返回此字符串的长度 。\x0d\x0abooleanmatches(Stringregex)\x0d\x0a通知此字符串是否匹配给定的正则表达式 。\x0d\x0aintoffsetByCodePoints(intindex,intcodePointOffset)\x0d\x0a返回此String中从给定的index处偏移codePointOffset个代码点的索引 。\x0d\x0abooleanregionMatches(booleanignoreCase,inttoffset,Stringother,intooffset,intlen)\x0d\x0a测试两个字符串区域是否相等 。\x0d\x0abooleanregionMatches(inttoffset,Stringother,intooffset,intlen)\x0d\x0a测试两个字符串区域是否相等 。\x0d\x0aStringreplace(charoldChar,charnewChar)\x0d\x0a返回一个新的字符串 , 它是通过用newChar替换此字符串中出现的所有oldChar而生成的 。\x0d\x0aStringreplace(CharSequencetarget,CharSequencereplacement)\x0d\x0a使用指定的字面值替换序列替换此字符串匹配字面值目标序列的每个子字符串 。\x0d\x0aStringreplaceAll(Stringregex,Stringreplacement)\x0d\x0a使用给定的replacement字符串替换此字符串匹配给定的正则表达式的每个子字符串 。\x0d\x0aStringreplaceFirst(Stringregex,Stringreplacement)\x0d\x0a使用给定的replacement字符串替换此字符串匹配给定的正则表达式的第一个子字符串 。\x0d\x0aString[]split(Stringregex)\x0d\x0a根据给定的正则表达式的匹配来拆分此字符串 。\x0d\x0aString[]split(Stringregex,intlimit)\x0d\x0a根据匹配给定的正则表达式来拆分此字符串 。\x0d\x0abooleanstartsWith(Stringprefix)\x0d\x0a测试此字符串是否以指定的前缀开始 。\x0d\x0abooleanstartsWith(Stringprefix,inttoffset)\x0d\x0a测试此字符串是否以指定前缀开始,该前缀以指定索引开始 。\x0d\x0aCharSequencesubSequence(intbeginIndex,intendIndex)\x0d\x0a返回一个新的字符序列,它是此序列的一个子序列 。\x0d\x0aStringsubstring(intbeginIndex)\x0d\x0a返回一个新的字符串,它是此字符串的一个子字符串 。\x0d\x0aStringsubstring(intbeginIndex,intendIndex)\x0d\x0a返回一个新字符串,它是此字符串的一个子字符串 。\x0d\x0achar[]toCharArray()\x0d\x0a将此字符串转换为一个新的字符数组 。\x0d\x0aStringtoLowerCase()\x0d\x0a使用默认语言环境的规则将此String中的所有字符都转换为小写 。\x0d\x0aStringtoLowerCase(Localelocale)\x0d\x0a使用给定Locale的规则将此String中的所有字符都转换为小写 。\x0d\x0aStringtoString()\x0d\x0a返回此对象本身(它已经是一个字符串java代码string?。?。\x0d\x0aStringtoUpperCase()\x0d\x0a使用默认语言环境的规则将此String中的所有字符都转换为大写 。\x0d\x0aStringtoUpperCase(Localelocale)\x0d\x0a使用给定的Locale规则将此String中的所有字符都转换为大写 。\x0d\x0aStringtrim()\x0d\x0a返回字符串的副本,忽略前导空白和尾部空白 。\x0d\x0astaticStringvalueOf(booleanb)\x0d\x0a返回boolean参数的字符串表示形式 。\x0d\x0astaticStringvalueOf(charc)\x0d\x0a返回char参数的字符串表示形式 。\x0d\x0astaticStringvalueOf(char[]data)\x0d\x0a返回char数组参数的字符串表示形式 。\x0d\x0astaticStringvalueOf(char[]data,intoffset,intcount)\x0d\x0a返回char数组参数的特定子数组的字符串表示形式 。\x0d\x0astaticStringvalueOf(doubled)\x0d\x0a返回double参数的字符串表示形式 。\x0d\x0astaticStringvalueOf(floatf)\x0d\x0a返回float参数的字符串表示形式 。\x0d\x0astaticStringvalueOf(inti)\x0d\x0a返回int参数的字符串表示形式 。\x0d\x0astaticStringvalueOf(longl)\x0d\x0a返回long参数的字符串表示形式 。\x0d\x0astaticStringvalueOf(Objectobj)\x0d\x0a返回Object参数的字符串表示形式 。\x0d\x0a从类java.lang.Object继承的方法\x0d\x0aclone,finalize,getClass,notify,notifyAll,wait,wait,wait
推荐阅读
- 阿里云服务器socket,阿里云服务器可以干嘛
- 昆明什么电视套餐好用,昆明电视网络哪种好用
- q版飞行游戏头像,飞行岛头像
- 虎牙直播中心有什么用处,虎牙直播主播中心在哪
- vb.net如何终止循环 vb停止循环
- java代码插件,java插件包
- html5图片从左到右显示不出来,html5图片左右移动
- mysql的命令怎么表示不是,mysql的命令怎么表示不是数字
- 用vb.net画一个表单 vb怎么画表格