大白成为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可以取更大的正整数 。

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
		}
}

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

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值