首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CharSequence与String

CharSequence和String是Java中两个不同的基本概念。本篇将介绍它们之间的差异与共性。CharSequenceCharSequence是一个表示字符序列的接口。这个接口不强制实现可变性;因此,可变类和不可变类都实现了这个接口。String、StringBuilder和StringBuffer都实现了这个接口。当然,一个接口不能直接实例化,它需要一个实现来实例化一个变量:

在这里,charSequence被一个String实例化。 实例化其他实现:

CharSequence接口定义了四种方法:

char charAt(int):返回指定位置的字符。

int length():返回序列的长度。

subSequence(int start, int end):返回由开始和结束参数指示的子字符串。

toString():返回String序列的表示。

如果使用CharSequence作为一个方法的参数类型,则对于这个方法,可以传递String、StringBuilder和StringBuffer作为参数。StringJava中,String类代表字符串。它是一个不可变的类,也是Java中最常用的类型之一。这个类实现了CharSequence,Serializable和Comparable接口。请记住,当你看到只带有引号的源代码时,编译器正在将它转换成一个String对象。差异与共性我们来比较一下CharSequence和String的差异和共性。它们都位于同一个名为java.lang的包中。但CharSequence是一个接口,String是一个具体的类。CharSequence与String都能用于定义字符串。但CharSequence的值是可读可写序列,而String的值是只读序列,即String类是不可变的。

publicclassCharSequenceDemo{publicstaticvoidmain(String[]args){CharSequenceobj="hello";Stringstr="hello";System.out.println("Type of obj: "+obj.getClass().getSimpleName());System.out.println("Type of str: "+str.getClass().getSimpleName());System.out.println("Value of obj: "+obj);System.out.println("Value of str: "+str);System.out.println("Is obj a String? "+(objinstanceofString));System.out.println("Is obj a CharSequence? "+(objinstanceofCharSequence));System.out.println("Is str a String? "+(strinstanceofString));System.out.println("Is str a CharSequence? "+(strinstanceofCharSequence));System.out.println("Is \"hello\" a String? "+("hello"instanceofString));System.out.println("Is \"hello\" a CharSequence? "+("hello"instanceofCharSequence));System.out.println("str.equals(obj)? "+str.equals(obj));System.out.println("(str == obj)? "+(str==obj));}

}

执行代码,打印结果:

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171216G0NZW900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券