一、变量类型的转换
(一)自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地声明。需要满足两个条件:第一是两种数据类型相互兼容,第二是目标类型取值范围要大于源类型。
当把一个表数范围小的数值或变量直接赋给另一个表数范围大的变量时,系统将可以进行自动类型转换。
例如:
- double d = 3; //int自动转换为double类型3.0再赋值。
- 3+1.0; //表达式的类型为所有操作数的最高类型,即double类型。
当把任何基本数据类型的值和字符串值进行连接运算时,基本类型的值将自动类型转换为字符串类型。
(二)强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。当两种数据类型不能相互兼容或目标类型取值范围小于源类型,自动类型转换就不能进行。所以需要强制类型转换。
当把一个表数范围大的数值或变量直接赋给另一个表数范围小的变量时,范围将溢出,出现错误。
例如:
- short s = 5; //5在short的范围内,允许赋值,5将被看成是short类型的。
- s = s + 2; //2是int类型,s+2表达式类型为int,赋值给short类型,将发生溢出,报错。
强制类型具体格式如下:
目标类型 变量=(目标类型)值
例如:
- s = (short)(s+2);//将int类型强制转换成short类型。
需要注意一点就是强制类型转换可能会造成信息丢失。
二、运算符
(一)算术运算符
与算术相关运算符+、-、*、/,就是加减乘除,也被成为四则运算。另外还有一个%称为模数运算符或余数运算符。算术运算符使用上和学过的加减乘除一样,先乘除后加减。
算术运算符看起来比较简单和容易理解。在实际使用时还有很多需要注意的问题:
在自增++和自减--的运算时,如果是运算符++或--放在操作数的前面则是先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面则是先进行其他运算再进行自增或自减。
例如:
- int a=2; //声明一个int类型变量a并赋值为2
- int b=3;//声明一个int类型变量b并赋值为3
- int x=a+b++;//声明一个int类型变量x
- System.out.print("b="+b);
- System.out.print("x="+x);
上面代码输出结果是b=4,x=5。具体分析:
首先是定义了3个int类型,其中a=2,b=3,当x进行a+b++运算,因为运算符++写在后面,所以是先进行运算,然后再自增。变量b参与加法运算时值仍然是3,x=5。变量b先进行运算后自增,b的值为4。
(二)比较运算符
数学上有大于,小于,等于的比较运算符,java也提供这些运算符,这些运算符称为比较运算符。
例如:
- System.out.printf("3>2 结果%b%n",3>2);
- System.out.printf("3>=2 结果%b%n",3>=2);
- System.out.printf("3<2 结果%b%n",3<2);
- System.out.printf("3<=2 结果%b%n",3<=2);
- System.out.printf("3==2 结果%b%n",3==2);
- System.out.printf("3!=2 结果%b%n",3!=2);
输出结果是:
- 3>2 结果true
- 3>=2 结果true
- 3<2 结果false
- 3<=2 结果false
- 3==2 结果false
- 3!=2 结果true
比较运算符是对两个数值或变量进行比较,结果是一个布尔值true或false。
(三)逻辑运算符
逻辑运算符用于对布尔型的数据进行操作,结果也是一个布尔值。在逻辑上“且(AND)”、“或(OR)”、“反相(NOT)”,在java也提供这些逻辑运算符,分别是&&(AND)、||(OR)、!(NOT)。
例如:
- int number=35;
- System.out.println(number>30&&number<40);
- System.out.println(number>40||number<30);
- System.out.println(!(number>40||number<30));
输出结果是:
- true
- false
- True
(四)位运算符
位运算符是对二进制数的每一位进行运算的符号,它是专门对数字0和1进行操作。
例如:
计算5&3=1
三、总结
本文主要介绍了数据类型的转换分别有自动类型转换和强制类型转换,也介绍了这两种类型转换的用法,需要注意的是强制类型转换可能造成信息的丢失。
运算符包括了算术运算符、比较运算符、逻辑运算符、位运算符。算术运算符是+、-、*、\,还有%模数运算符或余数运算符。详细介绍了自增和自减的用法。比较运算符是对两个数值或变量进行比较,结果是一个布尔值true或false。
逻辑运算符对布尔型的数据进行操作,结果也是一个布尔值。位运算符是对二进制数的每一位进行运算的符号,它是专门对数字0和1进行操作。希望通过本文的学习,能够帮助到你理解数据类型转换和运算符。