string是什么意思
String和String的区别
1.
首先String不属于8种基本数据类型,String是一个对象。
因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。
2.
new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
3.
String str=”kvill”;
String
str=new String (“kvill”);的区别:
在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念。
常量池(constant
pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。
看例1:
String
s0=”kvill”;
String
s1=”kvill”;
String
s2=”kv” + “ill”;
System.out.println(
s0==s1 );
System.out.println(
s0==s2 );
结果为:
true
true
首先,我们要知道Java会确保一个字符串常量只有一个拷贝。
因为例子中的s0和s1中的”kvill”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”kv”和”ill”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中
”kvill”的一个引用。
所以我们得出s0==s1==s2;
用new
String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。
看例2:
String
s0=”kvill”;
String
s1=new String(”kvill”);
String
s2=”kv” + new String(“ill”);
System.out.println(
s0==s1 );
System.out.println(
s0==s2 );
System.out.println(
s1==s2 );
结果为:
false
false
false
例2中s0还是常量池中”kvill”的应用,s1因为无法在编译期确定,所以是运行时创建的新对象”kvill”的引用,s2因为有后半部分new
String(“ill”)所以也无法在编译期确定,所以也是一个新创建对象”kvill”的应用;明白了这些也就知道为何得出此结果了。
4.
String.intern():
再补充介绍一点:存在于.class文件中的常量池,在运行期被JVM装载,并且可以扩充。String的intern()方法就是扩充常量池的一个方法;当一个String实例str调用intern()方法时,Java查找常量池中是否有相同Unicode的字符串常量,如果有,则返回其的引用,如果没有,则在常量池中增加一个Unicode等于str的字符串并返回它的引用;看例3就清楚了
例3:
String
s0= “kvill”;
String
s1=new String(”kvill”);
String
s2=new String(“kvill”);
System.out.println(
s0==s1 );
System.out.println(
“**********” );
s1.intern();
s2=s2.intern();
//把常量池中“kvill”的引用赋给s2
System.out.println(
s0==s1);
System.out.println(
s0==s1.intern() );
System.out.println(
s0==s2 );
结果为:
false
**********
false
//虽然执行了s1.intern(),但它的返回值没有赋给s1
true
//说明s1.intern()返回的是常量池中”kvill”的引用
true
最后我再破除一个错误的理解:
有人说,“使用String.intern()方法则可以将一个String类的保存到一个全局String表中,如果具有相同值的Unicode字符串已经在这个表中,那么该方法返回表中已有字符串的地址,如果在表中没有相同值的字符串,则将自己的地址注册到表中“如果我把他说的这个全局的
String表理解为常量池的话,他的最后一句话,“如果在表中没有相同值的字符串,则将自己的地址注册到表中”是错的:
看例4:
String
s1=new String("kvill");
String
s2=s1.intern();
System.out.println(
s1==s1.intern() );
System.out.println(
s1+" "+s2 );
System.out.println(
s2==s1.intern() );
结果:
false
kvill
kvill
true
在这个类中我们没有声名一个”kvill”常量,所以常量池中一开始是没有”kvill”的,当我们调用s1.intern()后就在常量池中新添加了一个”kvill”常量,原来的不在常量池中的”kvill”仍然存在,也就不是“将自己的地址注册到常量池中”了。
s1==s1.intern()为false说明原来的“kvill”仍然存在;
s2现在为常量池中“kvill”的地址,所以有s2==s1.intern()为true。
5.
关于equals()和==:
这个对于String简单来说就是比较两字符串的Unicode序列是否相当,如果相等返回true;而==是比较两字符串的地址是否相同,也就是是否是同一个字符串的引用。
6.
关于String是不可变的
这一说又要说很多,大家只要知道String的实例一旦生成就不会再改变了,比如说:String
str=”kv”+”ill”+” “+”ans”;
就是有4个字符串常量,首先”kv”和”ill”生成了”kvill”存在内存中,然后”kvill”又和”
“ 生成 ”kvill “存在内存中,最后又和生成了”kvill
ans”;并把这个字符串的地址赋给了str,就是因为String的“不可变”产生了很多临时变量,这也就是为什么建议用StringBuffer的原因了,因为StringBuffer是可改变的。
string怎么读
string读音是[strɪŋ]。 string释义:n. 线;弦;一串;字串vt. 串起;收紧;悬挂;系;扎;使紧张;使兴奋vi. 连成一串短语:string scrupulously谨慎地上弦string strenuously艰难地排成一行string along欺骗string的用法:string作名词时意思是“琴弦”,转化为动词的意思是“装弦于”、“上弦”。引申可表示“连成一串”、“排成一行”、“缚”、“捆”等。string既可用作及物动词,也可用作不及物动词。用作及物动词时,接名词、代词作宾语。用作不及物动词时与along连用,意思是“欺骗”。
string怎么读
读音:英 [strɪŋ],美 [strɪŋ]。1、释义一串;线;细绳;带子;一系列;一连串;一批;字符串;弦;(管弦乐团的)弦乐器,弦乐器组;特定条件(或限制)2、词组String Orchestra弦乐团;弦乐队vibrating string振动弦String topology弦拓扑3、例句Puppets are worked by strings.木偶是用线来操纵的。同近义词辨析string,rope,line这些名词均含线之意。1、string普通用词,指捆绑小件物品的细绳或细带子。2、rope指用于捆绑大物件的粗壮而坚固的绳子,一般用绵、毛、麻、金属或其它材料制成。3、line普通用词,含义广泛,指任何一种线,常作引申用。
string是什么意思
string是字符串的意思。string造句:1、The calculated value consists of a localizable resource string for untitled controls.计算的值是由未命名控制项的可当地语系化资源字串组成。2、If this flag is set for every occurring match the appendant string offset will also be returned.如果设定本标记,对每个出现的匹配结果也同时返回其附属的字符串偏移量。3、This striking action is why the piano is a percussion instrument instead of a string instrument.这个敲击的动作就可以解释为什么钢琴是打击乐器而不是弦乐器。4、Wilson was a second string for New Zealand in last week's match.在上周的比赛中,威尔逊是新西兰队的替补队员。5、Her call for "commonsense conservatism" is a string of cliches.她所呼吁的“常识性保守主义”只不过是老生常谈。6、I need a piece of string to tie this parcel up.我需要一根细绳把这包裹扎起来。
string是什么数据类型
字符串类。string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。C++ 中的 string 类MFC中的CString类使用起来非常的方便好用,但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。
string类型是什么?
字符串类。string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。C++ 中的 string 类MFC中的CString类使用起来非常的方便好用,但是如果离开了MFC框架,还有没有这样使用起来非常方便的类呢?答案是肯定的。也许有人会说,即使不用MFC框架,也可以想办法使用MFC中的API,具体的操作方法在本文最后给出操作方法。其实,可能很多人很可能会忽略掉标准C++中string类的使用。标准C++中提供的string类得功能也是非常强大的,一般都能满足我们开发项目时使用。
string用英语怎么说
string用英语的读法是英[strɪŋ];美[strɪŋ]。一、词语用法。1、string作名词时意思是“琴弦”,转化为动词的意思是“装弦于”“上弦”。引申可表示“连成一串”“排成一行”“缚”“捆”等。2、string既可用作及物动词,也可用作不及物动词。用作及物动词时,接名词、代词作宾语;用作不及物动词时与along连用,意思是“欺骗”。3、string的过去式和过去分词均为strung。二、短语搭配。second string.替补资源;替补方案;备选队员;二线队员。string ideas together.把许多想法连贯起来。string line.台盘限制区界线;开球线。string quartet.弦乐四重奏;弦乐四重奏曲。string双语例句:1、The father didn't reply,but just cut the string off the reel(线轴).父亲没有回答,只是把线轴剪断了。2、By using the string you help the kite go up in the right direction.通过使用绳子,你可以帮助风筝朝着正确的方向上升。3、When you cut the string,it could not support the kite.当你剪断绳子时,它无法支撑风筝。4、Lush string accompaniments to romantic scenes in films.伴随影片中浪漫场景的华美弦乐。