Flyingis
Talking and thinking freely !
Flying in the world of GIS !
BlogJava
|
首页
|
发新随笔
|
发新文章
|
联系
|
聚合
|
管理
随笔:156 文章:16 评论:549 引用:0
2006年3月30日
[Java Puzzlers]表达式随想
作者:
Flyingis
前段时间到书店抱了几本书回来,虽说网上有很多电子版的资料,但有时候觉得一些比较经典、自己比较喜欢的书籍还是有必要捧在手上细读的,《Java Puzzlers》就是其中之一,没事的时候就喜欢拿出来翻翻,怕自己像看新闻报纸一样看过就淡忘了,还是略作笔记让自己多份思考。
软件开发人员无论最初是从哪种语言开始学习的,首先都要掌握该语言的编程基础,例如语句、表达式、变量、数据类型、运算符、字符串等等,这些基础性的知识简单,但细节却比较繁琐,不同的编译器也会有不同的编译规则。以前寝室有同学考过的全国计算机等级考试二级C语言的试题中,语言的础规则是出题者最热衷的题形之一,曾经也觉得出题者无聊,只重理论不看实际,毕竟一些表达方法和书写格式可以通过规范来约束简化,但是作为一名程序员,一个专业的开发人员,应该了解自己所使用语言的基础规则,有时候一些程序的BUG就是存在于这些不起眼,或是自己认为应该没有问题的地方。
Java语言的表达式和C/C++比较相近,但也存在一些差异,这些差异不仅仅是那些看得见的差异,还有隐性的,例如相同的表达式,编译的规则不同。因此,我们需要理解Java表达式的一些基础性知识,加深认识。
1. 要精确表达一个浮点型变量,应该使用BigDecimal对象来构造这个实例,使用float或double在一般情况下只是提供了在一定精度范围下的一种近似,不能产生精确的结果。常用的数据库中都有与BigDecimal相对应的数据类型,有的更为详细。
2. 对于 long value = 30 * 300 * 3000 * 3000; 来说,long类型可以完整保存右边表达式计算的结果,但是右边表达式的计算是按照int类型进行的,只有当右边表达式计算完成后才会转换为long类型,在计算过程中,右边表达式的值就已经超出int范围,因此会出现计算溢出。
3. 通常我们使用最多的是十进制计算,和十进制不同的是,当十六进制或八进制常量的最高位被置位时,该常量是负值。
4. 注意数据类型之间的相互转换(特别是char类型和其他类型间的转换),以及三目运算符的第二和第三操作数类型不一致的情况处理。
5. 在C/C++中,操作符的操作数是从右向左计算,Java中相反。
6. 复合赋值操作和简单赋值操作在一般情况下是相同的,例如 x *= y 和 x = x * y ,但是当x和y类型不同时情况有所变化,例如当x为short类型,y为double类型时,x *= y的结果虽然和想象的有些出入,至少可以编译通过,但后者赋值却是非法的。
大家可以继续补充……
posted @
2006-03-30 23:47
Flyingis 阅读(794) |
评论 (1)
|
编辑
收藏
<
2006年3月
>
日
一
二
三
四
五
六
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
公告
Flyingis
博客空间内所有文章除特别声明为[转载],均为作者的学习心得和原创作品。如要转载,请注明作者名
flyingis及原文地址
联系方式
----
博客订阅
----
Google 广告
----
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(30)
给我留言
查看公开留言
查看私人留言
我参与的团队
架构师之家(0/0)
WebGIS开发设计组(0/0)
随笔分类
Algorithm(4)
(rss)
ArcEngine(9)
(rss)
ArcGIS Server(5)
(rss)
ArcIMS(7)
(rss)
ArcSDE(2)
(rss)
Diary(22)
(rss)
Eclipse Plugin(1)
(rss)
GIS-GPS-RS(28)
(rss)
Hibernate(6)
(rss)
JavaSE(28)
(rss)
Linux | Unix 技术(5)
(rss)
Web 客户端技术(24)
(rss)
Web 框架与开发(11)
(rss)
其他开源(3)
(rss)
架构与设计(8)
(rss)
随笔档案
2008年4月 (1)
2007年12月 (2)
2007年10月 (2)
2007年9月 (4)
2007年8月 (3)
2007年7月 (2)
2007年6月 (4)
2007年5月 (2)
2007年4月 (8)
2007年3月 (4)
2007年1月 (4)
2006年12月 (2)
2006年11月 (7)
2006年10月 (6)
2006年9月 (11)
2006年8月 (5)
2006年7月 (8)
2006年6月 (6)
2006年5月 (3)
2006年4月 (7)
2006年3月 (9)
2006年2月 (5)
2006年1月 (11)
2005年12月 (16)
2005年11月 (19)
2005年10月 (5)
文章分类
Health(1)
(rss)
Life(4)
(rss)
Recycle Bin(4)
(rss)
Technology(7)
(rss)
新闻档案
2006年10月 (1)
.Net 技术
ASP.net
(rss)
Ajax Technology
Ajaxian
(rss)
AjaxPatterns
Ajax中国
(rss)
ASP.Net Ajax
(rss)
Cross Browser
dp.SyntaxHighlighter
DWR
dynarch.com
(rss)
JavaScript Weblog
(rss)
Prototype
Rico
script.aculo.us
SoftComplex
WebFX
Eclipse Technology
Eclipse
Eclipsepowered
EclipseWorld
ESRI Technology
ESRI
(rss)
ESRI Developer Network
ESRI 中国
(rss)
ESRI 中国社区
GIS Technology
EOGEO
FreeGIS
GISuser.com
OGC
(rss)
OSGeo
uDig
Java Technology
Dev2Dev
(rss)
IBM developerWorks(CN)
IBM developerWorks(EN)
InfoQ
InfoQ in China
JavaEye
(rss)
Matrix
Openfans
(rss)
TheServerSide
(rss)
Linux Technology
LinuxSir
Ubuntu
中国Linux公社
Open Source
Apache
PostgreSQL
(rss)
SourceForge
个人博客
Flyingis in 3sNews
(rss)
Flyingis in cnblogs
(rss)
Flyingis in JavaEye
(rss)
精彩博客(技术类)
Carlwave-陆飞
(rss)
dudu
(rss)
emu
(rss)
Java Tang
(rss)
pesome
(rss)
sinoly
(rss)
zkjbeyond
(rss)
天狼
(rss)
姜利阳
(rss)
浩淼的天空
(rss)
蓝色森林
(rss)
马维峰
(rss)
精彩博客(非技术)
摄影博客-抓拍城市
(rss)
搜索
积分与排名
积分 - 327008
排名 - 16
最新评论
1. re: ArcGIS Server 开发系列(二)--Web ADF 编程
写得很好,对我这样的初学者很有用,多谢了
--leepf7211
2. re: 在Linux下安装JDK及环境设置
你吗比,还我冲装
--大
3. re: [Java Puzzlers]表达式随想[未登录]
总结的很好,学习了,谢谢.
--JAVA爱好者
4. re: GIS空间分析
地理空间数据分析与GIS
这个书有电子版么?请发个到我邮箱~~
谢谢啊
oldmao_2001@163.com
--Mm
5. re: 小议final关键字
夯实基础,势在必行!
--Robert Hamming
阅读排行榜
1. 在Linux下安装JDK及环境设置(11557)
2. JavaScript 调试工具(11110)
3. ArcIMS 体系结构(6717)
4. DWR 中文文档(6489)
5. [翻译] 如何在 JavaScript 中实现拖放(上)(5385)
6. Hibernate学习心得--性能优化(4746)
7. [翻译] 如何在 JavaScript 中实现拖放(下)(4266)
8. 了解 Ajax 框架--充电开始(4102)
9. 正则表达式--JavaScript 实现基础(4074)
10. Java接口特性学习(3884)
11. ArcIMS 连接器--.NET Link 使用方法(3821)
12. IntelliJ IDEA 5.1 初步感受 + crack(3780)
13. [翻译] 如何在 JavaScript 中实现拖放(中)(3710)
14. 用 JavaScript 玩转 DOM Level 1(3631)
15. 测试你电脑功率的大小(3494)
评论排行榜
1. wallop 和orkut 的差异(143)
2. ArcIMS 连接器--.NET Link 使用方法(70)
3. IntelliJ IDEA 5.1 初步感受 + crack(16)
4. ArcIMS 体系结构(12)
5. [翻译] 如何在 JavaScript 中实现拖放(下)(11)