JAVA基础(三)------变量和运算符

来源:互联网 发布:拿破仑为什么称帝知乎 编辑:程序博客网 时间:2024/06/05 06:32
  • 标识符:Java中的包、类、方法、参数和变量的名称
  • 关键字/保留字(红色为保留字)
     
  • Java标识符命名规范
    • 必须以字母、下划线(_)或美元符号($)开头
    • 余下的字符可以是下划线、美元符号或任何的字母或数字,长度不限
    • 标识符中不能有空格
    • 不能使用Java中的关键字或保留字作为标识符
       
  • 数据类型及分类
    • 分类
          
    • 整数类型:byteshortintlong
      • Java各整数类型有固定的表数范围和字段长度,其不受操作系统的影响,以保证Java程序的可移植性
                
      • Java语言的整型常量默认为int型
      • 声明long型后面需加上l或L,否则会出错(建议加L
      • Java中整型的三种表示形式:
        • 十进制数:0~9,第一位不能是0
        • 十六进制数:0~9、A~F,必须以0x或0X开头
        • 八进制数:0~7,必须以0开头
    • 浮点数类型:floatdouble
      • Java浮点数类型有固定的表数范围和字段长度,不受平台影响
              
      • Java浮点数类型有两种表示形式:
        • 十进制数形式
        • 科学记数法形式
      • Java浮点型常量默认为double型,如果要声明一个常量为float型,则需在数字后面加f或F
    • 字符类型:char
      • 单个字符用char类型表示,通常取值为:英文字母、数字、转义字符、特殊字符等
      • Java中的字符占两个字节,可以用十六进制编码形式表示
      • Java中的字符类型的值通常用单引号括起来
      • 字符类型是一个16位无符号整数所以char型可以隐式转换为int型
      • 转义字符
               
    • 布尔类型:boolean
      • 适用于逻辑运算,一般用于程序流程控制
      • boolean类型有两个值:truefalse
  • 常量:程序里持续不变的值,在整个程序运行过程中它是不可改变的
  • 变量:程序中代表某个值的一个符号
    • 变量代表内存中值的保存空间
    • Java中任何变量都有一种类型,类型不同决定开辟内存空间大小的不同
    • 变量不是在整段代码中都可以使用,变量有自己的作用域
      • 变量的作用域从声明变量的地方开始,到所在块结束
      • 离开变量的作用域,变量所代表的内存空间将被回收
    • 根据变量的作用域划分变量:
      • 类变量:用static修饰的成员变量,它们在类被载入时创建,只要类存在,static变量就存在
      • 成员变量:类体中声明的变量,也称为全局变量,在类的整个生命周期中都有效
      • 局部变量:方法体中声明的变量、方法中的参数或代码块中声明的变量都是局部变量,只在方法调用的过程中有效,方法调用结束后失效
           
    • Java是强类型语言,所以Java中的变量:
      • 必须声明并且初始化以后才能使用
      • 必须有明确的类型
      • 在同一作用域内不能重复定义
public class VarDemo{
     public static void main(String[] args){
          int age;//变量的声明
          //System.out.println(age);//错,变量没有初始化
          age = 12;//变量初始化,即变量的第一次赋值
          System.out.println(age);//12
          age = 15;//变量赋值
          System.out.println(age);//15
          //System.out.println(length);//错,变量没有被声明
          int length = 20;//声明变量并且直接初始化
          System.out.println(length);//20
          if(age<14){
               int rank = 15;//声明局部变量
               System.out.println(rank);//15
          }
          //System.out.println(rank);//错,超出作用域调用变量
          int rank = 18;//不同块内可以重新定义变量
          System.out.println(rank);
          //int age = 8;//错,相同块内重复定义变量
     }
}
    • 变量初始化的顺序:
      1. 隐式赋予默认值
      2. 显式赋予初始值
      3. 通过构造器体赋予新值
  • 数据类型的转换规则
    • 隐式类型转换:
      • 多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后进行计算
      • 转换规则:
        1. boolean类型不可以转换为其他的数据类型
        2. 整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵守以下原则
                     
    • 显示类型转换
      • 容量大的数据类型转换为容量小的数据类型时,需要使用强制类型转换
      • 语法:变量 = (目标类型) 值
      • 在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出(建议尽量不用显示类型转换
  • 算术运算符:+、-、*、/、%、++,--
    • ++i:i在参与其他操作前先将自己加1
    • i++:先用i原来的值参与其他操作后,再将自己加1
int a=1;
int b=1;
b=a++;//1
/* a++表达式的值是1
 * 执行赋值运算,将表达式的值1赋值给b,即b=1
 * 执行a++,即a=a+1
 */
int i=1;
int
    • +:
      • 在两个数值之间表示加法运算
      • 当操作数中只要有一个是String类型,系统会自动将另一个操作数转换成字符串类型,然后进行连接
    • 运算规则:
      1. 同种类型参与运算(必要时自动转换)
      2. 返回同种类型(可能发生:上溢出和下溢出)
      3. 整数除法是整除
      4. byte、short、char按照int运算
    • int i=0;y=i++%5;是周期函数
  • 赋值运算符:=、+=、-=、*=、/=、%=
  • 关系运算符:>、<、>=、<=、==、!=、instanceof
  • 逻辑运算符:&&、||、!
    • 逻辑运算符两端的操作数必须是布尔类型的值
    • &&具有短路性,即左面的表达式为false,则将不会计算其右边的表达式
    • ||具有短路性,即左面的表达式为true,则将不会计算其右边的表达式
int i=1;
boolean b= i!=1 && (i++)==2;//短路与,i++不执行
System.out.println(b);//false
System.out.println(i);//1
b= i!=1 & (i++)==2;//非短路运算,i++执行
System.out.println(b);//false
System.out.println(i);//2
  • 位运算符:&、|、^、~、>>、<<、>>>
    • 按位与(或)既可以参与位运算,又可以参与逻辑运算
    • 左移和右移运算相当于实现整数乘以或除以2的n次方
  • 三元运算符:? :
    • 对三个表达式进行的集中比较,表达式1的结果为true时,就为第二个表达式,如果为false时,就为第三个表达式
    • 语法:表达式1?表达式2:表达式3
//4<3表达式的结果为true和false中的一个
boolean n = (4<3) ? true : false;
//打印并显示结果
System.out.println(n);
  • 运算符的优先级
    • 一元操作符>二元操作符>三元操作符
    • 算术运算符>关系运算符>逻辑运算符>赋值运算符
    • 括号优先级别最高
         
  • 表达式
    • 符合一定语法规则的运算符和运算数的序列
    • 对表达式中操作数进行运算得到的结果称为表达式的值
    • 表达式值得数据类型即为表达式的类型
    • 运算顺序:
      • 按照运算符的优先级从高到低的顺序进行
      • 优先级相同的运算符按照事先约定的结合方向进行
1 0
原创粉丝点击