CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  SUN Java 认证

关于字符取等的问题

楼主vbar(S.Q.Y)2003-11-01 15:20:17 在 Java / SUN Java 认证 提问

大家看这个程序段运算结果,帮忙解释一下  
  //a   为一个声明的字符型变量  
  if(   a   ==   'c')  
   
  {  
      System.out.println("true");  
  }  
  else  
  {  
          System.out.println("false");  
   
  } 问题点数:0、回复次数:11Top

1 楼dulang200x(独狼)回复于 2003-11-01 15:46:41 得分 0

要看你前面的a是怎么定义的!Top

2 楼vbar(S.Q.Y)回复于 2003-11-01 17:28:40 得分 0

是用数据流读入的  
  Top

3 楼zjcxx(云啸)回复于 2003-11-04 17:43:18 得分 0

falseTop

4 楼peigen(比碗浅)回复于 2003-11-04 22:56:39 得分 0

不懂你的意思哦Top

5 楼alley_zhan(晓柯)回复于 2003-11-06 20:10:36 得分 0

a是string类型的?  
  用a.equals("c")Top

6 楼yxqc(颖秀倾城)回复于 2003-11-11 22:13:33 得分 0

a.compateTo(c)==0Top

7 楼cyzwziyu(ziyu22)回复于 2003-11-12 13:13:16 得分 0

由a   ==   'c',我觉得,是基本char,所以是trueTop

8 楼mzzhou(janet)回复于 2003-11-13 23:22:19 得分 0

似乎记得char型不可以这样比较的吧  
  Top

9 楼vbar(S.Q.Y)回复于 2003-12-02 12:37:34 得分 0

可以这样比较的,我终于搞懂了,其实这是一个在java中的"="和"equals"区别的问题了  
  当为引用统一快内存的时候,是可以相等的,也就是true  
  当为不是同块内存的时候,就是false  
  当用equals时,所作的是值比较,所以要返回真这里应该是用equals的  
  进来太忙,没来得及回贴,清多多原谅,谁又补充的,清跟贴,谢谢!Top

10 楼cyzwziyu(ziyu22)回复于 2003-12-02 17:38:11 得分 0

我想基本类型都是这样比的吧,没什么特别的呀Top

11 楼cohorse(cohorse)回复于 2003-12-04 14:55:52 得分 0

说得不对,如果a是一个char类型的变量  
  根本就不可以用equals,不是对象类型是不可以直接调用方法的  
   
  a的值如果是'c'('c'表示一个字符),那么这里就有可能返回true。  
  另外,说到==和equals的区别,我认为根本没有可比性  
  非要比的话  
  equals因为是个方法,各类中可以随便写。这个方法是从Object类继承来的。  
  如果不重载,就比较内存地址。  
  ==比的永远是内存地址。  
  Top

相关问题

  • 字符串取字符
  • 取字符
  • 取字符串s
  • 字符截取
  • 字符截取
  • 取字符
  • 取字符串
  • 截取字符串
  • 提取字符串
  • 提取字符串

关键词

  • 字符
  • 内存
  • equals
  • 类型
  • 方法
  • true

得分解答快速导航

  • 帖主:vbar

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo