小康陪你学JAVA--------运算符及表达式的类型转换

下面列出了各个运算符的优先级的排列,数字越小的表示优先级越高。

Java还有一些相当简洁的写法,是将算术运算符和赋值运算符结合成为新的运算符,下面列出了这些运算符。

当int类型遇上了float类型,到底谁是“赢家”呢?在前面曾提到过数据类型的转换,在这里,要再一次详细讨论表达式的类型转换。

Java是一个很有弹性的程序设计语言,当上述的情况发生时,只要坚持“以不流失数据为前提”的大原则,即可做不同的类型转换,使不同类型的数据、表达式都能继续存储。依照大原则,当Java发现程序的表达式中有类型不相符的情况时,会依据下列的规则来处理类型的转换。

1、 占用字节较少的类型转换成占用字节较多的类型。

2、 字符类型会转换成 int 类型。

3、 int 类型会转换成 float 类型。

4、 表达式中若某个操作数的类型为 double,则另一个操作数字也会转换成 double

类型。

5、 布尔类型不能转换成其它类型。

01 // 下面的程序说明了表达式类型的自动转换问题

02 public class TestJava3_22

03 {

04    public static void main(String[] args)

05  {

06       char ch = ‘a‘ ;

07       short a = -2 ;

08       int b = 3 ;

09   float f = 5.3f ;

10       double d = 6.28 ;

11

12       System.out.print("(ch / a) - (d / f) - (a + b) = ");

13       System.out.println((ch / a) - (d / f) - (a + b));

14  }

15 }

输出结果:

(ch / a) - (d / f) - (a + b) = -50.18490561773532

先别急着看结果,在程序运行之前可先思考一下,这个复杂的表达式(ch / a)- (d / f) – (b + a)最后的输出类型是什么?它又是如何将不同的数据类型转换成相同的呢?下面是对该程序的执行结构分析:

小康陪你学JAVA--------运算符及表达式的类型转换

时间: 2024-11-08 23:53:46

小康陪你学JAVA--------运算符及表达式的类型转换的相关文章

小康陪你学JAVA--------JAVA基本程序设计总结

前段时间对JAVA基本的程序设计做了介绍,小编对此做了一些总结,希望能对大家有所帮助. 1.Java的数据类型可分为下列两种:基本数据类型和引用数据类型. 2.Java提供long.int.short及byte四种整数类型的最大值.最小值的代码.最大值的代码是MAX_VALUE,最小值是MIN_VALUE.如果使用某个类型的最大值或最小值,只要在些代码之前,加上它们所属的类的全名即可. 3.Unicode,它为每个字符制订了一个唯一的数值,如此在任何的语言.平台.程序都可以安心地使用. 4. 

小康陪你学JAVA--------Switch的使用

本篇介绍如何使用switch语句以及它的好伙伴——break语句:此外,也要讨论在switch语句中如果不使用break语句会出现的问题.首先,先来了解switch语句该如何使用. switch语句执行的流程. 1. switch语句先计算括号中表达式的结果. 2. 根据表达式的值检测是否符合执行case后面的选择值,若是所有case的选择值皆不符合,则执行default所包含的语句,执行完毕即离开switch语句. 3. 如果某个case的选择值符合表达式的结果,就会执行该case所包含的语句

小康陪你学JAVA--------三大循环之While循环

接下来的三篇博客将介绍JAVA里会经常使用的循环结构,此篇首先来介绍While循环. while是循环语句,也是条件判断语句.当事先不知道循环该执行多少次的时,就要用到while循环.while循环的格式如下: 当while循环主体有且只有一个语句时,可以将大括号除去.在while循环语句中,只有一个判断条件,它可以是任何表达式,当判断条件的值为真,循环就会执行一次,再重复测试判断条件.执行循环主体,直到判断条件的值为假,才会跳离while循环. 下面列出了while循环执行的流程. 1. 第一

小康陪你学JAVA--------溢出的发生

此篇介绍JAVA 中在编写程序的过程中可能出现的一类问题——溢出的发生. 首先来看一下JAVA整数常量的特殊值代码: 01 //  整数值如果超出了自己所可以表示范围的最大值,会出现溢出 02 public class TestJava3_4 03 { 04    public static void main(String args[]) 05   { 06     int x = java.lang.Integer.MAX_VALUE ;    //  得到整型的最大值 07 08  Sys

小康陪你学JAVA--------sort方法对数组进行排序

本篇和大家分享另一种数组的操作的方法——sort方法对数组进行排序. 范例:TestJava4_5.java 01 // 以下程序是数组的排序操作,在这里使用了sort方法对数组进行排序 02 import java.util.*; 03 public class TestJava4_5 04 { 05    public static void main(String[] args) 06  { 07       int a[] = {4,32,45,32,65,32,2} ; 08 09  

小康陪你学JAVA--------数组的介绍

今天小编和大家分享JAVA学习中一个重要的数据类型——数组. 若想要存放一连串相关的数据,使用数组是个相当好用的选择.此外,如果某个程序片段经常反复出现,那么将它定义成一个方法可以有效地简化程序代码.数组是由一组相同类型的变量所组成的数据类型,它们以一个共同的名称表示,数组中的个别元素则以标注来表示其存放的位置. 要使用Java的数组,必须经过两个步骤:(1)声明数组.(2)分配内存给该数组. 这两个步骤的语法如下: 数组的声明格式里,“数据类型”是声明数组元素的数据类型,常见的类型有整型.浮点

小康陪你学JAVA--------continu3和break的比较

本篇将和大家做个continu3和break的比较. 在Java语言中,有一些跳离的语句,如break.continue等语句,站在结构化程序设计的角度上,并不鼓励使用,因为这些跳离语句会增加调试及阅读上的困难.因此建议:除非在某些不得以的情况下之外,否则尽量不要去使用它们.在本篇中,将介绍break及continue语句. break语句 break语句可以强迫程序跳离循环,当程序执行到break语句时,即会离开循环,继续执行循环外的下一个语句,如果break语句出现在嵌套循环中的内层循环,则

小康陪你学JAVA--------JAVA基础总结

此篇是对刚开始接触JAVA的一个小总结. 1.  Java 语言的注释方式有三种: (1).“//”记号开始,至该行结束: (2).“/*”与“*/”这两个符号之间的文字: (3).文档注释. 2. 如果将一个类声明成 public,则它的文件名称必须取成这个类的名称才能顺利编译. 3.  main()在 Java 里是一个相当特殊的 method,它一定要声明成 public,使得在类的其它地方皆可调用到它,且 main() method 没有返回值,所以在它之前要加上 void关键字. 4.

小康陪你学JAVA--------三大循环之Do-while循环

do…while循环也是用于未知循环执行次数的时候,而while循环及do…while循环最大不同就是进入while循环前,while语句会先测试判断条件的真假,再决定是否执行循环主体,而do…while循环则是“先做再说”,每次都是先执行一次循环主体,然后再测试判断条件的真假,所以无论循环成立的条件是什么,使用do…while循环时,至少都会执行一次循环主体.do…while循环的格式如下: 当循环主体只有一个语句时,可以将左.右大括号去除.第一次进入do..while循环语句时,不管判断条件