java基础 02 数据类型、运算符、分支结构

内容:
  (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)

猜你喜欢

转载自www.cnblogs.com/jungejava/p/9403884.html