java中short、int、long、float、double取值范围「建议收藏」

java中short、int、long、float、double取值范围「建议收藏」对于java的数据类型,既熟悉又陌生,于是整理了这篇文档。最近的面试让我开始注意细节,细节真的很重要。一、分析基本数据类型的特点,最大值和最小值。1、基本类型:int二进制位数:32包装类:java.lang.Integer最小值:Integer.MIN_VALUE=-2147483648(-2的31次方)最大值:Integer.MAX_VALUE=2147

大家好,又见面了,我是你们的朋友全栈君。对于java的数据类型,既熟悉又陌生,于是整理了这篇文档。


最近的面试让我开始注意细节,细节真的很重要。




一、分析基本数据类型的特点,最大值和最小值。


1、


基本类型:int 二进制位数:32
包装类:java.lang.Integer



最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
最大值:Integer.MAX_VALUE= 2147483647  (2的31次方-1)



2、


基本类型:short 二进制位数:16
包装类:java.lang.Short
最小值:Short.MIN_VALUE=-32768 (-2的15此方)
最大值:Short.MAX_VALUE=32767 (2的15次方-1)



3、


基本类型:long 二进制位数:64
包装类:java.lang.Long
最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)



4、


基本类型:float 二进制位数:32
包装类:java.lang.Float
最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
最大值:Float.MAX_VALUE=3.4028235E38

 (2的128次方-1)


5、


基本类型:double 二进制位数:64
包装类:java.lang.Double
最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
最大值:Double.MAX_VALUE=1.7976931348623157E308

 (2的1024次方-1)




二、经实践证明,在代码中,能够写的位数。


1、首先是整型


      int和long只能写10个数字,short只能写5个数字,多了就会报错。



  1. int h=1234567890;
  2. long w=1234567890;
  3. short s=12345;

如果此时我在它们每个上面再加上一个数字,就会:


java中short、int、long、float、double取值范围「建议收藏」


2、其次浮点



float的小数点后6位,double的小数点后16位。



  1. float m=123.45566778465651454545f;
  2. double n=3.1234567890123456789;

然后打印出来的结果是这样的:


java中short、int、long、float、double取值范围「建议收藏」




三、小插曲 —–int和Integer的区别

1.从定义上来看
 
 
 
 int 是基本类型,直接存数值(类似的还有float、double、String、char)
 
 
 
 Integer是对象,用一个引用指向这个对象(类似的有Float、Double、String)
2.从复杂度来看,Java 中的数据类型分为基本数据类型和复杂数据类型
 
 
 
 
int 是前者;Integer 是后者(也就是一个类)
3.初始化的方式不同
 
 
 
 int i =1;
 
 
 
 Integer i= new Integer(1);//integer 是一个类
 
 
 
 int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充);Integer 是一个类,是int的扩展,定义了很多的转换方法
注意:
类似的还有:
float Float;double Double;String
等,其中
String
较为特殊,基本类型和复杂类似关键字相同。
 
 
 
 例如,当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装 object的,这是就需要这些内建类型的外覆类了。Java中每种内建类型都有相应的外覆类。
Java中int和Integer关系是比较微妙的。关系如下:
  • int是基本的数据类型;
  • Integer是int的封装类;
  • int和Integer都可以表示某一个数值;
  • int和Integer不能够互用,因为他们两种不同的数据类型;
举例说明
 
 
 
ArrayList A_List=new ArrayList();
 
 
 int n=40;
 
 
 Integer In=new Integer(n);
 
 
 A_List.add(n);//error
 
 
 A_List.add(In);//ok







总结:平时的积累是多么重要啊,细节,细节,细节,还是细节…………………………




PS:大呼一声细节:细节…………………………………………………………

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143094.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python设置环境变量

    Python设置环境变量文章目录一、我们安装Python。二、设置环境变量。1、找到计算机属性。2、设置PATH。一、我们安装Python。点击链接下载:python下载你也可以无脑安装,对计算机的影响不打,不过建议别无脑我们选择自己安装,然后选择想要安装的目录,不然我们能看见在InstallNow下面有一个目录那个就是默认的安装C盘位置,当然若你觉得这样好找python也可以直接点第一个安装这里如果看不懂可以不管,也可以根据自我需求来点,可以用微信的拍照翻译二、设置环境变量。1、找到计算机属性。我们右击桌

    2022年10月22日
    0
  • c++ stringstream ss()[通俗易懂]

    c++ stringstream ss()[通俗易懂]定义了三个类:istringstream、ostringstream和stringstream,分别用来进行流的输入、输出和输入输出操作。本文以stringstream为主,介绍流的输入和输出操作。主要用来进行数据类型转换,由于使用string对象来代替字符数组(snprintf方式),就避免缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符的问题。简单说,相比c库的数据类型转换而言,更加安全、自动和直接。一、从string对象str中读.

    2022年5月22日
    61
  • java复习快速导航

    java复习快速导航1.java基础java基础必背知识点java基础加强知识点javaweb1(mysql、HTML、js、xml)javaweb2(tomcat、cookie、el、filter)javaweb3(jquery、ajax、json、redis)maven2.java提高redisdubbo并发JUC阻塞队列、线程池NIOnetty数据库rabbi…………

    2022年7月20日
    11
  • 获取程序自身窗口句柄(cmd)

    获取程序自身窗口句柄(cmd)HWNDGetConsoleHwnd(void){#defineMY_BUFSIZE1024//Buffersizeforconsolewindowtitles.HWNDhwndFound;//Thisiswhatisreturnedtothecaller.charpszNewWindowTitle[MY_BUFS…

    2022年7月14日
    20
  • 多参数sp_executesql 函数的使用范例

    多参数sp_executesql 函数的使用范例终于搞定sp_executesql包含输出的多参数的调用,网上竟然没有很好的参考   set@sql=Nselect@I_ZSL=sum(I_SL),@I_ZYZ=sum(I_YZ),@I_ZZJ=sum(I_LJZJ),@I_ZJZ=(sum(I_YZ)-sum(I_LJZJ))fromV_GZ_SGZ_GZINFO_TYBwhereV_DW_DM=

    2022年5月21日
    41
  • 数组和集合的相互转换「建议收藏」

    数组和集合的相互转换「建议收藏」数组和集合的相互转换

    2022年9月16日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号