java--基本数据类型的转换(自动转换)
概念:Java中,经常可以遇到类型转换的场景,从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等,随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。
首先,来了解下数据类型的基本理解:数据是用来描述数据的种类,包括其值和基于其值基础上的可进行的操作集合。
Java中数据类型主要分为两大类:基本数据类型和引用数据类型。
基本数据类型共有8种,分别是:布尔型boolean, 字符型char和数值型byte/short/int/long/float/double。由于字符型char所表示的单个字符与Ascii码中相应整形对应,因此,有时也将其划分到数值型中。引用类型具体可分为:数组、类和接口。因此,本文中Java类型转换的总结也将分为基本数据类型和引用数据类型两个方面展开。
自动转换
大小排列:byte----->shorrt----->int----->long----->float----->double类型依次从小到大排列
整形,实形,字符类型数据可以混合运算,运算中,不同类型的数据先转化为同类型,然后进行运算,转换从低级到高级,转换前于转换后的数据类型如下

我们来做一个自动转换的案列
char类型能不能转换为int类型呢?
package pkg1;
public class Test1{
public static void main(String args[]){
//定义一个char类型,字符和int类型可以自动转换
char c = 'a';
int i = c ;
System.out.println(i);
}
}
边缘看运行效果:

可以看到char是可以自当转换成int类型的,但是输出的结果却是97,其实字符和整数有一种对应关系那就是ASCII表

看看刚刚我们得出的小a对应的数字就是97.
如果两个int类型计算会不会自动提升类型。
package pkg1;
public class Test1{
public static void main(String args[]){
//如果两个int类型计算会不会自动提升类型
int a = 2147483647;
int b = 12;
int d = a + b;
System.out.println(d);
}
}
可以看到编译不报错,但是结果,是为负数,这表示数字已经超过了int类型的长度,但并不会自动转换

总结:int,long,float,double自身来计算的时候没有类型的提升,如果超出范围了就会出现精度的损失 。
int类型和float类型的计算转换成float
package pkg1;
public class Test1{
public static void main(String args[]){
//int类型和float类型的计算转换成float
float f = 1.4f;
int y = 1 ;
int f1 = f + y ;
System.out.println(f1);
}
}
最后用int类型接收,编译是不成功的 ,在转换时一定要向大的类型转换才可以。所以一定要是float类型


问题一:

是可以的,因为小数的常量默认值是double类型的
问题二:

可以,为什么呢?
12.5f是表示float类型的常量,它是占4个字节,double类型占8个, 就好比大鱼吃小鱼一样,可以将小的吃掉。这个类型也是一样的。
总结:小的表数范围是常量或者变量可以自动的向大的表数范围的类型转换,包括int类型向double类型转换一样。大的表述范围的值不能自动的赋值小的表述范围的变量。
java--基本数据类型的转换(自动转换)的更多相关文章
- Java中数据类型及其之间的转换
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- Java中数据类型及其之间的转换(转)
Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...
- java 写入int型时会自动转换成字符
java 写入int型时会自动转换成字符
- java类型转换详解(自动转换和强制转换)
自动转换 class Hello { public static void main(String[] args) { //自动转换 int a = 5; byte b = 6; int c = a ...
- Java中为什么long能自动转换成float类型
刷题时候看到一个float和long相互转换的问题,float向long转换的时候不会报错,一个4个字节一个8个字节,通过baidu找到了答案. 下面转载自http://blog.csdn.net/s ...
- JSON字符串自动转换
package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...
- javascript数据类型及类型的转换总结
javascript 是浏览器客户端脚本语言,要想让网页与后台程序更好的交互效果,这里我们详细了解javascript 数据类型及类型的转换 1,数据类型 number number类型 数字类型,浮 ...
- java基本数据类型
基本数据类型概念 java是一种强类型语言,意味着必须为每一个变量声明一种数据类型. java拥有8中基本数据类型,主要包含如下:4中整形类型(long.int.short.byte)表示整形数值:两 ...
- [Java 基础]数据类型
基本类型和引用类型 Java中的数据类型有两类: l 基本类型(又叫内置数据类型,或理解为值类型) l 引用类型 基本类型和引用类型的区别 1. 从概念方面来说 基本类型:变量名指向具体的数值 ...
- 面试准备(四)Java基本数据类型
Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...
随机推荐
- 查看keras自动给文件夹标号
from tensorflow.contrib.keras.api.keras.preprocessing.image import ImageDataGenerator,img_to_array f ...
- 树莓派3b+_32位linux系统arm架构安装JDK
如图我的Raspbian系统如下图版本信息: 可以看到是armv7l,我查了一下是32位的arm架构,即下载第一个就好了 然后用SSH Secure Shell远程上去把压缩包或者解压后的文件传过去 ...
- 深入学习MySQL事务:ACID特性的实现原理
事务是MySQL等关系型数据库区别于NoSQL的重要方面,是保证数据一致性的重要手段.本文将首先介绍MySQL事务相关的基础概念,然后介绍事务的ACID特性,并分析其实现原理. MySQL博大精深,文 ...
- Jenkins配置从节点
配置从节点步骤 在Master的站点上创建节点配置信息 在Slave访问Jenkins站点,然后下载运行服务Slave端必须安装Jdk 两种运行方式: windows 服务 运行jar包 成功后的节点 ...
- Python-定时爬取指定城市天气(一)-发送给关心的微信好友
一.背景 上班的日子总是3点一线,家里,公司和上班的路径,对于一个特别懒得我来说,经常遇到上班路上下雨了,而我却没带伞,多么痛的领悟.最近对python有一种狂热的学习热情,写了4年多的C++代码,对 ...
- 服务端预渲染之Nuxt (使用篇)
服务端预渲染之Nuxt - 使用 现在大多数开发都是基于Vue或者React开发的,能够达到快速开发的效果,也有一些不足的地方,Nuxt能够在服务端做出渲染,然后让搜索引擎在爬取数据的时候能够读到当前 ...
- 企业级镜像仓库harbor搭建
企业级镜像仓库harbor搭建 一. Harbor概述 VMware公司最近开源了企业级Registry项目Harbor,其的目标是帮助用户迅速搭建一个企业级的Docker registry 服 ...
- SAP MM已经转成PO的采购申请Item依旧可以被删除?
SAP MM已经转成PO的采购申请Item依旧可以被删除? 笔者测试发现,我们可以删除已产生PO的PR item, 系统只是给一个警告信息,不阻止保存. Purchase orders already ...
- Android屏幕适配讲解与实战
文章大纲 一.屏幕适配是什么二. 重要概念讲解三.屏幕适配实战四.项目源码下载 一.屏幕适配是什么 Android中屏幕适配就是通过对尺寸单位.图片.文字.布局这四种类型的资源进行合理的设计和 ...
- Windows Server 2016-Hyper-V网络虚拟化概述
在 Windows Server 2016 和虚拟机管理器中,Microsoft 提供的端到端网络虚拟化解决方案. 有构成了 Microsoft 的网络虚拟化解决方案的五个主要组件: Windows ...