关于引用的一个简单问题。。。。。。

success1234 2009-04-09 09:06:07
Bigdecimal abc;
这是声明一个引用吗??
TestBean bean = new TestBean();
abc = bean.getMoney();
这是给对象赋值。。。吗?bean.getMoney();返回的是值吧??
根 abc = new Bigdecimal(100); 有什么区别??


...全文
95 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
fangpengyu 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dreamhunter_lan 的回复:]
Bigdecimal abc;声明了一个引用变量
abc = ?????是给这个变量赋值,本质上没什么区别
[/Quote]
同意
success1234 2009-04-11
  • 打赏
  • 举报
回复
up
zhuwen9 2009-04-11
  • 打赏
  • 举报
回复
学习 O(∩_∩)O~
natty_boy 2009-04-11
  • 打赏
  • 举报
回复
路过,学习
微笑兔 2009-04-11
  • 打赏
  • 举报
回复
两者不太一样
TestBean bean = new TestBean();
abc = bean.getMoney(); 是调用方法返回的是TestBean 的对象。
一个 BigDecimal 由一个任意精度的整数值和一个非负的整数标度组成,整数标度代表小数点右边的十进制数字的个数(用 BigDecimal 表示的数值大小是 intVal/10**scale)。 BigDecimals 提供基本的算术操作、精度处理、比较、格式转换和散列。

BigDecimal 类使它的用户对舍入行为有完全的控制权,迫使用户显式地指定能够舍弃部分精度( (除法 和 setScale))的舍入操作的舍入行为。为达到该目的,该类提供了八个 舍入模式 。同时针对 BigDecimal 的精度操作提供了两种类型的操作:数值调整/舍入 (scaling/rounding)操作和小数点移动操作。Scaling/Rounding 操作 (SetScale) 返回一个 BigDecimal,其数值近似 (或精确) 等于操作数,其有效范围是指定的值;也就是说,它们以对数值产生最小影响的方式增加或减少精度。十进制小数点移动操作 (movePointLeft 和 movePointRight)返回一个 BigDecimal ,它是把操作数的小数点在指定方向移动一个指定距离产生的;这种操作可以改变一个数字的值但不影响它的精度。

success1234 2009-04-11
  • 打赏
  • 举报
回复
up
SimonYeung 2009-04-11
  • 打赏
  • 举报
回复
[Quote=引用楼主 success1234 的帖子:]
Bigdecimal abc;
这是声明一个引用吗??
[/Quote]
是的
[Quote=引用楼主 success1234 的帖子:]
TestBean bean = new TestBean();
abc = bean.getMoney();
这是给对象赋值。。。吗?
[/Quote]
不是,这是把保存bean.getMoney();的返回值之内存中的临时地址赋给abc,即abc指向这个临时地址,地址中的值就是bean.getMoney();的结果,该返回值类型应该与abc的类型(Bigdecimal)保持一致,当主方法执行完之后,该临时变量的地址被收回。[Quote=引用楼主 success1234 的帖子:]
bean.getMoney();返回的是值吧??
是的,该值保存在内存中的一个临时地址中,地址的值就是bean.getMoney();的返回值。[/Quote]
[Quote=引用楼主 success1234 的帖子:]
根 abc = new Bigdecimal(100); 有什么区别??
这里和谁做对比呢? abc = new Bigdecimal(100);是在内存的heap(堆)中,new出来一个构造参数为100的Bigdecimal类的无名对象,然后将该对象的地址赋给abc[/Quote]
success1234 2009-04-09
  • 打赏
  • 举报
回复
up
dreamhunter_lan 2009-04-09
  • 打赏
  • 举报
回复
Bigdecimal abc;声明了一个引用变量
abc = ?????是给这个变量赋值,本质上没什么区别
jourqel 2009-04-09
  • 打赏
  • 举报
回复
是赋值~当然abc的数据类型要和bean.getMoney()值的类型匹配~要不就要通过类型转换~
跟abc = new Bigdecimal(100)没有太大的区别~只是赋值方式不同而已~

81,094

社区成员

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

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