java 原生数据类型的转换_Java基本数据类型转换分析
基本数据类型(原生类、内置类型)8种:
整型(默认int):byte(1个字节)、short(2个字节)、int(4个字节)、long(8个字节)
浮点类型(默认double):float(4个字节)、double(8个字节)
字符型:char
布尔型:boolean
另外有四种常用但不属于基本数据类型:数组、String、自定义类、接口。
数据类型转换有两种形式:1.隐式转换2.显式转换
隐式转换指从低级类型向高级类型的转换,系统将自动执行,我们不需要做任何操作的。那么什么算高级?什么算低级?占字节数大的属于高级,占字节数少的算低级。比如在整型中,int比short所占字节要多,那么我们在把short转为int时,系统可以自动转换。如:
int a;
short b=4;
a=b;
System.out.print(a);
我们可以这样理解,把一个能装2个鸡蛋的篮子short里的鸡蛋倒入和另一个能装4个鸡蛋的int篮子,这样做是绝对可行的,所以系统是自动执行。
显式转换(强制类型转换)指高级类型向低级类型转换,格式:(类型名)要转换的值
如果把int篮子里的鸡蛋倒入short篮子这个时候就会出现编译错误,需要进行显式转换的书写,如下:
int a=4;
short b;
b=(short) a;
System.out.print(b);
在这时需要注意一点,short的数值范围是:-32768 - 32767,而int范围是-2147483648-2147483647,如果我们给int赋一个大于short最大值而小于int最大值时,比如40000,然后再进行显式赋值给short,这时运行系统比过不会报错,输出的short值并不是之前int的值,精度已经丢失,所以我们一定要注意!
long型(8字节)为什么能自动转成float型(4字节)
刚才在整型之间转换时举了一个鸡蛋和篮子的例子,但是我们发现,如果整型转浮点型时,那么哪个是高级,哪个是低级呢?难道还是要看字节数吗?答案是不是的。在这里,我们把浮点型作为高级,整型作为低级的,也就是说,即使是8个字节的long型转4个字节的float型,那么我们也不需要显式转换,那么这是为什么呢?
这是因为二者在内存中的存储形式不同。
long整型数,在内存中占用8个字节共64位,它表示的数值有2的64次方,平分正负,数值范围是负2的63次方到正2的63次方-1。
float在内存中占4个字节,共32位,但是浮点数在内存中是这样的:V=(-1)^s * M * 2^E,浮点数的32位不是简单的直接表示大小,而是按照一定的标准分配的。其中第1位,符号位,即S。接下来的8位,指数域,即E。剩下的23位,小数域,即M,M的取值范围为[1,2)或[0,1)。也就是说,浮点数在内存中的二进制值不是直接转换为十进制数值的,而是按照上述公式计算而来,通过这个公式,虽然只用到了4个字节,但是浮点数却比长整型的最大值要大。 这也就是为什么在数据转换的时候,long类型转换为float类型的根本原因所在。
字符型与整型之间的相互转换
我们没有能将char型一步转为整型的方法,需要先转为String型进行过渡,然后再从String转为整型。
char ch='2';
int a;
a=Integer.parseInt(Character.toString(ch));
System.out.println(a);
运行结果:2
整型转为char型:
int a=22;
char[] ch;
String b=String.valueOf(a);
ch=b.toCharArray();
for(char c:ch){
System.out.println(c);
运行结果:2
2
char转String小技巧
String str;
char ch ='a';
str=ch+"";
在char变量后直接加“”即可转换为String哦~。
java 原生数据类型的转换_Java基本数据类型转换分析相关推荐
- java整数能强转转字符,Java中数据类型默认转换和强制类型转换
默认转换: a:由低到高一次为:(byte short char )---int ---long ---float --- double b:注意:byte short char ...
- Java 基本数据类型的转换
基本数据类型转换 Java 中数据类型的转换有两种: 1.自动转换: 2.强制转换. Java 中整型和浮点型按照范围从小到大: byte -> short -> int -> lo ...
- java原生类型没有封装_Java基本数据类型与封装类型详解(int和Integer区别)
Java基本数据类型与封装类型详解(int和Integer区别) 发布于 2020-4-19| 复制链接 摘记: int是java提供的8种原始数据类型之一.Java为每个原始类型提供了封装类,Int ...
- java基本数据类型的标识符_java基础(一)-标识符、变量、基本数据类型及转换、运算符及表达式...
一.标识符 二.关键字 三.JAVA基础数据类型 3.1.常量 3.2.变量 从本质上来讲,变量其实是内存里面的一小块区域,一个程序在运行的时候,实际上这个程序是位于内存里面,然后才开始运行.一个.e ...
- java类型之间的转换_JAVA基本数据类型及之间的转换
一.数据类型 1.布尔型(boolean) :true/false,不可以以0或非0的数字代替:不能进行数据之间的转换. 2.整数类型 ** 整型默认为int型,而long类型表示的范围要超出int表 ...
- java赋值运算的类型转换出新的问题_学习Java基本数据类型与转换++,--等问题总结...
java中的数据类型java有4种类型分别是整数类型.浮点类型.字符型.布尔型.java的八中分类分别是byte.short.int.long.float.double.char.boolean简称4 ...
- Java基础数据类型二进制转换
Java基本数据类型与表示范围(boolean忽略) 1,byte(整型):8位,short(整型):16位,char(字符型):16位,int(整型):32位,float(浮点型单精度):32位,l ...
- java中数据类型的等级_Java 数据类型、变量
Java 数据类型 在 Java 中,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间. 整数类型 (byte.short.int.long) 1.Java 各整数类型有固 ...
- Java中数据类型 + 强制转换
数据类型有: 数据类型 字节数 默认值 包装类 案例 byte 1字节 0 Byte byte b =10; short 2字节 0 Short short s=10; int 4字节 ...
最新文章
- 听说你有10年的工作经验?还是你把1个经验反复用了10年?
- ZVM – 记VMP保护代码还原工程
- Windows 下面 redis 发布为服务的官方方法
- win7删除计算机库文件,win7怎么将“库”从资源管理器导航栏中删除【图文】
- 计算机三级考试题库网络,计算机三级网络试题及答案解析
- Jquery中使用SweetAlert使弹窗更漂亮
- .net随笔-vb.net Accord.Net机器学习之贝叶斯分类
- 大分区表高并发性能提升100倍?阿里云 RDS PostgreSQL 12 解读
- 解构产品经理的技术思维
- web前端学习:1分钟了解JavaScript基础语法规则
- PYQT5+PYTHON杂谈
- ETC passwd 用户和组管理
- 用CSS样式如何制作圆角的详细教程
- react 拆分组件于组件
- Cuda Graph (cuda 优化)
- XcodeGhost:墙、感染、信任和欺骗
- C++ 逆向笔记12 call和堆栈平衡
- Paper Notes: Cross-Domain Image Translation Based on GAN
- IO流---Reader和Writer
- 安卓版本与adb的问题