1:String是基本数据类型吗?
byte int char long float double boolean short
java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。
为了提高效率节省空间,用StringBuffer类。
2:String s = "hello"; s = s + "world";执行后,原始的String对象中的内容到底变了没有?
没有。String被设计成不可变(immutable)类。所以它的对象都是不可变对象。
3:String实现equals方法,new String("abc").equals(new String("abc"))结果为true
StringBuffer没有实现equals方法,new StringBuffer("abc").equals(new StringBuffer("abc"))为false
4:把一段逗号分割的字符串转换成数组
正则表达式,String str = "1,2,3";
String[] obj = str.split(",")
5:数组没有length()方法,有length的属性,String有length()方法。
6:String s = "a"+"b"+"c"+"d";共创建了多少个对象?
String s1 = "a";
String s2 = s1 + "b";
String s3 = "a"+ "b";
System.out.println(s2 == "ab");
System.out.println(s3 == "ab");
第一条语句打印false,第二条打印true,这说明javac编译可以对字符串常量直接相加的
表达式进行优化,不必要等到运行期去进行加法运算处理,而是在编译时去掉其中的加号,
直接将其编译成一个这些常量相连的结果。
题目中代码被编译器在编译时优化后,相当于直接定义一个"abcd"的字符串,所以,上面的代码
只创建一个String对象。
String s = "a"+"b"+"c"+"d"; System.out.println(s == "abcd");打印true
7:String StringBuffer StringBuilder区别
String对一串字符进行操作,不可变类。
StringBuffer对一串字符进行操作,可变类。
String:
为不可变对象,一旦被创建,就不能修改它的值。
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新值保存进去
String是final类,即不能被继承。
StringBuffer:
为可变对象,当需要修改时,不需要重新建立对象。只能通过构造函数建立。
StringBuffer zt = new StringBuffer();
对象被建立后,在内存中就会分配内存空间,并初始保存一个null。
向StringBuffer中的赋值的时候通过append方法。
zt.append("hello");
StringBuilder:
不是线程安全的,一般用在单线程操作,如果需要同步,建议使用StringBuffer。
8:String s = new String("xyz");创建了几个String Object?二者有什么区别?
两个或一个。"xyz"对应一个对象,这个对象放在字符串常量缓冲区,常量"xyz"不管出现多少遍
都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,如果以前用过
'xyz',这句代表就不会创建"xyz"自己了,直接从缓存区拿。
9:什么是不可变对象(immutable object),不可变对象有什么好处,在什么情况下应该用,或者更具体一些,Java的String类为什么要设成immutable类型?
相对于可变对象,不可变对象有很多优势:
1).不可变对象可以提高String Pool的效率和安全性。如果你知道一个对象是不可变的,那么需要拷贝这个对象的内容时,就不用复制它的本身而只是复制它的地址,复制地址(通常一个指针的大小)需要很小的内存效率也很高。对于同时引用这个“ABC”的其他变量也不会造成影响。
2).不可变对象对于多线程是安全的,因为在多线程同时进行的情况下,一个可变对象的值很可能被其他进程改变,这样会造成不可预期的结果,而使用不可变对象就可以避免这种情况。
相关推荐
Java String 类型 API 测试代码 1.String和char[]之间的转换 toCharArray(); 2.String和byte[]之间的转换 getBytes() Arrays工具类 : Arrays.toString(names) String类 String replace(char oldChar, ...
public static String[] split(String s, String regex) s参数为待拆分字符串, regex参数有两种格式: 单字符的字符串(长度1),功能如下:split(“ab#12#453”, “#”) 返回带5个元素的数组:ab, #, 12, #, 453 ...
一、 C++的string的使用 3 1.1 C++ string简介 3 1.2 string的成员 3 1.2.1 append 3 1.2.2 assign 4 1.2.3 at 4 1.2.4 begin 5 1.2.5 c_str 5 1.2.6 capacity 5 1.2.7 clear 6 1.2.8 compare 6 1.2.9 copy 6 1.2.10...
String a="hello world"; //在java中有一个常量池,当创建String 类型的引用变量给它赋值时,java会到它的常量池中找"hello world"是不是在常量池中已存在。如果已经存在则返回这个常量池中的"hello world"的地址...
string常用截取字符串方法有很多,但是配合使用以下两种,基本都能满足要求: find(string strSub, npos); find_last_of(string strSub, npos); 其中strSub是需要寻找的子字符串,npos为查找起始位置。找到返回子...
java编程中对字符串的各种方式的处理,包括(空字符串处理、判断是否是空字符串 null和"" 都返回 true、 把string array or list用给定的符号symbol连接成一个字符串、 判定第一个字符串是否等于的第二个字符串中的某...
305-字符串函数string.h应用举例(51单片机C语言实例Proteus仿真和代码)305-字符串函数string.h应用举例(51单片机C语言实例Proteus仿真和代码)305-字符串函数string.h应用举例(51单片机C语言实例Proteus仿真和代码)...
基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用...
C语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING.HC语言头文件 STRING....
C# string byte数组转换解析 C# string byte数组转换实现的过程是什么呢?C# string byte数组间的转换需要注意什么呢?C# string byte数组间转换所涉及的方法是什么呢?让我们来看看具体的内容: C# string byte数组...
设计string类 要求: 1、为该类定义构造函数,析构函数和赋值操作。构造函数至少应有三个:无参构造函数、C风格字符串构造函数和复制构造函数 2、为string类提供必要的成员函数,可以参考C++类库的string类提供了...
1、char[]与string之间的转换 //string 转换成 Char[] string str=hello; char[] arr=str.ToCharArray(); //Char[] 转换成 string string str1 = new string(arr); 2、byte[]与string之间的转化 string str = 你好...
一、 C++的string的使用 4 1.1 C++ string简介 4 1.2 string的成员 4 1.2.1 append 4 1.2.2 assign 5 1.2.3 at 5 1.2.4 begin 6 1.2.5 c_str 6 1.2.6 capacity 6 1.2.7 clear 7 1.2.8 compare 7 1.2.9 copy 7 1.2.10...
string转换double string转换double string转换double string转换double
Linux的作者Linus Torvalds的C语言函数库源代码(部分)string.c <br>1 /* 2 * linux/lib/string.c 3 * 4 * Copyright (C) 1991, 1992 Linus Torvalds 5 */ 6 7 /* 8 * stupid library ...
String和string区别以及string详解
string
使用过protobuf的同学肯定对pb的DebugString相关方法再熟悉不过了,其作用就是打印输出pb对象。有些时候我们可能会有根据这个输出还原原始pb对象的需求。仔细观察发现输出并不是标准json格式,也就是说基于json→pb...
String.h函数详解 1、strcpy 函数名: stpcpy 功 能: 拷贝一个字符串到另一个 用 法: char *stpcpy(char *destin, char *source); 程序例: #include <stdio.h> #include <string.h> int main...
1、string–>number string类型 *1 即可变成 number类型 2、number–>string number类型 +’‘ 即可变成 string 类型 [removed] function screenInfo() { var str = '012.8372'; var s = 0; str = str...