黑马程序员技术交流社区

标题: 关于String的疑问? [打印本页]

作者: Friends★    时间: 2012-4-22 08:43
标题: 关于String的疑问?
java基本数据类型中怎么不包含String呢,char和String又有什么具体的区别??



作者: liqian    时间: 2012-4-22 09:00
1.java数据类型图:
                                             ┏数值型━┳━整数型:byte short int long
              ┏基本数据类型━━┫              ┗━浮点型:float double
              ┃                            ┣字符型:char                                          
数据类型╋                            ┗布尔型:boolean              
              ┃                            ┏类(class)
              ┗引用数据类型━━╋接口(interface)
                                             ┗数组(array)
2.基本数据类型:这种类型的数据变量在声明之后java就会立刻分配给他内存空间。如:short a;  java会在可使用的内存空间寻找一个占两个字节的块给a变量。
3.引用数据类型:它以特殊的方式指向对象实体(具体的值),这类变量声明时不会分配内存,只是存储了一个内存地址。
作者: 马东华    时间: 2012-4-22 09:01
String 字符串是数据结构,它是字符的序列,从某种程度上来说有些类似于字符的数组
作者: zhaishuang    时间: 2012-4-22 09:06
楼主的问题很好,我从来没思考过这个问题。又让我学了新的知识,谢谢楼主了!
我百度了一下您说的String为什么不是基本数据类型;String是符合char*的变种,在C++里面是一个模板类;
其实我觉得就是char[]数组,只是长度不确定;就是一个类;
char和string很直观的区别是创建了之后再内存中分配的空间大小不同。
当char[]定义成数组,String定义成类存储字符串的时候好像可以通用吧;就是用数组存麻烦点
作者: 毕博    时间: 2012-4-22 09:09
区别比较大
首先char是单个字符 有长度限定
string是字符串,建立就不可更改(张老师说,指引用变量不能变,引用变量所指向的对象中的内容还是可以改变)
string之所以不在基本类型里,首先他也是一个类(也许字节码跟他们区别较大吧,希望有人能补充),被final修饰。
而那八种,也被封装成类,毕老师笔记里有。
作者: 刘_浩    时间: 2012-4-22 09:46
String相当于char的一种特殊衍生,我是这样理解的。char只能用于定义单个字符,必须加上单引号,这是区别于字符串的。当然定久单个字符串也是可以的如:String ch = "a"
作者: 施俊    时间: 2012-4-22 09:54
char是基本数据类型,基本数据类型可以直接存储在栈内存中,可以改变;String是引用数据类型,也就是说String的对象存储于堆内存,对象是不能改变的,但可以改变指向,也就是说如String a=“a”;a=“b”;这样其实是将a指向的对象改变了,而不是改变了“a”。“a”仍然存在于内存中。基本数据类型的数据时可变的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2