数据类型转换技术

Java中,数据转换的方式有三种:
*赋值类型转换
*提升类型转换
*强制类型转换

1.赋值类型转换

当需要将一个类型的值赋给另一种类型的变量时,该值将被转换为新类型的值,此时就发生了赋值类型转换。在赋值类型转换时只能执行扩展类型转换。例如,money是浮点型变量,dollars是整型变量,下面的语句自动将 dollars的值转换为浮点型:

money = dollars

 因此,如果dollars的值为25,赋值语句执行后,money的值为25.0。如果试图将 money的值赋给 dollars变量,编译器将发出一个错误信息,警告用户正试图做的压缩类型转换可能会丢失信息。如果用户确实需要执行这样的赋值操作,就必须使用强制类型转换

2.提升类型转换

当某种运算符为了进行运算而需要修改其操作数类型时,将进行提升类型转换。例如,浮点型变量sum除以整型变量 count时,在进行除法运算之前,count中的整型值将被升级为类型级别更高的浮点型值,最终产生浮点型运算结果:

result = sum/ count

  数值与字符串拼接时,会发生类似的提升类型转换。首先将该数值转换为(类型级别更高的)字符串,然后将两个字符串拼接。

3.强制类型转换

强制类型转换(casting)是Java中最常见的类型转换形式。如果有某个类型转换一定要在Java程序中实现,那就只能用强制类型转换。强制类型转换通过一个Java运算符进行,它由一对括号中的类型名称指定,并且放在待转换的变量或数值之前。例如,将 money转换为整型值,可以使用强制类型转换符:

dollars=(int) money;
变量2=(类型)变量1

  这个强制类型转换符(int)会丢弃 money的小数部分,返回一个整型值。如果 money的值为8469,则执行上述语句后 dollars的值为84。注意,这一赋值操作不会改变 money的值,money的值仍为84.69。

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程序,基本数据类型、、数据类型转换、变量和常量、常用运算符

    一.基本数据类型 整数类型:byte.short. int(常用).long(较常用)     定义某个变量          int  a=10: 浮点类型(小数):float.double(常用) ...

  4. Java JNI 编程进阶 实例+c++数据类型与jni数据类型转换

    原文:http://www.iteye.com/topic/295776 JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,J ...

  5. JAVA -数据类型与表达式---表达式

    表达式由一个以上的运算符和操作数按一定规则组合而成,通常用于完成计算.计算结果一般是一个数值,但也不一定总是数值.用于计算的操作数可能是数值常量.符号常量.变量或其他某种类型的数据.计算和使用表达式的 ...

  6. JAVA -数据类型与表达式---变量与赋值

    变量 程序中所管理的大部分信息,都是用变量表示的.下面讨论如何在程序中声明和使用变量. 变量(variable)代表保存数据的内存单元,变量名是内存单元的符号地址.变量声明要求编译器分配足够大的内存单 ...

  7. JAVA -数据类型与表达式---字符串

    字符串 Java中,字符串就是对象,它由 String类定义.字符串是计算机程序设计中非常基础的类型,因此Java允许定义字符串常量(string literal),并以双引号作为字符串的定界符. 一 ...

  8. Java数据类型、赋值、类型转换、==运算

    数据类型 基本数据类型:即int/char等这样的数值类型,共8种 引用类型:除了基本数据类型之外都是引用类型:包括API中的类:如String.File:也包括自定义的类:如Personal.ABC ...

  9. JAVA -数据类型与表达式---基本数据类型

    基本数据类型 Java有8种基本数据类型(primitive data type):4种整型.2种浮点型.字符型和布尔型.除此之外的任何类型都用对象表示.本节将详细讨论上述8种基本数据类型. 整型与浮 ...

随机推荐

  1. @Valid与@Validated

    Spring Validation验证框架对参数的验证机制提供了@Validated(Spring's JSR-303规范,是标准JSR-303的一个变种),javax提供了@Valid(标准JSR- ...

  2. SparkSQL之UDF使用

    package cn.piesat.test import org.apache.spark.sql.SparkSession import scala.collection.mutable.Arra ...

  3. Linux系统安装xinetd服务

    只需安装xinetd包 安装包 #yum -y install xinetd 安装成功后即可 service xinetd start service xinetd stop service xine ...

  4. webuploader的一些体验

    WebUploader是由Baidu WebFE(FEX)团队开发的一个简单的以HTML5为主,FLASH为辅的现代文件上传组件.支持大文件分片并发上传. 具体api文档参考:http://fex.b ...

  5. HDU 5884 Sort ——(K叉哈夫曼树)

    这题真心比较奥义,先见这个人的博客:http://blog.csdn.net/libin66/article/details/52565484 补0的方法是使得其满足成为满K叉树,而其博客中所说的“所 ...

  6. Linux下Weblogic 11g R1安装和配置

    自己留着好好看看! 文章摘自 :http://blog.163.com/ng_0125@126/blog/static/170162360201311773235995/ 1.  安装前 1  确定w ...

  7. Java 读取模板并生成HTML静态文件实例

    原理都很简单,主要是对模板的解析.so,我们先准备一个html模板mb.html,做个文件其中的###title###之类的标签用于程序进行查询替换. HTML code复制代码 <html&g ...

  8. Zjoi2011看电影(movie)

    第一步,打表找规律,发现自己的表连3的小样例都过不去,还不如自己手模,自己手跑了5以下的样例,然后发现毫无规律可言…… 第二步,想出一种错误做法,首先n>k必零,人比座都多……然后粘一下图: 基 ...

  9. 在.slurm文件中激活Anaconda环境

    超算中心使用slurm作为集群调度.原始slurm脚本如下: source activate tensorflow-gpu python neural_style.py --content conte ...

  10. js监听某个元素高度变化来改变父级iframe的高度

    最近需要做一个iframe调用其他页面内容,这个iframe地址是可变化的,但是里面的内容高度不确定且里面内容高度可调整,所以需要通过监听iframe里面body的高度变化来调整iframe的高度. ...