数据类型的精度由低到高为:byte < short < char < int < long < float < double

低精度的类型与高精度的类型在进行运算时,低会自动转换为高,而如果非要把结果转为低精度的类型,需要进行强制转换。(犹如小杯里的水倒入大杯子里,可以;但是大杯里的水想要倒入小杯里可能会溢出,那高精度的同理可能会出现精度丢失。)

(1)byte、short、char型参与运算时,低于int型都会自动转换为int型(使用“+=”运算符除外),然后对int型的值进行计算,得到的结果也为int型。这些类型的变量与高于int类型(如:long、float、double)的变量一起运算时,会自动转换为高精度的类型。其中char类型的数据会转换为对应的ASCII码。

举个不常规,但掌握语法的例子:

byte b1=1;
long b2=3;
float b3=b1+b2;//此时b3=4.0 首先b1+b2的结果为long型,赋值给b3时自动转换为float型

byte型示例:

1.

byte b1=1,b2=2;
int b=b1+b2; //如果把两个byte型的值相加,得到的结果是int型

2.

byte b1=1,b2=2;
b1=(byte)(b1+b2); //如果要得到byte型的结果,需强转为byte型[注意转换的是结果,不要忘记给b1+b2加括号]

3.

short a=128;   // a=128
byte b=(byte)a; // b=-128

short类型占2个字节,a对应的二进制为:00000000 10000000,由于byte占1个字节,在强制转换为byte时只能存下低字节部分:10000000,10000000是-128的补码,所以b为-128。

short型示例:

1.

short s1=1,s2=2;
s1=s1+s2; //编译错误,如果把两个short型的值相加,得到的结果是int型

改正:

short s1=1,s2=2;
s1=(short)(s1+s2); //如果要得到short型的结果,需强转为short型

3.

short s1=1;
s1=s1+1; //编译错误,s1会转换为int型,结果也为int型,而s1定义类型为short型

改正:

short s1=1;
s1=(short)(s1+1);

例外情况:

“+=”运算符,不会产生类型的转换,Java编译器会对其进行特殊处理。

short s1=1;
s1+=1; //能够编译通过

char型示例:

char c1='a',c2='b';
int c=c1+c2; //得到的结果是int型
c1=(char)(c1+c2); //得到的结果是int型,如果想得c1为字符,需要char强制转换

(2)boolean类型不与其它类型转换,其值只有true和false,注意不像C语言可以为0或非0代表真或假。

示例:

int i=1;
if(i)
System.out.println("true");
else
System.out.println("false");

编译错误,if条件只能是boolean类型的值(true或false),而 i 的类型为 int。

(3)整型字面值默认为int型,若用long型定义,需要在字面值末尾加l或L。

如:long l=5543876532345678653L;   或  long l=5543876532345678653l;

浮点型字面值默认为double型,若用float型定义,需进行类型转换。

float型变量初始化这三种形式均可:1.float f=1.0f; 2.float f=1.0F;  3.float f=(float)1.0;


Java基础笔记(五)——数据类型转换的更多相关文章

  1. Java基础练习1(数据类型转换)

    1.下列代码的输出结果是:()(单选) public static void main(String[] args){ double money = 3.0; money -= 2.9; System ...

  2. Java从零开始学五(数据类型转换)

    一.数据类型转换 分为“自动类型转换”和“强制类型转换” 二.自动类型转换 低级别------>高级别 byte b=7; int i=b; System.out.println("i ...

  3. Java实习生常规技术面试题每日十题Java基础(五)

    目录 1.启动一个线程是用run()还是start()? . 2.线程的基本状态以及状态之间的关系. 3.Set和List的区别,List和Map的区别? 4.同步方法.同步代码块区别? 5.描述Ja ...

  4. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  5. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  6. Java 读书笔记 (五) 目标数据类型转换

    数据类型转换必须满足如下规则: 不能对boolean类型进行类型转换 不能把对象类型转换成不相关类的对象  //那不同类的对象可以用同一个名字命名吗?根据作用域原则,可以吧? 把容量大的转换为容量小的 ...

  7. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  8. Java基础笔记05-06-07-08

    五.今日内容介绍 1.方法基础知识 2.方法高级内容 3.方法案例 01方法的概述 * A: 为什么要有方法 * 提高代码的复用性 * B: 什么是方法 * 完成特定功能的代码块. 02方法的定义格式 ...

  9. Java基础笔记(1)----语言基础

    变量 变量:是内存中的一块存储空间,是存储数据的基本单元. 使用:先声明,后赋值,在使用. 声明:数据类型 + 变量名 = 值.(例:int a = 5:) 数据类型 分类:如图: 详解: Strin ...

  10. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

随机推荐

  1. 话说文件系统——aufs源码分析(三)【转】

    本文转载自:http://www.cnblogs.com/xie0812/p/8848185.html 1. linux中设备驱动的入口都是:module_init(xxx_init);里面注册的函数 ...

  2. 【Java】CookieStore 类使用示例

    CookieStore 是 Java API 中用来处理 HTTP 客户端的 Cookie 存储策略的类.psd素材 1. [代码]WebClient.java      01import java. ...

  3. jQuery 中的常用函数

    on() : 方法在被选元素及子元素上添加一个或多个事件处理程序.自1.7 版本起,on()方法是 bind(),live() 和 delegate()方法的替代品 语法: $(selector).o ...

  4. 分享知识-快乐自己:论 Mybatis中的关联关系(一对多,多对一,多对多)

    论:一对多:(举例一个省有多个市)就是实体类中有(市)类型集合属性:多对一:(多个市有一个共同的省)就是类中有(省)类型的属性.下面来介绍:一对一.多对一的使用方式. 一对多方: package ml ...

  5. 分享知识-快乐自己:Hibernate 关联映射

    关联关系映射--概念: 关联关系是使用最多的一种关系,非常重要.在内存中反映为实体关系,映射到DB中为主外键关系. 实体间的关联,即对外键的维护.关联关系的发生,即对外键数据的改变. 外键:外面的主键 ...

  6. CentOS7 网络管理工具nmcli

    今天帮别人调试虚拟机的网络问题(CentOS 7系统),习惯性直接改/etc/sysconfig/network-scripts/ifcfg-xxx配置文件,但是不知道为什么重启network后静态i ...

  7. openfire性能调优

    1. 参考 http://blog.csdn.net/foxisme2/article/details/7521139 http://blog.csdn.net/foxisme2/article/de ...

  8. 集训Day5

    生活还得继续 bzoj3771 题面让我笑了很长时间 给出 n个物品,价值为别为Xi且各不相同,现在可以取1个.2个或3个,问每种价值和有几种情况? *顺序不同算一种 很傻逼的一个母函数+容斥,用A( ...

  9. windows下搭建绿色nodejs运行环境

    无意中在网上看到NodeJS的文章,发现最近还挺火的,正好我也是做技术的,那就下载个玩玩呗,试试它的魅力,也来亲自感受下. 网上nodejs的环境的搭建到处都是,我这里就不说了,今天我想通过我自己的环 ...

  10. zabbix3.2部署

    原地址   http://blog.csdn.net/zk673820543/article/details/50680333 CentOS6.7zabbix3.0.0 1.基础软件包安装,采用yum ...