本文大致介绍了Java数据类型与运算符供小白编程爱好者借鉴,因为我也是学习者,这只是我自己的观点,如有错误,请指出。废话不多说,开始步入正题。
数学中,可以使用字母代替数字运算,例如 y=x+5 或者 6=x+5。
程序中,可以使用字母保存数字的方式进行运算,提高计算能力,可以解决更多的问题。比如x保存5,x也可以保存6,这样x保存的数据是可以改变的,也就是我们所讲解的变量。
Java中要求一个变量每次只能保存一个数据,必须要明确保存的数据类型。
Java是一种强类型语言,为不管是常量还是变量都必提供了具体的数据类型,来表示我们声明的常量或者变量是什么类型,怎么赋值。
Java的数据类型分为两大类:
整数
、浮点数
、字符
、布尔
。类
、数组
、接口
,枚举
,注解
。**说明:**后期学习过程中,除了8种基本数据类型外,都属于引用数据类型。
引用数据类型在前期可以不用做过多的了解,知道有这些就行了,因为用不上,到了后期会仔细和同学们讲。
Java中的默认类型:整数类型是
int
、浮点类型是double
。e+38表示是乘以10的38次方,同样,e-45表示乘以10的负45次方。
变量定义的格式包括三个要素:数据类型
、 变量名
、 数据值
。
格式:
// 声明变量并赋值
数据类型 变量名 = 数据值;
或者
// 先声明,后赋值(使用前赋值即可)
数据类型 变量名;
变量名 = 初始化值;
当然,如果一次要声明多个变量,且这多个变量类型一样时,也可以这样定义:
// 同时声明多个同类型的变量,中间用逗号分隔
数据类型 变量名1,变量名2;
数据类型 变量名1=值1,变量名2=值2;
注意:
- 变量名称:在同一个大括号范围内,变量名不可以重复。
- 变量赋值:定义的变量,不赋值不能使用。
Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。而这里的数据类型转换分为自动转换和强制转换两种。
一个int
类型变量和一个byte
类型变量进行加法运算, 结果会是什么数据类型?
public static void main(String[] args) {
int i = 1;
byte b = 2;
// byte x = b + i; // 报错
// int类型和byte类型运算,结果是int类型
int j = b + i;
System.out.println(j);
}
运算结果,变量的类型将是int
类型,这就是出现了数据类型的自动类型转换现象。
取值范围小的类型
自动提升为取值范围大的类型
。举个例子:将杯子里的水倒入池塘中,是可以的。
有自动类型转换就有强制类型转换,那什么是强制类型转换呢?
将1.5
赋值到int
类型变量会发生什么?产生编译失败,肯定无法赋值。
int i = 1.5; // 编译报错
double
类型内存8个字节,int
类型内存4个字节。1.5
是double
类型,取值范围大于int
。可以理解为double
是8升的水壶,int
是4升的水壶,不能把大水壶中的水直接放进小水壶去。
想要赋值成功,只有通过强制类型转换,将double
类型强制转换成int
类型才能赋值。
取值范围大的类型
强制转换成取值范围小的类型
。举个例子:
1.自动类型转换是将杯子里的水倒入池塘中,那么强制类型转换就是将池塘中的水倒入杯子中。
2.当然,池塘中的水也有可能是干枯的,或者是少的。可以装进杯子里,如果池塘的水比杯子多了。这就是强制类型转换的缺点,会发生精度的缺失(多的水会丢失)。
运算符&表达式
不同运算符连接的表达式体现的是不同类型的表达式。
举例说明:
根据具体功能以及运算符语法的不同,Java运算符分为几类:算数运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符、位运算符。
特别注意: ++与–运算符**
++
运算,变量自己增长1。反之,--
运算,变量自己减少1,用法与++
一致。
独立运算:
前++
和后++
没有区别 。前++
:例如 ++i
。后++
:例如 i++
。总结一下就是:
前++,前-- 先计算,再赋值;
后++ ,后-- 先赋值,再计算;
符号 | 作用 | 说明 |
---|---|---|
= |
赋值 | a=10,将10赋值给变量a |
+= |
加后赋值 | a+=b,将a+b的值给a a=a+b |
-= |
减后赋值 | a-=b,将a-b的值给a a=a-b |
*= |
乘后赋值 | a*=b,将a×b的值给a |
/= |
除后赋值 | a/=b,将a÷b的商给a a=a/b |
%= |
取余后赋值 | a%=b,将a÷b的余数给a a=a%b |
符号 | 说明 |
---|---|
== |
a==b,判断a和b的值是否相等,成立为true,不成立为false |
> |
a>b,判断a是否大于b,成立为true,不成立为false |
>= |
a>=b,判断a是否大于或者等于b,成立为true,不成立为false |
< |
a |
<= |
a<=b,判断a是否小于或者等于b,成立为true,不成立为false |
!= |
a!=b,判断a和b的值是否不相等,成立为true,不成立为false |
逻辑运算符把各个运算的关系表达式连接起来组成一个复杂的逻辑表达式,以判断程序中的表达式是否成立,判断
的结果是 true 或 false。
符号 | 作用 | 说明 |
---|---|---|
& | 逻辑与 | a&b,a和b都是true,结果为true,否则为false 并且关系 |
| | 逻辑或 | a|b,a和b都是false,结果为false,否则为true 或者关系 |
^ | 逻辑异或 | a^b,a和b结果不同为true,相同为false |
! | 逻辑非 | !a,结果和a的结果正好相反 |
&& | 短路与 | 1. 两边都是true,结果是true 2. 一边是false,结果是false 短路与特点:符号左边是false,右边不再运算 |
|| | 短路或 | 1. 两边都是false,结果是false 2. 一边是true,结果是true 短路或特点: 符号左边是true,右边不再运算 |
三元运算符也叫三目运算符。
数据类型 变量名 = 布尔类型表达式?结果1:结果2
符号 | 作用 | 说明 |
---|---|---|
& | 按位与 | 两数同位对比,有0则为0 |
| | 按位或 | 两数同位对比,有1则为1 |
^ | 按位异或 | 两数同位对比,不同为1,相同为0 |
~ | 按位取反 | 针对一个数,操作数的每一位都取反 |
<< | 按位左移 | 针对一个数,操作数的每位向左移动指定位数,最高位丢弃,尾部空位补0(相当于乘以2的n次方) |
>> | 按位右移 | 针对一个数,操作数的每位向右移动指定位数,头部空位补符号位数,移除部分丢弃 |
>>> | 无符号右移 | 针对一个数,操作数的每位向右移动指定位数,无论符号数头部都补0,移除部分丢弃 |
以上就是大致的说明,基本的介绍就到此为止,说的再多不如自己动手试一试!同学们在动手的时候遇到问题可以私信我哦,我们一起探讨!如有错误也请指出,谢谢。