【JAVA基础篇】基本数据类型及自动类型转换
一、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基础篇】基本数据类型及自动类型转换相关推荐
- Java基础_引用数据类型的强制类型转换
在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换.因为子类拥有比父类更多的属性.更强的功能,所以父类转换为子类需要强制.那么,是不是只要是父类转换为子类就 ...
- Java基础篇1——变量与数据类型
Java基础篇1--变量与数据类型 1.标识符命名规则 标识符以由大小写字母.数字.下划线(_)和美元符号($)组成,但是不能以数字开头. 大小写敏感 不能与Java语言的关键字重名 不能和Java类 ...
- java数据类型_JAVA基础篇(数据类型)
首先请大家想想这几个问题: 1.java数据类型是什么? 2.Java数据类型有什么用? 上一节(JAVA基础篇(函数))有个add函数,里面有两个int类型,int类型就是整数的意思,这一节我们来学 ...
- 《Java 后端面试经》Java 基础篇
<Java 后端面试经>专栏文章索引: <Java 后端面试经>Java 基础篇 <Java 后端面试经>Java EE 篇 <Java 后端面试经>数 ...
- java基础篇_java基础篇1
JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**ja ...
- 菜鸟学习笔记:Java基础篇7(包装类、时间相关类、文件类、异常处理类)
菜鸟学习笔记:Java其他常用类 基本数据类型包装类 时间处理和文件处理相关类 Date时间类 SimpleDateFormat Calendar日历类 文件类 异常机制 异常的概念 Java异常处理 ...
- Android面试题Java基础篇
Android面试题Java基础篇,由本人整理汇总,后续将继续推出系列篇,如果喜欢请持续关注和推荐,更多精彩内容可以关注微信公众号(Android高级编程):android-tech 系列文章目录: ...
- Java基础篇--面向对象(Object Oriented)
Java基础篇--面向对象(Object Oriented) 1. 面向对象概念 1.1 什么事面向对象 1.2 理解面向对象 1.3 面向对象的特点 1.4 面向对象开发设计特征 2. 类与对象 2 ...
- Java基础篇 学习笔记
List item Java基础篇 学习笔记 java基础篇 第1章 计算机.程序和java概述 学习笔记 1.1什么是计算机 简单来说:计算机就是 ' 存储 ' 和 ' 处理 ' 数据的电子设备. ...
- 高频面试真题答案 -java后端 -java基础篇
原贴 2022届秋招高频面试真题汇总,千题奉送!!!- 后端篇_笔经面经_牛客网 整理答案: 类加载机制 47 双亲委派机制 24 new一个对象的过程 4 java程序是如何运行起来的? 1 jvm ...
最新文章
- PPPOE/PPPOA白皮书小结
- 图:BFS/DFS java实现
- 3 实现模糊遮罩_有了这3个神器,你就不用为抠图发愁了!
- 第10章-管理Hadoop集群-hadoop 安全模式相关知识点
- atxserver运行没有反应_连续生物工艺:灌流生物反应器
- mysql有状态无状态_有状态和无状态的对象区别
- jQuery判断checked的三种方法
- Unity Shader _Time 的单位
- django admin 登陆快速添加验证码功能
- SpringSecurity半成品笔记
- 云呐-动环监控巡检表,信息机房巡检表
- 产品学习---互联网形势
- ckpt2npy和npy2ckpt转换
- 那些著名的黑客事件 十二
- App列表之下拉刷新
- 异贝服装店都可以做会员营销?神奇的逆向思维让他快速裂变赚钱!
- OpenSSH创建秘钥的4种格式以及git多秘钥配置
- 【Android Studio】在Mac中更换JDK Location
- PXE+KickStart自动化安装Linux系统
- 调频广播信号监测监播系统(广播电台调频广播监控系统)解决方案
热门文章
- 云重磅|中西合璧 联想凌拓瓜熟蒂落;5G实锤 华为推出首部5G折叠手机;​IBM打造Kubernetes无处不在”的模式...
- android ndk 9,Android NDK:警告:APP_PLATFORM android-9大于android:minSdkVersion 8
- linux格式化usb设备,如何在 usb linux下格式化磁盘
- python二叉树去重_python二叉树学习分享
- python avg_python闭包
- python半圆_如何使用Python中的Zelle图形生成一个半圆?
- 前后端敏感数据加密方案及实现_03
- sonarqube 启动不了,异常提示:远程主机强迫关闭了一个现有的连接
- 下载ueditor-1.1.3.jar源码和源代码
- html、css、js、react、vue 文字一行一行显示出来