java中的字符串问题!
来源:互联网 发布:淘宝联盟app怎么返利 编辑:程序博客网 时间:2024/06/05 03:46
1.Java内置对字符串的支持;
所谓的内置支持,即不用像C语言通过char指针实现字符串类型,并且Java的字符串编码是符合Unicode编码标准,这也意味着不用像C++那样通过使用string和wstring类实现与C语言兼容和Unicode标准。Java内部通过String类实现对字符串类型的支持。
这意味着:我们可以直接对字符串常量调用和String对象同样的方法:
//可以再"abc"上直接调用String对象的所有方法
int length="abc".length();
以及
String abc=new String("abc");
int length=abc.length();
2.Java中的字符串值是constant(常量的)
这里的意思是字符串类型在创建完成之后,是不能改变其中的值的,从String的成员方法也可以看出没有能改变值的方法接口;并且像"abc",new String("def")中的”abc","def"存放于Java虚拟机中的常量池。
以下的代码中的"abc"存放于常量池中,因此变量a,ab指向的地址均为常量池中同一个"abc"。
public class StringTest {
public static void main(String[] args) {
String a="abc";
String ab="abc";
String abc=new String("abc");
System.out.println(ab==a);
System.out.println(a==abc);
}
}
/*程序输出:
* true
* false
* */
那么动态生成的、可变的字符串又是如何实现的呢?Java中提供StringBuffer和StringBuilder类实现这一需求;Java中字符串连接可以使用“+”操作符; 如:"abc"+"def";这里的内部实现也可以使用StringBuilder类或者StringBuffer类实现;那么StringBuilder和StringBuffer内部又是如何实现呢?是通过字符数组存储字符串。以下是从JDK附带的源码中找到的片段,可以看出StringBuffer内部使用char数组对字符串进行存储,其中的AbstractStringBuilder是StringBuffer的父类:
- java中的字符串问题!
- 字符串中的空格替换问题(Java版)
- 字符串中的问题
- 字符串中的三个问题
- Java中的字符串比较
- java中的字符串
- Java中的字符串分割
- Java中的字符串翻转
- Java中的字符串池
- Java中的字符串分割
- Java中的字符串
- Java中的字符串翻转
- Java中的字符串
- Java中的字符串驻留
- Java中的字符串拼接
- Java中的字符串分割
- 关于java中的字符串
- Java中的字符串分割
- android实现两个listview的同步滚动
- Python私有方法不能外部调用怎么理解?
- vim插件系列之NERDTree
- Java虚拟机 - 对象访问
- 十步配置ODBC数据源
- java中的字符串问题!
- error LNK2001: unresolved external symbol _WSCWriteProviderOrder@8
- 无法启动 SQL Server (MSSQLSERVER)
- java的一些处理错误的常识!
- SublimeText2中文输入
- java中的类调用!
- import-module的注意事项与NDK_MODULE_PATH的配置
- CentOS系统找回mysql登录密码
- java程序!