《Java语言程序设计》学习笔记(3.2)

表达式与语句

变量
变量及其作用域

​ 局部变量:在一对{}表示的代码块中定义的变量(也叫自动变量、临时变量)。其作用域是所在的方法或代码块,当程序执行流进入该部分时创建,退出时消亡。

​ 类成员变量:在方法外声明且属于一个类的变量。作用域是整个类。类成员变量有两种,一种是用static关键字声明的,此时只要所属的类存在它就一直存在;还有一种是没有static关键字的,这种变量叫做实例变量,它在调用方法new XXX()创建实例时创建,只要有引用指向变量所属对象它就一直存在。

​ 方法参数:方法调用时传递的参数。作用域是所在的方法。

​ 异常处理器参数:catch语句块的入口参数,作用域是catch后面一对{}表示的代码块。

变量的初始化
变量类型初始值
byte(位)0
short(短整数)0
int(整数)0
long(长整数)0L
float(单精度)0.0F
double(双精度)0.0D
char(字符)‘\u0000’
booleanflase
所有引用型null

​ 类成员变量是系统自动初始化,而局部变量需要手工赋初值进行初始化,否则就会出现编译错误。

​ 局部变量的初始化:

public class TestInit{
    int x;		//类成员变量
    public static void main(String[] args) {
        TestInit init = new TestInit();		//引用变量实例化
        int x = (int)(Math.random() * 100);		//局部变量
        int z;
        int y = 0;		//y在此处如果不手工赋值后面使用到时将会有编译错误
        if(x > 50){
            y = 9;
        }
        z = x + y + init.x;
        System.out.println("x=" + x + " y=" + y + " z=" + z);
    }
}
/*
结果:
x=19 y=0 z=19
*/
运算符和表达式
算数运算符和算术表达式

​ ±× / % 分别对应 加 减 乘 除 取模。还有++ --对应自加和自减。

​ 不同类型的数据混合运算时的转换优先级从低到高依次是:byte、short、char、int、long、float、double。

​ Java的算数运算和C有几点不同:

	1. 取模运算符的操作数可以是浮点数;
	2. +可以用来连接字符串;
	3. 即便两个操作数全是byte或short,结果依然会是int;
	4. Java里没有幂运算符,所以需要进行幂运算的时候要调用Java.lang.Math类的pow()方法(Math.pow(a,ba)),其定义是:`public static double pow(double a,double b)`。返回a的b次方。
关系运算符和关系表达式

​ > < >= <= == != 对应的含义与C一样。

​ 与C不同的是,Java中任何类型的数据(包括基本数据类型和复合类型)都可以用==或!=来比较是否相等。

逻辑运算符和逻辑表达式

​ & | !分别对应不短路的与、或和非。

​ && 称为短路与,先求左边的值,只有当左边的值为true时才继续求右边的值。

​ || 称为短路或,先求左边的值,只有当左边的值为false时才继续求右边的值。

​ ^ 异或运算,当左右两边真假相同时为true,否则为false。

位运算符

​ 位逻辑运算符:& | ^ ~ 分别对应 按位与 按位或 按位异或 按位取反。

​ 移位运算符:Java使用补码来表示二进制数。补码中最高位为符号位,正数为0,负数为1。对正数来说,最高位为0,其余位代表数值本身;对负数来说,其补码该数绝对值的补码按位取反再加1;0的补码唯一,是00000000。

​ a>>b 把a向右移动b位,最高位填充以原来的最高位。(不是原来的最低位,这种叫带符号的移动)

​ a<<b 把a向左移动b位,最高位填充以原来的最高位。

​ a>>>b 把a向左移动b位,最高位用0填充。(无符号移动)

赋值运算符和赋值表达式

​ a+=b 等价于 a=a+b

​ 其余的都是这个原理,可以此类推。

其他运算符

​ a?b:c a为true时返回b,否则返回c。

​ [ ] 声明数组,括号里可加元素数。

​ . 引用对象的成员。

​ ( ) 方法调用

​ (type) 强制类型转换

​ new 创建对象或数组。(实例化时使用)

​ a instanceof b 如果a是b的实例,返回true,否则返回false。

优先级
优先级运算符简介结合性
1[ ].( )方法调用,属性获取从左向右
2!、~、 ++、 –一元运算符从右向左
3* 、/ 、%乘、除、取模(余数)从左向右
4+ 、 -加减法从左向右
5<<、 >>、 >>>左位移、右位移、无符号右移从左向右
6< 、<= 、>、 >=、 instanceof小于、小于等于、大于、大于等于, 对象类型判断是否属于同类型从左向右
7== 、!=2个值是否相等,2个值是否不等于。 下面有详细的解释从左向右
8&按位与从左向右
9^按位异或从左向右
10|按位或从左向右
11&&短路与从左向右
12||短路或从左向右
13?:条件运算符从右向左
14=、 += 、-= 、*= 、/=、 %=、 &=、 |=、 ^=、 <、<= 、>、>= 、>>=混合赋值运算符从右向左
强制类型转换

​ 用(type)expression的形式进行强制类型的转换。基本类型和数组或对象等引用型变量之间不能互相转换。

语句
  1. 表达式语句:如赋值语句、增量语句、方法调用语句和对象创建语句。
  2. 声明语句:声明变量或方法,如int a = 0
  3. 程序控制流语句:由{}括起来的语句,可以出现在任何单个语句可以出现的位置,如for循环和if循环语句。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值