栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

字符串和字符数组之间的区别

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

字符串和字符数组之间的区别

要更正编译错误,请使用以下

char[]
语句之一替换

String s = "MY PROFESSION";char c1[] = "MY PROFESSION".toCharArray();char c2[] = { 'M', 'Y', ' ', 'P', 'R', 'O', 'F', 'E', 'S', 'S', 'I', 'O', 'N' };StringBuilder sb = new StringBuilder("MY PROFESSION");StringBuffer sbu = new StringBuffer("MY PROFESSION");

下一节将以上陈述相互比较

字符串常量

String s="MY PROFESSION";
  • “ MY PROFESSION”是一个常量,并存储在String池中
  • s
    是不可变的,即
    String
    完整的内容无法修改。
  • 字符串的大小/长度是固定的(无法附加)

字符数组

 char c1[]="MY PROFESSION".toCharArray(); char c2[]={'M', 'Y', ' ', 'P', 'R', 'O', 'F', 'E', 'S', 'S', 'I', 'O', 'N'};
  • c1
    保存String的基础数组的副本(通过
    System.arraycopy
    )并存储在堆空间中
  • c2
    通过加载单个字符常量在堆栈框架中动态构建
  • c1
    c2
    是可变的,即的内容
    Array
    可以修改。
    c2[0]='B'
  • 数组的大小/长度是固定的(无法追加)

StringBuilder / StringBuffer

StringBuilder sb = new StringBuilder("MY PROFESSION");StringBuffer sbu = new StringBuffer("MY PROFESSION");
  • 这两个
    sb
    sbu
    是可变的。
    sb.replace(0, 1, 'B');
  • 双方
    sb
    sbu
    存储在堆
  • 大小/长度可以修改。
    sb.append( '!');
  • StringBuffer
    的方法是同步的,而
    StringBuilder
    的方法不是


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414396.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号