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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马李磊 中级黑马   /  2013-3-12 18:25  /  2401 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

定义两个变量:
char ch = "hardwirking",
String str = "goodman"   ,
请问这样定义两个变量之间的差别是什么啊?

评分

参与人数 1技术分 +1 收起 理由
scott0610 + 1 鼓励,鼓励

查看全部评分

15 个回复

倒序浏览
本帖最后由 徐升2013 于 2013-3-12 18:33 编辑

第一个定义是错误的!。你不信编译试试就知道了char 后面是单引号,并且只有一个字符

而超过一个字符的 java默认就认为是字符串了,所以你定义的就错误了
基本数据类型 char定义的数据长度是2个字节。
char是基本数据类型,而string 不是基本数据类型了。


这句是网上查到的,我还没看到那里仅供你参考:java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
char是字符 String是字符串

点评

回答尽量详细,否则很难得到技术分的。  发表于 2013-3-13 09:47
回复 使用道具 举报
黑马李磊 来自手机 中级黑马 2013-3-12 18:33:05
板凳
徐升2013 发表于 2013-3-12 18:29
第一个定义是错误的!。你不信编译试试就知道了char 后面是单引号,并且只有一个字符 ...

那char ch = '我'   ,
    String  str = "我" ,
语法正确不?
回复 使用道具 举报
黑马李磊 发表于 2013-3-12 18:33
那char ch = '我'   ,
    String  str = "我" ,
语法正确不?

语法正确,但是含义不同,   第一个是基本数据类型字符型的, 第二个不是。这里的区别我也说不太清楚的,基本数据类型是可以转换的这个你知道吧,由小转大, 最后都可以转换成double  而你定义的那个string类型的是肯定不能像基本数据类型那样转换的,至于string类中有没有转换的方法,这个我还没看到,暂时无法回答


楼主要知道数据类型不同,区别天差地别
回复 使用道具 举报
char ch = "hardwirking",这句话编译无法通过吧,char是基本数据类型(在内存中占两个字节),String是引用数据类型

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1 参与就好

查看全部评分

回复 使用道具 举报
  1. class StringDemo1
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 char ch = 'g';
  6.                 //char ch1="hardworking";
  7.                 String str = "goodman";
  8.                 System.out.println(ch+"-----"+str);
  9.         }
  10. }
复制代码
运行ch1的话,会报错。


char 是定义字符类型。
String 是定义字符串类型的。

char定义的内容用单引号‘ ’
String定义的内容用双引号“ ”

String的内部实现是基于char数组实现的,所以说String可以看成一个字符数组。


评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
对了,char占两个字符。可以是一个汉字或者是一个字符的。字符串才用String类型!所以第一种是错误的。
回复 使用道具 举报
char是字符类型,string是字符串类型,而且字符使用单引号,字符串用双引号。也可以说,前者是定义单个的,后者是定义一串的。

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
‘我'与"我"虽然看起来一样
但是在内存中的存储方式是不同的
回复 使用道具 举报
char ch = "hardwirking";   错误    应该定义为 String类型的,char字符类型用单引号' '  引起的单个字符,如  char ='c';
   
回复 使用道具 举报
char ch = "hardwirking",
String str = "goodman"

char是字符类型的  它的定义就是   char ch = ‘ ’//单引号 里边是单字节,对应ascii码  比如   ‘a’+1输出的值就是ascii码表中对应的值
String是字符串型   它的定义是  String str  = “  ”//双引号 里面输入什么就输出什么
回复 使用道具 举报
char ch = "hardwirking",
String str = "goodman"

char是字符类型的  它的定义就是   char ch = ‘ ’//单引号 里边是单字节,对应ascii码  比如   ‘a’+1输出的值就是ascii码表中对应的值
String是字符串型   它的定义是  String str  = “  ”//双引号 里面输入什么就输出什么

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
这帖子好火啊,我也来凑凑热闹{:soso_e197:}
回复 使用道具 举报
楼主,及时结贴,否则锁帖,扣分了。警告!~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马