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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java如何将字符串转化为日期_java如何将字符串转为日期「建议收藏」

    java如何将字符串转化为日期_java如何将字符串转为日期「建议收藏」一、概述将Java中字符串“2010年1月2日”格式的转换为日期的最佳方法是什么?最终,我想将月份,日期和年份分解为整数,以便可以使用Datedate=newDate();date.setMonth()..date.setYear()..date.setDay()..date.setlongcurrentTime=date.getTime();将日期转换为时间。二、详解java.u…

    2025年6月14日
    0
  • anaconda与pycharm的关系、安装「建议收藏」

    anaconda与pycharm的关系、安装「建议收藏」一、anaconda和pycharm的关系anaconda和miniconda的介绍Anaconda:是一个打包的集合,它里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,就是把很多常用的不常用的库都给你装好了,并且在安装一个库时会询问是否安装与该库相关联的库,它将库之间的关系理的非常清楚,为用户提供极大的便利。Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种

    2022年8月25日
    4
  • 进程管理之进程调度「建议收藏」

    进程管理之进程调度「建议收藏」文章目录一、进程调度基础1、进程调度定义2、进程调度目标二、基本调度算法1、先来先服务算法2、时间片轮转算法3、短任务优先算法4、优先级调度算法5、混合调度算法  在多进程并发的环境里,虽然从概念上看,有多个进程在同时执行,但在单个CPU下,在任何时刻只能有一个进程处于执行状态,而其他进程则处于非执行状态。那么问题来了,我们是如何确定在任意时刻到底由哪个进程执行,哪些不执行呢?这就涉及到进程管理…

    2022年9月29日
    0
  • 华硕笔记本 x550c 光驱位换固态硬盘

    华硕笔记本 x550c 光驱位换固态硬盘这两天给华硕笔记本(型号x550c)加装了个8G的内存条,并且给光驱位改装成了480G固态硬盘。内存条和固态硬盘都是在闲鱼上购买。加内存条内存条买的是海力士颗粒的8G1600Mhz,

    2022年7月2日
    55
  • 内部服务器500错误原因解决方法_什么是内部服务器错误

    内部服务器500错误原因解决方法_什么是内部服务器错误http500内部服务器错误的解决方法这个错误整整浪费了我下午的时间,在网上有很多的方法,当然我也是从那些繁多的方法中一点点的搞定IIS的,首先你要先装好IIS,XPSP2中的应该是5.1版本的,安装方法:1->打开控制面板,选择添加删除程序2->选择添加删除组件,选择Internet信息服务,也就是IIS3->点击下一步安装就好了安装好之后也许你的机子会正常的显示http://localho

    2022年8月11日
    8
  • get, getline, gets, getchar 用法「建议收藏」

    get, getline, gets, getchar 用法「建议收藏」1、cin  1、cin>>  用法1:最基本,也是最常用的用法,输入一个数字:  #include  usingnamespacestd;  main()  {  inta,b;  cin>>a>>b;  cout<

    2022年10月9日
    0

发表回复

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

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