基础类问题!求助

fshylove 2008-02-19 02:42:04
先看这个:short s1;s1=s1+1与short s1;s1+=1有什么不同?
String s=new String("zyx");怎么是创建了两个String对象?
先谢过了!
...全文
125 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
stilgetfirst 2008-02-19
  • 打赏
  • 举报
回复
3楼的回答很精采,喜欢^-^
wuxo84 2008-02-19
  • 打赏
  • 举报
回复
String s=new String("zyx");怎么是创建了两个String对象? 很搞很搞很搞的问题了,关于讨论它的问题而产生的口水够把撒哈拉沙漠绿化了已经……

hahahaha~
rain_night 2008-02-19
  • 打赏
  • 举报
回复
我还是回答第一个问题吧
short s1;s1=s1+1 //类型应与1(int型)一样,所以将进行类型转换,转换成int型。
应该用s1=(short)(s1+1);
short s1;s1+=1 //正确的,不用进行类型转换 这里1是short类型
Ant 2008-02-19
  • 打赏
  • 举报
回复
《Java深度历险》里面提到过这个问题,

用+=的话会逃避掉损失精度的检查,所以不推荐使用,一般写开成i=i+1;这是好习惯,嗬嗬!

Sting这个问题就太老了一点,我就不说了,估计很多人会说!
nwsl 2008-02-19
  • 打赏
  • 举报
回复
1.不觉得有何不同。除了类型强制转换以外,只是写法不同吧?
2。String是唯一可以用字面量形式表示的对象,所以String字面量是一种特殊的字面量,它本身是一个对象,而不像其它基本类型字面量如整数,有Integer等类的封装形式。
"xyz"分配一个内存,String s=new String("xyz")再次创建一个对象。
kkkdyc 2008-02-19
  • 打赏
  • 举报
回复
short s1;s1=s1+1 //错误1 缺少类型转换,同2楼
//错误2 s1 未初始化

short s1;s1+=1 //错误 s1 未初始化



String s=new String("zyx");怎么是创建了两个String对象? 很搞很搞很搞的问题了,关于讨论它的问题而产生的口水够把撒哈拉沙漠绿化了已经……


String s=new String("zyx");
创建了 2 个string对象----大家几乎一致同意了这个;
创建了 3个对象----仍有争议,因为大家对“对象”的理解不同,不确定 引用变量s 是否属于 对象;


2个string对象:1个"zyx"是创建在常量池中,在加载的时候创建;
1个"zyx"是创建在heap中,在运行的时候创建;

lfcai 2008-02-19
  • 打赏
  • 举报
回复
short s1;s1=s1+1 //类型应与1(int型)一样,所以将进行类型转换,转换成int型。
应该用s1=(short)(s1+1);
short s1;s1+=1 //正确的,不用进行类型转换


"zyx"是一个;
new String("zyx")又一个

62,629

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧