源码分析
zhangyingchengqi
学无止境。
展开
-
Integer类的toBinaryString源码分析
jdk的Integer包装类中提供了已经封装好的进制转换函数 toBinaryString(), toOctalString(),toHexString(),下面分析一下它们的源码。//转二进制public static String toBinaryString(int i) { return toUnsignedString0(i, 1);}//转八进制public static String toOctalString(int i) { return...原创 2020-12-28 12:42:07 · 2439 阅读 · 3 评论 -
java中浮点数表示方式
java虚拟机中的浮点数分为float和double两种,分别为32位和64位.它参考了IEEE 754的规范对浮点数进行处理。下面以float为例 ,分析一下float数的表示方法.float的32位分成三个部分来表示一个浮点数:浮点数的取值计算公式为:解析: 1) 当符号位s的取值为0时,sflag为1, 当s为1时,sflag为-1. 所以有: 2)e 为指数位,用 8 位表示 3) m 为尾数值,占用空间为23位,但是根据 e 的取...原创 2020-12-27 15:38:29 · 2714 阅读 · 2 评论 -
java中整数表示方式补码
在java虚拟机规范中定义的整数类型有byte(8位),short(16位),int(32位),long(64位),它们都是有符号整数,即最高位为符号位。这些整数JVM中使用补码来表示. 那么我们首先来了解一下原码,反码和补码.1. 原码符号位+二进制值,符号位在最左边. 例如:32位的整型原码: 10的原码: 00000000 00000000 00000000 00001010 // 最左边的0表示正数-10的原码: 10000000 00000000 00000000 000..原创 2020-12-27 15:03:24 · 892 阅读 · 1 评论 -
Date的构造方法分析
Date的构造方法分析:Date有一个构造方法如下:public Date(long date) { fastTime = date; }官方文档解释: long值 为 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数运行测试代码:Date d2=new Date( 0 );System.out.println( d2 );结果为:Thu Jan 01 08:00:00 CST 1970为什么是 08:00点呢? 因为我们当原创 2020-12-20 19:53:48 · 288 阅读 · 0 评论 -
jdk源码探索 - Boolean类
jdk 8 中的Boolean 类源码分析:1. 此类为 final类,表明它不能被继承了,因为它是一个基础类, 且实现了Serializable接口和Comparable接口,表明这个类的对象可以实现序列化及比较操作.public final class Boolean implements java.io.Serializable, Comparable<Boolean>2. 它有两个有参构造方法,但没有无参构造方法:public Boolean(boolean val.原创 2020-12-16 20:48:29 · 183 阅读 · 0 评论