当前位置: 首页 >Java技术 > 浅谈Java之String

浅谈Java之String

字符串是常量,他们的值在创建之后不能修改字符串缓冲区支持可变的字符串,改变的只是引用的地址值。因为 String 对象是不可变的,所以可以共享。

例如:

String str = "abc";

等效于:

char data[] = {'a', 'b', 'c'};

String str = new String(data);

Java 语言提供对字符串串联符号("+")以及将其他对象转换为字符串的特殊支持。字符串串联是通过 StringBuilder(或 StringBuffer)类及其 append 方法实现的。字符串转换是通过 toString 方法实现的,该方法由 Object 类定义,并可被 Java 中的所有类继承。

对于String类而言,一旦有必要改变原来的内容,每个String方法都返回一个新的String对象。若内容不需要改变,则方法返回指向原来的那个String的一个引用,这样做可以节省存储空间和系统开销。

StringBuffer线程安全的可变字符序列。StringBuffer 上的主要操作是 append insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。

StringStringBuffer类的异同?

相同点:

1.       都是用来处理字符串的。

2.       都提供了以下方法,且用法相同。

length()toString()charAt()subString()

3.       字符在字符串内索引的起始位置:0

4.       subString(int beginIndex, int endIndex)截取字符串

范围:beginIndex~endIndex-1

字符个数:endIndex-beginIndex

不同点:

1.       String不可变,StringBuffer可变。

2.       String类重写了equeal方法,StringBuffer未重写。

3.       toString()的重写不同

String:返回当前实例本身

StringBuffer:返回缓冲区中所用字符内容的新的String引用。

4.       字符串的连接不同:+ <=> .append(str)

StringBufferString在效率上更加优异,因为String在操作字符串时是一个一个new String()下去的,而StringBuffer是象一个容器一样连下去的。String类,一旦创建了实例,系统就分配内存空间,StringBuffer类可以不分配内存空间,在程序执行的时候再根据需要分配。

 

 

 

 

编程题:

    1.写一方法String str1=1357 String str2=2468”,将str1,str2合并并输出“12345678”要求有输入和输出参数。

  package ch02;

import java.util.Arrays;

public class StrTest {

   

    public String  orderingByMerge(String s1,String s2)

    {

       String s=s1+s2;

        //将字符串转换为一个新的字符数组

       char []c = s.toCharArray();

        //对指定的 char 型数组按数字升序进行排序。

       Arrays.sort(c);

        //分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。

        //该字符数组的内容已被复制;后续对字符数组的修改不会影响新创建的字符串。

       String str = new String(c);

       retu str;

    }

    public static void main(String[] args) {

       StrTest st = new StrTest();

       String str1 = "1357";

       String str2 = "2468";

       String s = st.orderingByMerge(str1, str2);

       System.out.println(s);  

    }

}

作者:haozh502
来源链接:https://blog.csdn.net/haozh502/article/details/4423776

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/java/113466.html

标签:String
分享给朋友:

“浅谈Java之String” 的相关文章

1024 节日快乐!Linux find 命令介绍 2022年05月15日 21:41:25
两年前写的Java基础总结书 2022年05月15日 21:50:51
ActiveMQ安装部署(win版和linux版) 2022年05月15日 21:58:27
AIX系统下挂载外置存储 2022年05月16日 19:50:58
利用docker部署elk交换机日志分析 2022年05月16日 19:51:05
Java中四种访问修饰符的区别 2022年05月17日 16:04:05
在JAVA 中将堆与栈分开的原因 2022年05月21日 11:41:31
【Linux:开源操作系统】 2022年05月23日 21:29:44