概念: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--基本数据类型的转换(自动转换)的更多相关文章

  1. Java中数据类型及其之间的转换

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  2. Java中数据类型及其之间的转换(转)

    Java中数据类型及其之间的转换 基本的数据类型 基本类型有以下四种:1)int长度数据类型有:byte(8bits).short(16bits).int(32bits).long(64bits).2 ...

  3. java 写入int型时会自动转换成字符

    java  写入int型时会自动转换成字符

  4. java类型转换详解(自动转换和强制转换)

    自动转换 class Hello { public static void main(String[] args) { //自动转换 int a = 5; byte b = 6; int c = a ...

  5. Java中为什么long能自动转换成float类型

    刷题时候看到一个float和long相互转换的问题,float向long转换的时候不会报错,一个4个字节一个8个字节,通过baidu找到了答案. 下面转载自http://blog.csdn.net/s ...

  6. JSON字符串自动转换

    package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObj ...

  7. javascript数据类型及类型的转换总结

    javascript 是浏览器客户端脚本语言,要想让网页与后台程序更好的交互效果,这里我们详细了解javascript 数据类型及类型的转换 1,数据类型 number number类型 数字类型,浮 ...

  8. java基本数据类型

    基本数据类型概念 java是一种强类型语言,意味着必须为每一个变量声明一种数据类型. java拥有8中基本数据类型,主要包含如下:4中整形类型(long.int.short.byte)表示整形数值:两 ...

  9. [Java 基础]数据类型

    基本类型和引用类型 Java中的数据类型有两类: l  基本类型(又叫内置数据类型,或理解为值类型) l  引用类型 基本类型和引用类型的区别 1.  从概念方面来说 基本类型:变量名指向具体的数值 ...

  10. 面试准备(四)Java基本数据类型

    Java语言是静态类型的(statical typed),也就是说所有变量和表达式的类型再编译时就已经完全确定.由于是statical typed,导致Java语言也是强类型(Strong typed ...

随机推荐

  1. 腾讯面试:一条SQL语句执行得很慢的原因有哪些?---不看后悔系列

    说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯 ...

  2. Java注解(一):介绍,作用,思想及优点

    “注解优先于命令模式”-出自<Effective Java> Java 注解,从名字上看是注释,解释.但功能却不仅仅是注释那么简单.注解(Annotation) 为我们在代码中添加信息提供 ...

  3. android使用.9图作为背景,内容不能居中的问题解决方案

    在xml中使用.9图作为背景,内容不能居中,试了好多方法最后,加一个属性就ok了. android:padding:0dip; 解析:.9图作为背景时,不可拉伸的部分就相当于该空间的padding距离 ...

  4. mqtt服务器apollo的搭建和测试工具paho的使用

    (1)前言 MQTT协议是IBM开发的一个即时通讯协议; 基于发布/订阅的消息协议,近些年来被广泛应用于能源.电力.....等硬件性能低下的远程设备,此外国内很多企业使用MQTT作为android手机 ...

  5. 带着新人看java虚拟机04(多线程篇)

    我记得最开始接触多进程,多线程这一块的时候我不是怎么理解,为什么要有多线程啊?多线程到底是个什么鬼啊?我一个程序好好的就可以运行为什么要用到多线程啊?反正我是十分费解,即使过了很长时间我还是不是很懂, ...

  6. Gradle中的闭包

    Gradle是基于Groovy的DSL基础上的构建工具,Gradle中的闭包,其原型上实际上即Groovy中闭包.而在表现形式上,其实,Gradle更多的是以约定和基于约定基础上的配置去展现.但本质上 ...

  7. C#-Xamarin的Activity传值与Fragment引用

    前言 我们学习任何一个新框架时,肯定都需要学习它的子页面用法,因为子页面是封装公共内容最好的容器. 在Xamarin里子页面为Fragment,翻译过来是片段的意思. Fragment 下面我们来学习 ...

  8. 文件进行MD5计算

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. Dynamics CRM模拟OAuth请求获得Token后在外部调用Web API

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复233或者20161104可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  10. happens-before 理解

    从JDK 5 开始,JMM就使用happens-before的概念来阐述多线程之间的内存可见性.在JMM中,如果一个操作执行的结果需要对另一个操作可见, 那么这2个操作之间必须要存在happens-b ...