概念: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. surging 微服务引擎 1.0 正式发布

    surging 是一个分布式微服务引擎,提供高性能RPC远程服务调用,服务引擎支持http.TCP.WS.Mqtt协议,采用Zookeeper.Consul作为surging服务的注册中心,集成了哈希 ...

  2. 浅析JavaScript解析赋值、浅拷贝和深拷贝的区别

    文章首发于sau交流学习社区 一.赋值(Copy) 赋值是将某一数值或对象赋给某个变量的过程,分为: 1.基本数据类型:赋值,赋值之后两个变量互不影响 2.引用数据类型:赋**址**,两个变量具有相同 ...

  3. socketserver实现并发

    socketserver实现并发原理:给每一个前来链接的客户端开启一个线程执行通信.也就是给每一个连接“配备”了一个管家. 下面用一个简单的示例来演示socketserver实现并发(一个服务端,两个 ...

  4. HTTP/2 简介

    支撑现有 Web 服务的 HTTP 协议距离其发布时的 1997 年已经有些年月了,随后的 HTTP/1.1 版本发布自 1999 年.随着技术的进步和需求的进化,对于数据快速高效地传输,HTTP/1 ...

  5. es6学习笔记-class之继承

    继承 上一篇学习了class的概念,在es5时,对象的继承有好几种,原型链继承,借用构造函数继承,组合继承,原型式继承,寄生式继承以及寄生组合式继承,都是按照函数的形式去集成的,现在class也有它的 ...

  6. 如何定义开发完成?(Definition of Done)

    最近在拜读郑晔的10x程序员工作法,收益良多,文中提出一个概念叫DoD(Definition of Done)给我的感触颇深.这让我联想到实际工作过程中,经常遇到的扯皮.争吵等各种场景,其实就和这个D ...

  7. Linux遗忘root密码的其中两种解决方法

    由于安全的需要,系统一般只有一个root用户,因此若遗忘root用户的登录密码,因此需要通过其他途径进行修改密码.1.通过单用户模式(1)重启系统,按任意键进入grub菜单.出现grub菜单时,按↑, ...

  8. Cookie、LocalStorage 与 SessionStorage的区别在哪里?

    基本概念 Cookie Cookie 是小甜饼的意思.顾名思义,cookie 确实非常小,它的大小限制为4KB左右.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码”,这通常就是通 ...

  9. arcgis api 4.x for js 离线部署

    在我的GIS之家群里,经常遇到 webgis 开发新手们提问 arcgis api for js 如何本地离线部署,而不是直接调用在线的,因为在线模式依赖互联网以及网速环境因素,受到的限制影响比较大. ...

  10. Liunx-cd命令

    1. 如何进入上级目录cd .. 2. 如何进入当前用户主目录cd ~3. 如何进入上两级目录cd ../.. 4. 进入当前目录命令cd .5. 如何进入目录  /lym/b 6.切换跟目录