类型转换

在实际开发过程中,存在类型转换,类型转换分为两种,自动类型转换和强制类型转换。

自动类型转换

程序编译或运行过程中,jvm可以发生自动类型转换。转换规则:

[1]容量小的数据类型可以自动转换为容量大的数据类型。

[2] 类型兼容

public class Test{

public static void main(String[] args){

// 自动类型转换

byte a = 10;

int b = a;

// 类型不兼容

/*

boolean r1 = false;

int d = r1;

*/

// char类型本质是整形

int c = 0;

char d = 'a';

c = d;

} }

相兼容的理解

[1]数值型都相互兼容。

[2]int和char相互兼容(char本质上是整形,char是被编码的字符)

jvm对自动类型转换的优化

可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围.

public class Test{

public static void main(String[] args){

// jvm的优化

// 没有发生自动类型转换。

byte a = 100;

char b = 20013;

System.out.println("b="+b);

} }

在表达式进行计算时,表达式的结果会自动发生类型转换。

表达式的结果都向高精度偏移。

如果一个操作数为double型,则整个表达式可提升为double型。

强制类型转换

强制类型转换,又被称为造型,用于显式的转换一个数值的类型. 形式:

type var2 = (type)var1

// 没有信息丢失强制类型转换

int a = 100;

byte b = (byte)a; System.out.println("b="+b);

强制类型转换存在信息丢失或者精度丢失的情况。

// 存在精度丢失的强制类型转换

float c = 10.2f;

int d = (int)c;

System.out.println("d="+d);

// 信息丢失的强制类型转换。

int e = 300;

byte f = (byte)e;               System.out.println("f="+f);

在实际开发过程中,一定要避免这两种情况的发生,特别是信息丢失的发生。

java中类型转换的造型_Java-类型转换 - 吉胖子很瘦的个人空间 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. java 树的层次遍历_Java遍历树的层级 - osc_jegm3yg5的个人空间 - OSCHINA - 中文开源技术交流社区...

    非科班出身,欢迎指正. 要实现的逻辑是,在一棵树中,给出任意一个节点,获取到该节点下的N个层级. 一.树型结构 下图的树中,节点上的字母代表节点的名字,字母下的代表该节点的下单金额. 二.数据准备 组 ...

  2. java实现gdal栅格矢量化_gdal栅格矢量化 - osc_lfs4vsih的个人空间 - OSCHINA - 中文开源技术交流社区...

    #include "gdal_alg.h" 栅格矢量化功能用于将栅格数据生成矢量数据,通常用于分类图像.GDAL库中使用函数GDALPolygonize()或者函数GDALFPol ...

  3. java sql报错不能catch_java异常(转) - osc_ioa3fr1w的个人空间 - OSCHINA - 中文开源技术交流社区...

    Throwable(所有error和exception的父类:超类) Java将错误变成对象交给异常处理机制 Error(仅靠程序本身无法恢复的严重错误) 一般是环境的问题,JVM的问题,并非程序的问 ...

  4. 最新JAVA性能调优实战教程_java性能调优实战 - osc_9z8xc00s的个人空间 - OSCHINA - 中文开源技术交流社区...

    在项目压测过程中,发现系统占用,上下文切换非常频繁,在此记录下调优过程,希望对后来人有所帮助. 测试方法:模拟客户端实际操作,向服务器高并发发送数据,查看服务器的负载情况. 服务器基本配置如下 1,基 ...

  5. java痴和堆_JAVA虚拟机理解 - 爱笑的痴迷者的个人空间 - OSCHINA - 中文开源技术交流社区...

    JVM定义: JVM(Java Virtual Machine),是一种运行Java程序的软件实现,是虚拟的机器.Java程序与平台无关,它直接在虚拟机中运行. JVM运行过程: JVM将内存分划如下 ...

  6. java代餐计算器_java入门7 - 千言sully的个人空间 - OSCHINA - 中文开源技术交流社区...

    1...访问修饰符   返回值类型  方法名(参数列表){} 访问修饰符:方法允许访问的权限范围 返回值类型:void是不带return返回值的,   如果带返回值,此时要把返回值类型写出来 方法名( ...

  7. java选择排序不稳定_选择排序就这么简单 - Java3y的个人空间 - OSCHINA - 中文开源技术交流社区...

    选择排序就这么简单 从上一篇已经讲解了冒泡排序了,本章主要讲解的是选择排序,希望大家看完能够理解并手写出选择排序的代码,然后就通过面试了!如果我写得有错误的地方也请大家在评论下指出. 选择排序介绍和稳 ...

  8. java实现自举_实现语言的自举 - 沙枣的个人空间 - OSCHINA - 中文开源技术交流社区...

    几乎所有的语言项目,其核心都是用更底层的语言写的. 底层语言大部分是 C,C++,而扩展这门语言的核心,就要用另外一种语言 去写.这给语言设计者较大的挑战. 开发语言必须具备底层语言的编写能力,而为了 ...

  9. 在C语言中数据耦合例子,耦合性 内聚加实例 - osc_yip56055的个人空间 - OSCHINA - 中文开源技术交流社区...

    基本信息 耦合性(或称"耦合度") 英文 : coupling 耦合性也叫块间联系.指软件系统结构中各模块间相互联系紧密程度的一种度量.模块之间联系越紧密,其耦合性就越强,模块之间 ...

最新文章

  1. 还在傻傻分不清楚equal和==
  2. 最新综述:用于组合优化的强化学习
  3. Windows上Tomcat启动,服务中没有Tomcat
  4. mybatis学习笔记(1)-对原生jdbc程序中的问题总结
  5. CubeMX配置串口的程序烧入板子不跑的解决方法
  6. 工作经验总结:百万数据引发的性能瓶颈问题
  7. IDEA Tomcat控制台中文乱码
  8. GridView中添加自动编号,以及鼠标经过时行背景色变和删除时提示。
  9. [Redis]Redis的数据类型
  10. 算法----其他排序
  11. 一致代价搜索_58搜索效率优化平台建设实践
  12. winxp netbeui install
  13. filenet分布式部署
  14. 安装win10虚拟机遇到的坑
  15. 戴尔r410服务器虚拟磁盘,DELL服务器R410原装 SAS 6/IR RAID卡 阵列控制器卡 支持RAID0,1...
  16. 假币问题详解(枚举的经典例题)
  17. codeforces-1734C - Removing Smallest Multiples
  18. 杠杆炒股为什么会被强制平仓?
  19. 化繁为简,我用”知晓推送”开发微信小程序订阅消息
  20. 非常漂亮的一款html引导页导航网站旋转头像变幻背景单页源码

热门文章

  1. uboot启动linux,uboot中ramdisk启动linux的两种方法
  2. linux获取互联网时间,linux中用shell获取时间,日期
  3. python爬取b站粉丝数_【python爬虫】每天统计一遍up主粉丝数!
  4. linux驱动程序是什么,简述一个Linux驱动程序的主要流程与功能
  5. 【UAV】光流模块、测量速度、快速入门及安装使用
  6. 1.1 为什么选择序列模型-深度学习第五课《序列模型》-Stanford吴恩达教授
  7. STM32 进阶教程 5 - 内联函数
  8. 【PC工具】文件压缩解压工具winrar解压缩装机必备软件,winRAR5.70免费无广告
  9. 主线科技完成A轮融资,蔚来资本、普洛斯隐山资本联合领投
  10. RAID重组和数据库数据的修复与验证