A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Friends★ 中级黑马   /  2012-4-22 08:43  /  2313 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java基本数据类型中怎么不包含String呢,char和String又有什么具体的区别??


6 个回复

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