6.6-数据类型自动转换与强制性转换

当不同的数据类型进行计算的时候,会自动将结果变成最大值的数据类型,转换顺序如下

byte-short-int-long-float-double

                     I

                (char)

                 (char实际存储为unicode编码,实际是整数类型-即32位)


/*

* Created by 智捷课堂

* 本书网站:www.51work6.com

* 智捷课堂在线课堂:www.zhijieketang.com

* 智捷课堂微信公共号:zhijieketang

* 邮箱:eorient@sina.com

* Java读者服务QQ群:547370999

* 【配套电子书】网址:

*      图灵社区:

*      http://www.ituring.com.cn/book/2480

*      百度阅读:

*      https://yuedu.baidu.com/ebook/7c1499987e192279168884868762caaedd33ba00

*/

public class HelloWorld {

public static void main(String[] args) {

////////// 自动类型转换//////////////

// 声明整数变量

byte byteNum = 16;

short shortNum = 16;

int intNum = 16;

long longNum = 16L;

// byte类型转换为int类型

intNum = byteNum;

// 声明char变量

char charNum = '花';

// char类型转换为int类型

intNum = charNum;

// 声明浮点变量

// long类型转换为float类型

float floatNum = longNum;

// float类型转换为double类型

double doubleNum = floatNum;

// 表达式计算后类型是double

double result = floatNum * intNum + doubleNum / shortNum;

////////// 强制类型转换//////////////

//int型变量

int i = 10;

//把int变量i强制转换为byte

byte b = (byte) i;

int i2 = (int)i;

int i3 = (int)b;

//精度与强制类型转换

float c1 = i / 3;

System.out.println(c1);

//把int变量i强制转换为float

float c2 = (float)i / 3;

System.out.println(c2);

//强制类型转换导致精度丢失

    long yourNumber = 6666666666L;

    System.out.println(yourNumber);

    int myNuber = (int)yourNumber;

    System.out.println(myNuber);


}

}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一类:逻辑型boolean 第二类:文本型char 第三类:整数型(byte、short、int、long) c...
    Jasonme阅读 1,134评论 0 4
  • 一、Java 简介 Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计...
    子非鱼_t_阅读 4,370评论 1 44
  • 1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或...
    哈哈哎呦喂阅读 705评论 0 0
  • 擦肩而过,是我在人群中和捐献箱擦肩而过。不同的身影同样的匆匆。 虽然知道能在厂区公开募捐的事多半是真实且合理的。但...
    以身妄嫌阅读 280评论 0 0
  • “一杯12年的云顶,加冰。”我走进酒吧,随意在吧台拐角处旁找了个位子,手指轻点桌面,撑着脑袋等待着。 “久等。”侍...
    小小小小小L阅读 387评论 0 0