JAVA -数据类型与表达式---数据类型转换
数据类型转换技术
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 -数据类型与表达式---数据类型转换的更多相关文章
- Java基础练习1(数据类型转换)
1.下列代码的输出结果是:()(单选) public static void main(String[] args){ double money = 3.0; money -= 2.9; System ...
- Java从零开始学五(数据类型转换)
一.数据类型转换 分为“自动类型转换”和“强制类型转换” 二.自动类型转换 低级别------>高级别 byte b=7; int i=b; System.out.println("i ...
- Java程序,基本数据类型、、数据类型转换、变量和常量、常用运算符
一.基本数据类型 整数类型:byte.short. int(常用).long(较常用) 定义某个变量 int a=10: 浮点类型(小数):float.double(常用) ...
- Java JNI 编程进阶 实例+c++数据类型与jni数据类型转换
原文:http://www.iteye.com/topic/295776 JNI一直以来都很少去关注,但却是我心中的一个结,最近这几天刚好手头有点时间,因此抽空看了一下这方面的东西,整理了一份文档,J ...
- JAVA -数据类型与表达式---表达式
表达式由一个以上的运算符和操作数按一定规则组合而成,通常用于完成计算.计算结果一般是一个数值,但也不一定总是数值.用于计算的操作数可能是数值常量.符号常量.变量或其他某种类型的数据.计算和使用表达式的 ...
- JAVA -数据类型与表达式---变量与赋值
变量 程序中所管理的大部分信息,都是用变量表示的.下面讨论如何在程序中声明和使用变量. 变量(variable)代表保存数据的内存单元,变量名是内存单元的符号地址.变量声明要求编译器分配足够大的内存单 ...
- JAVA -数据类型与表达式---字符串
字符串 Java中,字符串就是对象,它由 String类定义.字符串是计算机程序设计中非常基础的类型,因此Java允许定义字符串常量(string literal),并以双引号作为字符串的定界符. 一 ...
- Java数据类型、赋值、类型转换、==运算
数据类型 基本数据类型:即int/char等这样的数值类型,共8种 引用类型:除了基本数据类型之外都是引用类型:包括API中的类:如String.File:也包括自定义的类:如Personal.ABC ...
- JAVA -数据类型与表达式---基本数据类型
基本数据类型 Java有8种基本数据类型(primitive data type):4种整型.2种浮点型.字符型和布尔型.除此之外的任何类型都用对象表示.本节将详细讨论上述8种基本数据类型. 整型与浮 ...
随机推荐
- [Python之路] ORM(对象关系映射)
一.概念 ORM是Python后端Web框架Django的核心思想,"Object Relational Mapping",即对象-关系映射,简称ORM. 一句话理解就是: 创建一 ...
- LA 6434 The Busiest City dfs
Tree Land Kingdom is a prosperous and lively kingdom. It has N cities which are connected to eachoth ...
- 二进制上的数位dpPOJ 3252
Round number POJ - 3252 题目大意:一个"round number" 数的定义是,将它转化成2进制后,0的个数大于等于1的个数,要求的就是在[s,f]范围内& ...
- Centos 7 安装 Xilinx SDSoC Development Environment
1.CentOS版本信息 $ cat /etc/redhat-releaseCentOS Linux release 7.6.1810 (Core) 2.SDSoC下载地址: https://www. ...
- Node.js 安装与开发
Node.js 简介 Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装.Node.js对一些 ...
- Java线程之Timer
简述 java.util.Timer是一个定时器,用来调度线程在某个时间执行.在初始化Timer时,开启一个线程循环提取TaskQueue任务数组中的任务, 如果任务数组为空,线程等待直到添加任务: ...
- From 7.15 To 7.21
From 7.15 To 7.21 大纲 竞赛 一周七天, 总共做三十五到四十道题吧, 题解要一起写了, 周六之前写不完的话就只能回家补咯 加上考试题总共做了25道题... 还要学计算几何, 生成函数 ...
- HNOI2012矿场搭建
做完Mining Your Own Business后觉得这个题没什么意思了,数据范围小的连边数不清空都能A. 题解直接看这篇吧.做题的经历也挺……对吧. #include<iostream&g ...
- centos调整屏幕亮度
笔记本安装centos6.5后亮度无法通过键盘快捷键调节,可以通过安装软件来调节. 安装:yum install xgamma 设置亮度:xgamma -gamma n( 0.1 < n < ...
- Java多线程核心知识(跳槽面试必备)
多线程相对于其他 Java 知识点来讲,有一定的学习门槛,并且了解起来比较费劲.在平时工作中如若使用不当会出现数据错乱.执行效率低(还不如单线程去运行)或者死锁程序挂掉等等问题,所以掌握了解多线程至关 ...