成都家具网站建设,做网页的软件w,制作小游戏的软件,上海网站设计团队文章目录 概要主要内容 概要
今天在复习java的Java基础常见面试题时对java中基本数据类型的上下限有了一些思考#xff0c;接下来我会结合自身的理解进行讲述
主要内容
Java 中有 8 种基本数据类型#xff0c;分别为#xff1a;6 种数字类型#xff1a; 4 种整数型… 文章目录 概要主要内容 概要
今天在复习java的Java基础常见面试题时对java中基本数据类型的上下限有了一些思考接下来我会结合自身的理解进行讲述
主要内容
Java 中有 8 种基本数据类型分别为6 种数字类型 4 种整数型byte、short、int、long 2 种浮点型float、double 1 种字符类型char 1 种布尔型boolean。 我们先单独来看int类型 java中int类型的包装类为Integer我们来看一下它的源代码
public final class Integer extends Numberimplements ComparableInteger, Constable, ConstantDesc {/*** A constant holding the minimum value an {code int} can* have, -2sup31/sup.*/Native public static final int MIN_VALUE 0x80000000;/*** A constant holding the maximum value an {code int} can* have, 2sup31/sup-1.*/Native public static final int MAX_VALUE 0x7fffffff;/*** The {code Class} instance representing the primitive type* {code int}.** since 1.1*/SuppressWarnings(unchecked)public static final ClassInteger TYPE (ClassInteger) Class.getPrimitiveClass(int);/*** All possible chars for representing a number as a String*/static final char[] digits {0 , 1 , 2 , 3 , 4 , 5 ,6 , 7 , 8 , 9 , a , b ,c , d , e , f , g , h ,i , j , k , l , m , n ,o , p , q , r , s , t ,u , v , w , x , y , z};我们可以通过Max_VALUE和MIN_VALUE轻易的获取到int类型的上下限 我们发现int类型的范围是-2147483648 ~ 2147483647 正数相对于负数减 1 了。这是为什么呢这是因为在二进制补码表示法中最高位是用来表示符号的0 表示正数1 表示负数其余位表示数值部分。所以如果我们要表示最大的正数我们需要把除了最高位之外的所有位都设为 1。如果我们再加 1就会导致溢出变成一个负数。 而补码表示法中正数的补码等于其二进制表示也就是说int类型的最大值为01111111.。。。。等于2的31次方-1 而最小值为其绝对值的二进制表示法取反加1最终可以获得的最小数即为10000.。。。。等于-2的31次方 如果仅仅是用第一位作为符号为但是用普通的二进制表示法的话对于正数来说可以表示的最大数并没有变化但是对于负数则变成了 -2的31次方-1少表示了一个数 以上仅为个人理解如果错误欢迎指出