第二章 Java基本语法(上):变量和运算符

关键字: 被Java语言赋予了特殊含义,用做专门用途的字符串。关键字中所有字母均为小写。
标识符:凡是可以自己起名的地方都叫标识符。
合法标识符的定义规则
    由26个英文字母大小写,0-9 ,_或 $ 组成
    数字不可以开头。
    不可以使用关键字和保留字,但能包含关键字和保留字。
    Java中严格区分大小写,长度无限制。
    标识符不能包含空格。
 
 
名称命名规范
  • 包名:多单词组成时所有字母都小写 xxxyyyzzz
  • 类名、接口名:多单词组成时,所有单词的首字母大写 XxxYyyZzz
  • 变量名、方法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写 xxxYyyZzz
  • 常量名:所有字母都大写。多单词时每个单词用下划线连接 XXX_YYY_ZZZ
 
取名的时候为了提高阅读性,尽量要有意义。
java采用unicode字符集
 
注意
    变量使用之前必须先定义(声明+赋值),否则编译不通过!
    变量只其作用域内有效,即只在其定义所在的一对"{ }”内 
    同一作用域内不允许定义重名的变量
 
 
数据类型
  • 数据类型来分:
    
 
  • 声明的位置来分:(讲完面向对象之后重点关注)
      
 
整数类型
byte (1字节=8bit) / short (2字节) / int (4字节) / long(8字节)
定义long型常/变量时必须以’l’ 或’L’结尾
通常,定义整型变量时,使用int型
 
浮点类型
float (4字节) / double(8字节)
float表示的数值范围比long还要大
原因在于整数类型的变量内存中放的是实实在在的数,浮点类型的变量内存中存放的是小数+10的多少次幂
定义float型常/变量时必须以’f’或’F’结尾
通常,定义浮点型变量时,使用double型
 
字符类型
char (2字节)
定义char型变量,通常使用一对 ' ',内部只能写一个字符,一个汉字、一个日文、字母都行
3种表现形式:1.声明一个字符    2.转义字符   3.直接使用Unicode值来表示字符型常量,e.g.'\u0043'
 
布尔类型
只允许取值true和false,无null
注:不可以使用0或非 0 的整数替代false和true,这点和C语言不同
 
字符串String类型
    String不是基本数据类型,属于引用数据类型
    声明String类型变量时,使用一对 “ "
    String可以和8种基本数据类型做运算,且只能是连接运算(+),运算结果仍为String
 
基本数据类型之间的运算规则
注:不包含boolean类型
1.自动类型提升
    当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
    特别的,byte、char、short之间(包括同类型)做运算时,结果均要转化为int型。
    byte 、char、short —> int —> long —> float —> double
    说明:这里的容量大小指的是,表示的数据范围的大小。比如4字节的float的容量大于8字节的long
2.强制类型转换
    自动类型转换的逆过程,将容量大的数据类型转化为容量小的数据类型。
    使用时需要加上强转符: (  )
    可能会造成精度损失和溢出,使用时要小心
    String不能通过( )来直接转换成基本数据类型,但通过基本类型对应的包装类可以 e.g. int i = Integer.parseInt("43")
    
 
进制

二进制的整数有三种形式:原码、反码、补码
正数的原码、反码、补码都一样,负数的补码是其反码+1
计算机以补码的形式保存所有整数
 
运算符
算术运算符
注:取模运算%,结果的符号与被模数的符号相同,也就是说模数的负号可以忽略不用管
       自加加或自减减不会改变变量本身的数据类型
 
赋值运算符
“ = "支持连续赋值
扩展赋值运算符: +=, -=, *=, /=, %=    也不会改变变量本身的数据类型
 
比较运算符

比较运算符的结果都是boolean型,也就是要么是true,要么是false。
 
逻辑运算符

用于连接布尔型表达式
“&”和“&&”的区别:
    两者运算结果相同
    当符号左边是true时,两者都会执行符号右边的运算
    当符号左边是false时,单&继续执行右边的运算,双&不再继续执行右边的运算,相当于被短路了。
“|”和“||”的区别同理,||表示:当左边为真,右边不参与运算。
注:开发中推荐使用“&&”和“||”
 
位运算符
    位运算符操作的都是整型的数据
    <<:在一定范围内,每左移1位相当于 * 2
    >>:在一定范围内,每右移1位相当于 / 2
 
三元运算符
    三元运算符可以嵌套使用  e.g.   String res = ( m > n ) ? “m大” : ( ( m == n )? “一样大” : ”n大” )
    凡可以使用三元运算符的地方,均可以改写成if-else语句,反之不成立
    当三元运算符和if-else结构均可以使用的时候,建议优先选择三元运算符,原因:简洁、执行效率高
    
 
 
 
 
 
 
posted @ 2021-07-06 23:46  deeojunkie  阅读(84)  评论(0编辑  收藏  举报