仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 555|回复: 10
打印 上一主题 下一主题

[学习教程] 发布一篇Java实际与理论: 您的小数点到那里往了?

[复制链接]
再见西城 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:25:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发
很多程序员在其全部开辟生活中都未曾利用定点或浮点数,大概的破例是,偶然在计时测试或基准测试程序中会用到。Java言语和类库撑持两类非整数范例DIEEE754浮点(float和double,包装类(wrapperclass)为Float和Double),和恣意精度的小数(java.math.BigDecimal)。在本月的Java实际和理论中,BrianGoetz切磋了在Java程序中利用非整数范例时一些常碰着的圈套和“gotcha”。
固然几近每种处置器和编程言语都撑持浮点运算,但年夜多半程序员很少注重它。这简单了解D我们中年夜多半很少必要利用非整数范例。除迷信盘算和偶尔的计时测试或基准测试程序,别的情形下几近都用不着它。一样,年夜多半开辟职员也简单疏忽java.math.BigDecimal所供应的恣意精度的小数D年夜多半应用程序不利用它们。但是,在以整数为主的程序中偶然的确会出人意表地必要表示非整型数据。比方,JDBC利用BigDecimal作为SQLDECIMAL列的首选交换格局。
IEEE浮点
Java言语撑持两种基础的浮点范例:float和double,和与它们对应的包装类Float和Double。它们都根据IEEE754尺度,该尺度为32位浮点和64位双精度浮点二进制小数界说了二进制尺度。
IEEE754用迷信记数法以底数为2的小数来暗示浮点数。IEEE浮点数用1位暗示数字的标记,用8位来暗示指数,用23位来暗示尾数,即小数部分。作为有标记整数的指数能够有正负之分。小数部分用二进制(底数2)小数来表示,这意味着最高位对应着值?(2-1),第二位对应着?(2-2),依此类推。对于双精度浮点数,用11位暗示指数,52位暗示尾数。IEEE浮点值的格局如所示。
.IEEE754浮点数的格局

<br>
由于用迷信记数法能够有多种体例来暗示给定命字,以是要标准化浮点数,以便用底数为2而且小数点右边为1的小数来暗示,依照必要调治指数就能够失掉所需的数字。以是,比方,数1.25能够暗示为尾数为1.01,指数为0:(-1)0*1.012*20
数10.0能够暗示为尾数为1.01,指数为3:(-1)0*1.012*23
特别数字
除编码所同意的值的尺度局限(关于float,从1.4e-45到3.4028235e+38),另有一些暗示无量年夜、负无量年夜、-0和NaN(它代表“不是一个数字”)的特别值。这些值的存在是为了在呈现毛病前提(比如算术溢出,给正数开平方根,除以0等)下,能够用浮点值汇合中的数字来暗示所发生的了局。
这些特别的数字有一些不平常的特性。比方,0和-0是分歧值,但在对照它们是不是相称时,被以为是相称的。用一个非零数往除以无量年夜的数,了局即是0。特别数字NaN是无序的;利用==、<和>运算符将NaN与别的浮点值对照时,了局为false。假如f为NaN,则即便(f==f)也会失掉false。假如想将浮点值与NaN举行对照,则利用Float.isNaN()办法。表1显现了无量年夜和NaN的一些属性。
表1.特别浮点值的属性
表达式了局Math.sqrt(-1.0)->NaN0.0/0.0->NaN1.0/0.0->无量年夜-1.0/0.0->负无量年夜NaN+1.0->NaN无量年夜+1.0->无量年夜无量年夜+无量年夜->无量年夜NaN>1.0->falseNaN==1.0->falseNaN<1.0->falseNaN==NaN->false0.0==-0.01->true基础浮点范例和包装类浮点有分歧的对照举动
使事变更糟的是,在基础float范例和包装类Float之间,用于对照NaN和-0的划定规矩是分歧的。关于float值,对照两个NaN值是不是相称将会失掉false,而利用Float.equals()来对照两个NaNFloat对象会失掉true。造成这类征象的缘故原由是,假如不如许的话,就不成能将NaNFloat对象用作HashMap中的键。相似的,固然0和-0在暗示为浮点值时,被以为是相称的,但利用Float.compareTo()来对照作为Float对象的0和-0时,会显现-0小于0。
<p>
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),
兰色精灵 该用户已被删除
沙发
发表于 2015-1-19 22:05:57 | 只看该作者
你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。
分手快乐 该用户已被删除
板凳
发表于 2015-1-24 23:44:20 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
透明 该用户已被删除
地板
发表于 2015-2-2 13:53:17 | 只看该作者
关于设计模式的资料,还是向大家推荐banq的网站 [url]http://www.jdon.com/[/url],他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。
老尸 该用户已被删除
5#
发表于 2015-2-5 03:46:28 | 只看该作者
让你能够真正掌握接口或抽象类的应用,从而在原来的Java语言基础上跃进一步,更重要的是,设计模式反复向你强调一个宗旨:要让你的程序尽可能的可重用。
海妖 该用户已被删除
6#
发表于 2015-2-8 07:58:46 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
7#
发表于 2015-2-12 18:56:56 | 只看该作者
你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
若天明 该用户已被删除
8#
发表于 2015-3-3 04:18:58 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
只想知道 该用户已被删除
9#
发表于 2015-3-11 09:10:26 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
愤怒的大鸟 该用户已被删除
10#
发表于 2015-3-18 02:17:21 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
蒙在股里 该用户已被删除
11#
发表于 2015-3-25 09:20:23 | 只看该作者
应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 11:47

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表