内容:
(1)数据类型
(2)运算符
(3)分支结构
1.数据类型
java语言中的基本数据类型:byte、short、int、long、float、double、boolean、char。
1.1布尔类型
在java语言中描述真假信息的类型有:boolean。
该类型变量的数值只有两种:true(真)、false(假)。
该类型在内存空间中的大小没有明确定义,通常认为是1个字节。
1.2字符类型
在java语言中用于描述单个字符的数据类型有:char 如:‘a‘、‘b‘。
其中char类型在内存空间中占2个字节大小,并且没有符号,因此范围是65535。
该类型在以后的开发中很少使用,使用更多的是由多个字符组成的字符串,在java语言中用Sting类型来描述。
对于字符‘a‘这样的图案无法存储到计算机中,因为计算机的底层只能识别0和1组成的二进制序列,
如果需要将‘a‘储存起来则需要给该图案指定一个编号,将编号记录到计算机中,这种编号就叫做ASCII。
常用的ASCII有:
‘A‘ - 65 ‘a‘ - 97 ‘0‘ - 48 空格 - 32 换行符 - 10
转义字符:
\" 代表 " \‘ 代表 ‘ \\ 代表 \ \n 代表 换行符 \t 代表 制表符
1.3 基本数据类型之间的转换
在Java语言中基本数据类型之间的转换方式有两种:
自动类型转换:从小类型到大类型之间的转换
强制类型转换:从大类型到小类型之间的转换
语法格式: 目标类型 变量名 = (目标类型)源类型变量名 (不建议使用强制类型转换,可能会有损失)
2.运算符
2.1 算术运算符
+ 表示加法运算符 - 表示减法运算符 * 表示乘法运算符
/ 表示除法运算符 % 表示取模/取余运算符
注意:
(1)在java语言中两个整数相除的结果只取整数部分,丢弃小数部分。
(2)如果希望计算结果保留小数部分,则需要进行如下处理:
(a)让其中一个操作数强制转换为double类型即可。
(b)让其中一个操作数乘以1.0提升到double类型再运算即可。(推荐使用此方法)
(3)在java中0不能做除数,但是0.0可以做除数,结果是无穷。
(4)+既可以当做算数运算符,也可以作为字符串连接符,具体区分方式如下:
当+两边的操作数中只要有一个是字符串类型时,则按照字符串连接符对待。
2.2 关系/比较运算符
> 表示是否大于运算符 > = 表示是否大于等于运算符 < 表示是否小于运算符
<= 表示是否小于等于运算符 == 表示是否等于运算符 != 表示是否不等于运算符
所有关系运算符作为最终运算的表达式结果一定是boolean类型。
2.3 自增减运算符
+ 表示加法运算符 ++表示自增运算符 让变量自身的数值加1,覆盖原来的数值。
- 表示减法运算符 - -表示自减运算符 让变量自身的数值减1,覆盖原来的数值。
注意:
(a)对于单个变量来说,++放在变量名的前面或后面带来的结果都是让变量自身+1的效果。
(b)对于表达式来说, ++a 表示先让a自身的数值+1,然后再作为表达式的结果。
a++ 表示先让a作为表达式的结果,然后再让啊自身的数值+1。
- -a 表示先让a自身的数值-1,然后再作为表达式的结果。
a- - 表示先让a作为表达式的结果,然后再让啊自身的数值-1。
2.4 逻辑运算符
&& 表示逻辑与运算符,相当于并且,同真为真,一假为假。
|| 表示逻辑或运算符,相当于或者,一真为真,同假为假。
! 表示逻辑非运算符,相当于取反,真为假,假为真。
2.4.1 & 和 && 的区别
&运算符有两种用法:(1)按位与;(2)逻辑与。
&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true。
&&之所以称为短路运算是因为,如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。
很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应当写为 username != null &&!username.equals(""),二者的顺序不能交换,
更不能用&运算符,因为第一个条件如果不成立,根本不能进行字符串的 equals 比较,否则会产生 NullPointerException 异常。
注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。
短路特性:
对于逻辑与来说,若第一个操作数的结果为假,则整个表达式的结果一定为假,此时跳过第二个操作数的判断。
对于逻辑或来说,若第一个操作数的结果为真,则整个表达式的结果一定为真,此时跳过第二个操作数的判断。
2.5 三目/条件运算符
条件表达式?表达式1:表达式2
(判断条件表达式是否成立,若成立执行表达式1,否则执行表达式2)
原文地址:https://www.cnblogs.com/jungejava/p/9403884.html