Long 类的几个静态方法
来源:互联网 发布:软件设计师证书有用吗 编辑:程序博客网 时间:2024/05/16 00:43
看到Long这个类,颇感亲切,今天研究Long类的几个静态方法。
如果想把long类型数据转换为字节数组byte[ ],使用 Long.toString(l).getBytes()方法,但是这种转换很山寨。所以研究一下ing......
细心的人会发现这种算法,只是将long数据每一位转换为一个字节,如果你定义long = 12345L,那么就会得到5个字节。如果你定义long =
123456789L,那么就会得到9个字节。思考一下,这样产生的问题是什么?!
yes,long类型数据占有个字节,怎么会5、9呢?你可以测试一把,证明我所说的是否正确!呵呵!
研究一下String类的getBytes方法,其实etBytes调用StringCoding类的方法,将数字转换为字符char,并且使用ISO-8859-1编码,看一下:
我们知道,数字1对应的Ascii码就是1,但是字符‘1’对应的Ascii码却是31,有图为证:
所以,测试中你会发现1234L变成了49、50、51、52(这是十进制数,对应Ascii码的31、32、33、34)。
当然,如果你愿意的话,getBytes(Charset charset)方法可以指定其他字符编码。
现在,针对上面的“山寨”方法convertLongToByteArray,我需要将字节数组转换为long,看代码:
将String 转换为long,下面几个方法都可以:
valueOf方法,调用parseLong(String s, int radix)方法,其中参数radix表示基数即何种进制:
可见valueOf方法,调用parseLong方法,使用10进制为基数。研究一下parseLong(String s, int radix)源码:
有兴趣可以去看看getLong方法,它本质是调用valueOf方法,而valueOf方法本质是调用parseLong方法,所以在你的代码中应该使用哪个方法,你应该明白啦!
ok,到此为止!
感谢:http://www.asciitable.com/ 提供Ascii码表,另附一张图如下:
- Long 类的几个静态方法
- PHP静态方法的几个注意事项
- linux配置静态路由的几个方法
- BitmapFactory中常用的几个静态方法
- 处理乘法取模爆long long 的方法
- 几个PHP的静态方法的程序例子
- 直接读取网页写成静态页的几个方法
- Date转为Long的方法
- 方法join(long)与方法sleep(long)的区别
- Object类的几个方法
- String类的几个方法
- python 的静态方法和静态类
- long long 类型的常数的表示方法
- ResultSet的几个静态变量
- 个人对静态类、静态方法、静态变量的理解
- JAVA的静态变量、静态方法、静态类
- JAVA的静态变量、静态方法、静态类
- JAVA的静态变量、静态方法、静态类
- chdir、fchdir 和 getcwd 函数
- php session_start()报错 解决办法
- webservice 验证失败问题
- 编译了一把linux内核
- mysql数据库备份和还原
- Long 类的几个静态方法
- 硬链接和软连接
- 小小梦想
- 使用Zend Studio和Zend Debugger进行php代码的远程调试
- 几个有用的JSON工具
- 测试领域的发展和学习(我们都是温水的青蛙)
- UIImage 图片处理:截图,缩放,设定大小,存储
- gstreamer 目录结构
- C/C++运行时库问题