Java基础笔记:Day_02 变量以及运算符

**

一、Java的数据类型


1.基本数据类型
基本数据类型一共包含八种,如下图:
Java基础笔记:Day_02 变量以及运算符_第1张图片
其中,不同数据的数据类型相关属性如下图所示:
Java基础笔记:Day_02 变量以及运算符_第2张图片
其中对于Boolean数据类型,通常用于逻辑运算和程序流程控制(条件选择/循环)。
该类型的值只能是true 或 false,表示真或假。
不可以使用0或非0的整数来代替false和true,区分于C语言。
(其实在JVM中对boolean的处理也是用0表示false,非0表示true的。)

false和true是boolean的常量。

2.其他的数据类型

除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。
引用数据类型默认初始值都是null。
String是一个类,表示字符串(后面详讲)。字符串都得使用 “” 括起来的,连接字符串使用 “+”符号。
字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型.

3.数据类型转换
数据类型转换包含了自动类型转换(隐式)和强制类型转换(显式)。
转换规则其实就是各自数据类型的空间大小,可以小类型转换为大类型,但是大类型不能转换为小类型。如图:Java基础笔记:Day_02 变量以及运算符_第3张图片

把不同的数据类型看出是不同容量的容器.
byte是1个字节,最多只能装1斤水.
short是2个字节,最多只能装2斤水.
但是强调:boolean 类型是不可以转换为其他数据类型
强制类型转换,也称为“显示类型转换”:
当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。
强制类型转换,可能造成溢出和精度损失。
但是假如:一个byte类型的变量index = 84,但是将它赋值给int类型的变量i后发现并没有进行强制类型转换时为什么呢?因为125在byte范围之内,底层偷偷的转换了。

二、关于运算符以及运算相关

1.数据类型的自动提升

当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升,其规则是:
所有的byte、short、char类型被自动提升到int类型;
整个表达式的最终结果类型被提升到表达式中类型最高的类型。
String和任意数据使用 + 连接起来,结果都是String(字符串)。

2.逻辑运算符
Java基础笔记:Day_02 变量以及运算符_第4张图片
&:A&B都为true = true;
&&:同上。但左数A是false,结果 一定为false,且不运行B的运算。
|:表示或者,A和B都为false结果result为false,只要有A或B是true,结果就是true。
||:同上。如果左边操作数A是true,result一定为true,且不运行B的运算。
^:判断A和B是否不同,不同则为true,相同则为false。
!:取反,!true结果是false,!fasle结果是true。

3.运算符优先级
Java基础笔记:Day_02 变量以及运算符_第5张图片
4.位运算
Java基础笔记:Day_02 变量以及运算符_第6张图片

你可能感兴趣的:(Java基础)