大白成为Java软件攻城狮的第六天(浮点型、布尔型、类型转换、算数运算符、关系运算符、逻辑运算符)

数据类型

1、浮点型

float 单精度【4个字节】
double 双精度【8个字节,精度较高】

在Java语言当中,所有的浮点字面值【3.0】,默认被当做double类型来处理。
要想该字面值当做float类型来处理,需要在字面值后面添加F/f

注意:
double和float在计算机内部二进制存储的时候存储的都是近似值。
在现实世界当中有一些数字是无限循环的,列如:3.3333333…
计算机资源是有限的,用有限的资源存储无限的数据只能存储近似值。

2、布尔型

关于布尔型数据类型:boolean

在Java语言当中boolean类型只有两个值:true、false,没有其他值。
不像C语言当中,0和1可以表示假和真。

在底层存储的时候boolean类型占用1个字节,因为实际存储的时候false底层是0,true底层是1.

布尔类型在实际开发当中非常需要,经常使用逻辑运算条件控制语句当中。

3、类型转换

关于基本数据类型之间的互相转换:

转换规则:

1 八种基本数据类型当中除布尔类型之外剩下的7种类型之间都可以互相转换。

2 小容量向大容量转换,称为自动类型转换,容量从小到大排序:
byte < short ,char < int < long < float < double
注: 任何浮点类型不管占用多少个字节,都比整数型容量大。
char 和 short可表示的种类数量相同,但是char可以取更大的正整数 。

扫描二维码关注公众号,回复: 12303304 查看本文章

3 大容量转换成小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。

4 当整数字面值没有超出byte,short,char的取值范围,可以直接赋值给byte,short,char类型的变量。

5 byte,short,char混合运算的时候,各自先转换成int类型再做运算。

6 多种数据类型混合运算,先转换成容量最大的那种类型再做运算。

运算符

4、算数运算符

关于Java编程中的运算符之:算数运算符

+ 求和
- 相减
* 乘积
/
% 取余数【取模】
++ 自加1
- - 自减1

小结:++运算符可以出现在变量前,也可以出现在变量后,,无论是变量前还是变量后只要++运算结束,该变量中的值一定会自加1

++a:先自增1,在进行运算。
a++:先运算,再自增1。

5、关系运算符

> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于
!= 不等于

= 是赋值运算符;
== 是关系运算符;
关系运算符的结果一定是布尔类型。

public class OperatorTest
{
    
    
	public static void main(String[] args){
    
    
		int a=10;
		int b=10;

		System.out.println(a>b); //false
		System.out.println(a>=b); //ture
		System.out.println(a<b); //false
		System.out.println(a<=b); //true
		System.out.println(a==b); //true
		System.out.println(a!=b); //false
	}
}

6、逻辑运算符

逻辑运算符 解释
& 逻辑与 (两边的算子都是true,结果才是true)
逻辑非(取反,!false就是true,!true就是假,这是一个单目运算符)
^ 逻辑异或(两边的算子只要不一样,结果就是true)
&& 短路与(第一个表达式执行结果是false,会发生短路与)

| 逻辑或(两边的算子只要有一个是true,结果就是true)
|| 短路或(第一个表达式执行结果是true,会发生短路或)

1 逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型。

2 短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象。
3 短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象。

** 逻辑与和短路与的区别** 
public class Test01
{
    
    
	public static void main(String[] args){
    
    
		int x=10;
		int y=8;
		System.out.println(x < y& ++x < y); //进行了++x的操作
		System.out.println(x); //x=11
	}
}

public class Test02
{
    
    
	public static void main(String[] args){
    
    
		int x=10;
		int y=8
		System.out.println(x < y& ++x < y); //因为x<y是false,直接短路,后面的操作就不在执行
		System.out.println(x); //x=10
		}
}

从某个角度来看,短路与更智能。由于后面的表达式可能不执行,所以执行效率较高。这种方式在实际开发中使用较多。短路与比逻辑与使用的多。短路与更常用。

但是,在某些特殊的逻辑业务中,要求运算符两边的算子必须全部执行,此时必须使用逻辑与,不能使用短路与,使用短路与可能导致右边的表达式不执行。

猜你喜欢

转载自blog.csdn.net/qq2632246528/article/details/112465397