一、8种基本数据类型以及占用内存空间大小

boolean  1byte或4byte

byte        8bit/1byte

char        16bit/2byte

short       16bit/2byte

float        32bit/4byte

int           32bit/4byte

long        64bit/8byte

double    64bit/8byte

二、自动类型转换

2.1、类型自动提升

占用内存小的数据类型可以自动转换成占用内存大的数据类型。

允许类型自动提升的顺序如下:

byte-->short-->int-->long-->float-->double或者char-->int-->long-->float-->double

具体规则:

     如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。

  否则,如果其中一个操作数是float类型,另一个将会转换为float类型。

  否则,如果其中一个操作数是long类型,另一个会转换为long类型。

  否则,两个操作数都转换为int类型。

测试用例1:

     double d = 1.0;int i = 1;
//      int sum = i+d;//这行代码放开编译会报错,提示Type mismatch: cannot convert from double to intdouble sum = i+d;//会先将i的数据类型自动提升为double,然后两个double类型做运算,返回也是double类型

测试用例2:

     float d = 1.0f;long i = 1;
//      long sum = i+d;//这行代码放开编译会报错,提示Type mismatch: cannot convert from float to longfloat sum = i+d;//会先将i的数据类型自动提升为float,然后两个float类型做运算,返回也是float类型

通过上面的两个测试用例证明我们的规则是正确的。

2.2、类型自动强转

占用内存大的数据类型可以自动强转成占用内存小的数据类型。

下面这几种情况会先自动提升,然后自动强转

测试用例3:

     byte b = 127;byte b2 = ++b;//先执行++b,返回int类型,然后强转成byte类型赋值给b2System.out.println(b2);//输出-128

测试用例4:

     byte b = -128;b += -128;//先执行b+(-128),返回int类型,然后强转成byte类型赋值给bSystem.out.println(b);//输出0

【JAVA基础篇】基本数据类型及自动类型转换相关推荐

  1. Java基础_引用数据类型的强制类型转换

    在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换.因为子类拥有比父类更多的属性.更强的功能,所以父类转换为子类需要强制.那么,是不是只要是父类转换为子类就 ...

  2. Java基础篇1——变量与数据类型

    Java基础篇1--变量与数据类型 1.标识符命名规则 标识符以由大小写字母.数字.下划线(_)和美元符号($)组成,但是不能以数字开头. 大小写敏感 不能与Java语言的关键字重名 不能和Java类 ...

  3. java数据类型_JAVA基础篇(数据类型)

    首先请大家想想这几个问题: 1.java数据类型是什么? 2.Java数据类型有什么用? 上一节(JAVA基础篇(函数))有个add函数,里面有两个int类型,int类型就是整数的意思,这一节我们来学 ...

  4. 《Java 后端面试经》Java 基础篇

    <Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...

  5. java基础篇_java基础篇1

    JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**ja ...

  6. 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)

    菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...

  7. Android面试题Java基础篇

    Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...

  8. Java基础篇--面向对象(Object Oriented)

    Java基础篇--面向对象(Object Oriented) 1. 面向对象概念 1.1 什么事面向对象 1.2 理解面向对象 1.3 面向对象的特点 1.4 面向对象开发设计特征 2. 类与对象 2 ...

  9. Java基础篇 学习笔记

    List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...

  10. 高频面试真题答案 -java后端 -java基础篇

    原贴 2022届秋招高频面试真题汇总,千题奉送!!!- 后端篇_笔经面经_牛客网 整理答案: 类加载机制 47 双亲委派机制 24 new一个对象的过程 4 java程序是如何运行起来的? 1 jvm ...

最新文章

  1. PPPOE/PPPOA白皮书小结
  2. 图:BFS/DFS java实现
  3. 3 实现模糊遮罩_有了这3个神器,你就不用为抠图发愁了!
  4. 第10章-管理Hadoop集群-hadoop 安全模式相关知识点
  5. atxserver运行没有反应_连续生物工艺:灌流生物反应器
  6. mysql有状态无状态_有状态和无状态的对象区别
  7. jQuery判断checked的三种方法
  8. Unity Shader _Time 的单位
  9. django admin 登陆快速添加验证码功能
  10. SpringSecurity半成品笔记
  11. 云呐-动环监控巡检表,信息机房巡检表
  12. 产品学习---互联网形势
  13. ckpt2npy和npy2ckpt转换
  14. 那些著名的黑客事件 十二
  15. App列表之下拉刷新
  16. 异贝服装店都可以做会员营销?神奇的逆向思维让他快速裂变赚钱!
  17. OpenSSH创建秘钥的4种格式以及git多秘钥配置
  18. 【Android Studio】在Mac中更换JDK Location
  19. PXE+KickStart自动化安装Linux系统
  20. 调频广播信号监测监播系统(广播电台调频广播监控系统)解决方案

热门文章

  1. 云重磅|中西合璧 联想凌拓瓜熟蒂落;5G实锤 华为推出首部5G折叠手机;​IBM打造Kubernetes无处不在”的模式...
  2. android ndk 9,Android NDK:警告:APP_PLATFORM android-9大于android:minSdkVersion 8
  3. linux格式化usb设备,如何在 usb linux下格式化磁盘
  4. python二叉树去重_python二叉树学习分享
  5. python avg_python闭包
  6. python半圆_如何使用Python中的Zelle图形生成一个半圆?
  7. 前后端敏感数据加密方案及实现_03
  8. sonarqube 启动不了,异常提示:远程主机强迫关闭了一个现有的连接
  9. 下载ueditor-1.1.3.jar源码和源代码
  10. html、css、js、react、vue 文字一行一行显示出来