java中String是对象还是类?详解java中的String
有很多人搞不懂对象和类的定义。比如说java中String到底是对象还是类呢?
有人说String 既可以说是类,也可以说是对象。
其实他这么说也没问题, 类和对象其实都是一个抽象的概念。 我们可以把一类东西归集在一起,起一个名字,什么类,专门做什么事的,但是我们也可以说它是一个对象……
所以说String 既可以说是类,也可以说是对象。
但是如果你要深究,比如小编就饿深究了一下,我发现在java.lang中,这是个基础类,你可以好好看lang包中的源码。
public final class String extends Object implements Serializable,Comparable < String >,CharSequence
在java.lang中,String类代表字符串。Java程序中的所有字符串文字,例如"abc",都被实现为此类的实例。
字符串不变; 它们的值在创建后不能被更改。字符串缓冲区支持可变字符串。因为String对象是不可变的,它们可以被共享。例如:
String str =“abc”;
相当于:
char data [] = {'a','b','c'};
String str = new String(data);
以下是一些如何使用字符串的示例:
System.out.println( “ABC”);
String cde =“cde”;
System.out.println(“abc”+ cde);
String c =“abc”.substring(2,3);
String d = cde.substring(1,2);
该类String包括用于检查序列的各个字符的方法,用于比较字符串,用于搜索字符串,用于提取子字符串,以及用于创建将所有字符翻译为大写或小写的字符串副本。案例映射基于Character该类指定的Unicode标准版本。
Java语言为字符串连接运算符(+)提供特殊支持,并为其他对象转换为字符串。通过StringBuilder(或StringBuffer)类及其append方法实现字符串连接。字符串转换通过toString由ObjectJava中的所有类定义并由其继承的方法 实现。有关字符串连接和转换的其他信息,请参阅Gosling,Joy和Steele, Java语言规范。
除非另有说明,否则将null参数传递给此类中的构造函数或方法将导致NullPointerException抛出。
甲String表示在其中UTF-16格式的字符串增补字符由表示替代双(见节的Unicode字符表示在Character类的更多信息)。索引值是指char代码单位,所以补充字符在a中使用两个位置String。
的String类提供使用Unicode代码点(即,字符)处理,除了那些用于处理Unicode代码单元(即,方法char的值)。
所以以后遇到什么问题,小伙伴们可以查文档,看源码。查文档也可以知道它是类,看源码就可以快速的了解这个是啥。
以后你看一个东西是否是interface,class,等等都可以使用类似这种方法。
类: 是对一个实物的主观抽象以及定义, 对象 就是这个类所产生的具体的实例 ,String s=new String();这里的 String 是一个类,s是String类所产生的对象。。
String()
初始化一个新创建的 String 对象,使其表示一个空字符序列。
String(byte[] bytes)
通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String。
String(byte[] bytes, Charset charset)
通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
String(byte[] ascii, int hibyte)
已过时。 该方法无法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset、字符集名称,或使用平台默认字符集的 String 构造方法。
String(byte[] bytes, int offset, int length)
通过使用平台的默认字符集解码指定的 byte 子数组,构造一个新的 String。
String(byte[] bytes, int offset, int length, Charset charset)
通过使用指定的 charset 解码指定的 byte 子数组,构造一个新的 String。
String(byte[] ascii, int hibyte, int offset, int count)
已过时。 该方法无法将字节正确地转换为字符。从 JDK 1.1 开始,完成该转换的首选方法是使用带有 Charset、字符集名称,或使用平台默认字符集的 String 构造方法。
String(byte[] bytes, int offset, int length, String charsetName)
通过使用指定的字符集解码指定的 byte 子数组,构造一个新的 String。
String(byte[] bytes, String charsetName)
通过使用指定的 charset 解码指定的 byte 数组,构造一个新的 String。
String(char[] value)
分配一个新的 String,使其表示字符数组参数中当前包含的字符序列。
总结一下(pz):类, 是对一个实物的主观抽象以及定义, 对象 就是这个类所产生的具体的实例 。String s=new String();
这里的 String 是一个类,s是String类所产生的对象。。本质上,String是一个类,可如果说你要使用它时就是可实例化一个对象。
String是一个很特殊的类!不同于基本类型
最新文章
- ADT - Eclipse 常用快捷键
- mac终端命令
- 自己写一个JS单向数据流动库----one way binding
- Sqlserver 循环表
- javac 编译与 JIT 编译
- Node.js深受欢迎的六大原因
- LeetCode题解——ZigZag Conversion
- (转)FastDFS_v5.05安装配置
- springFramework 源码学习之源码下载与编译
- Scale-up(纵向扩展) vs Scale-out(横向扩展)
- 用SignalR做类似QQ登录的应用
- Java二维数组的概念和使用方法
- Python3-Cookbook总结 - 第三章:数字日期和时间
- Linux : Vim 使用与配置 (附 GitHub 自动化配置脚本)
- Tomcat 之session 持久化1
- Shell脚本 | 一键获取安卓应用活动名
- .net 循环引用是否会造成内存泄漏
- 小波变换——子带编码,Subband Coding
- ethereumjs/ethereumjs-block-2-api
- HTML或者JSP页面--执行完某事件后刷新页面,重置表单,清空数据
热门文章
- python 语句:条件、循环、break、continue...
- python 自动化接口测试(6)
- node.js框架express的安装
- How To Use ggplot2
- Java事物基础总结
- AngularJS学习笔记3
- php checkbox 从数据库读取和写入
- SQLiteServer+SQLiteClient 用于.Net项目的SQLite服务端程序和客户端类库
- Websphere(was)与Weblogic部署EJB的注意项
- SQL Server pivot 行转列遇到的问题