JDK之Number类探密(4)

前面3篇研习了Byte,Short,Integer,这篇把剩余的Long,Float,Double分析完。

有了Integer的经验,Long就简单多了,只是32位变64位嘛。粗粗扫一下就可以了。不过有个方法和Integer不同

	static int stringSize(long x) {

		long p = 10;

		for (int i = 1; i < 19; i++) {

			if (x < p)

				return i;

			p = 10 * p;

		}

		return 19;

		//这个和Integer算法不一样了,再罗列缓存,9太多了,容易出错,直接每次乘以10来判了

	}

接下来Float,Double不简单了,一上来import4个类,且代码没有,以后研究

import sun.misc.FloatingDecimal;

import sun.misc.FpUtils;

import sun.misc.FloatConsts;

import sun.misc.DoubleConsts;
	public static String toString(float f) {

		//这个估计算法很复杂吧,FloatingDecimal的源码

		return new FloatingDecimal(f).toJavaFormatString();

	}

随之发现Float,Double里面怎么很多方法都是空的啊,转而都是调用上面import的4个类,而这4个类JDK自带的src.zip里可没有source,不过现在可以到SUN的网站下载全部源码了,我也下了一份,看来一下子要全部看完是不可能的了。感兴趣的研究吧!

总之,我们算是大致看完了Number的几个主要子类吧。没有贴全部代码,我只是把看到的精华贴出来。最后觉得要研究source,还是要自己静下心来自己看,不懂的再上网查资料,这样定有收获。还要记笔记,我发觉不记笔记过一阵子就忘了。这几篇文章也只是我的一些笔记,一些愚见,大家不吝指正。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值