黑马程序员技术交流社区

标题: 刚接触String,请教一个问题 [打印本页]

作者: 黑马李磊    时间: 2013-3-12 18:25
标题: 刚接触String,请教一个问题
定义两个变量:
char ch = "hardwirking",
String str = "goodman"   ,
请问这样定义两个变量之间的差别是什么啊?
作者: 徐升2013    时间: 2013-3-12 18:29
本帖最后由 徐升2013 于 2013-3-12 18:33 编辑

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

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


这句是网上查到的,我还没看到那里仅供你参考:java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。
作者: 白堇翎    时间: 2013-3-12 18:31
char是字符 String是字符串
作者: 黑马李磊    时间: 2013-3-12 18:33
徐升2013 发表于 2013-3-12 18:29
第一个定义是错误的!。你不信编译试试就知道了char 后面是单引号,并且只有一个字符 ...

那char ch = '我'   ,
    String  str = "我" ,
语法正确不?
作者: 徐升2013    时间: 2013-3-12 18:35
黑马李磊 发表于 2013-3-12 18:33
那char ch = '我'   ,
    String  str = "我" ,
语法正确不?

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


楼主要知道数据类型不同,区别天差地别
作者: vmvm555    时间: 2013-3-12 18:41
char ch = "hardwirking",这句话编译无法通过吧,char是基本数据类型(在内存中占两个字节),String是引用数据类型
作者: 爪哇攻城狮    时间: 2013-3-12 18:43
  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可以看成一个字符数组。



作者: 施家雄    时间: 2013-3-12 19:16
对了,char占两个字符。可以是一个汉字或者是一个字符的。字符串才用String类型!所以第一种是错误的。
作者: 张雪萍    时间: 2013-3-12 19:20
char是字符类型,string是字符串类型,而且字符使用单引号,字符串用双引号。也可以说,前者是定义单个的,后者是定义一串的。
作者: 傅宇    时间: 2013-3-12 20:11
char型变量是用来存储Unicode编码的字符的,unicode编码字符集中包含了汉字,所以,char型变量中当然可以存储汉字啦。不过,如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。补充说明:unicode编码占用两个字节,所以,char类型的变量也是占用两个字节。

作者: HM李帅    时间: 2013-3-12 22:08
‘我'与"我"虽然看起来一样
但是在内存中的存储方式是不同的
作者: 黑马17期-闫东东    时间: 2013-3-12 22:18
char ch = "hardwirking";   错误    应该定义为 String类型的,char字符类型用单引号' '  引起的单个字符,如  char ='c';
   
作者: 安鹏宇    时间: 2013-3-13 03:25
char ch = "hardwirking",
String str = "goodman"

char是字符类型的  它的定义就是   char ch = ‘ ’//单引号 里边是单字节,对应ascii码  比如   ‘a’+1输出的值就是ascii码表中对应的值
String是字符串型   它的定义是  String str  = “  ”//双引号 里面输入什么就输出什么
作者: 安鹏宇    时间: 2013-3-13 03:25
char ch = "hardwirking",
String str = "goodman"

char是字符类型的  它的定义就是   char ch = ‘ ’//单引号 里边是单字节,对应ascii码  比如   ‘a’+1输出的值就是ascii码表中对应的值
String是字符串型   它的定义是  String str  = “  ”//双引号 里面输入什么就输出什么
作者: 李辉    时间: 2013-3-13 05:34
这帖子好火啊,我也来凑凑热闹{:soso_e197:}
作者: 猫腻    时间: 2013-3-13 09:49
楼主,及时结贴,否则锁帖,扣分了。警告!~




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