1.运算符——java常见运算符
1.所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能是其他值。
2.使用短路与 && 的时候,当左边的表达式为false的时候,右边的表达式不执行 使用短路或 || 的时候当左边的表达式结果是true的时候,右边的表达式不执行 逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型。
3.使用扩展赋值运算符的时候,永远都不会改变运算结果类型。
int m = 10;
m += 10; 类似于 m = m + 1;------->注意是类似!!!!
实际不同:
i = i + 10; 和 i += 10;一样吗?
byte i = 10;
i += 10;----->没报错
其实 x += 1 等同于:x = (byte)(x + 1);
i = i + 10;---->错误: 不兼容的类型: 从int转换到byte可能会有损失
编译器检测到x + 1是int类型,int类型不可以直接赋值给byte类型的变量x!
详见Java类型转换的时候需要遵循的规则
i += 190; // i = (byte)(i + 190);
System.out.println(i); // 44 (当然会自动损失精度了。)
2.异常
不管执不执行catch,一定执行finally
异常
3.内存的存储区域
4.声明
访问修饰限定符
在Java编程语言中有四种权限访问控制符,这四种访问权限的控制符能够控制类中成员的可见性。
一、public
(1)定义:public是公共的,被public所修饰的成员可以在任何类中都能被访问到。
(2)修饰的成分:
public能用来修饰类,在一个java源文件中只能有一个类被声明为public,而且一旦有一个类为public,那这个java源文件的文件名就必须要和这个被public所修饰的类的类名相同,否则编译不能通过。说到这里,穿插多一点知识。一个类作为外部类的时候只能被public或者默认访问修饰符所修饰,但是一个类如果作为内部类的时候,则可以被四种访问修饰符所修饰,因为一个类作为内部类的时候,就作为外部类的一个成员属性了,因此可以有四种访问修饰符修饰,这是内部类和外部类的一个区别。
public用来修饰类中成员(变量和方法),被public所修饰的成员可以在任何类中都能被访问到。通过操作该类的对象能随意访问public成员。
public在类的继承上的体现,被public所修饰的成员能被所有的子类继承下来。
二、protected
(1)定义:protected是受保护的,受到该类所在的包所保护。
(2)作用域:被protected所修饰的成员会被位于同一package中的所有类访问到。同时,被protected所修饰的成员也能被该类的所有子类继承下来。(注意:这里是指同一个package或者不同的package中的子类都能访问)
三、friendly(默认,缺省的)
(1)定义:friendly是友好的,即在成员的前面不写任何的访问修饰符的时候,默认就是友好的。所谓友好的,是对同一package的类友好。
(2)作用域:同一package中的所有类都能访问。被friendly所修饰的成员只能被该类所在同一个package中的子类所继承下来。(也就是说只有在同一个package中的子类才能访问到父类中friendly修饰的成员)
四、private
(1)定义:private是私有的,即只能在当前类中被访问到,它的作用域最小。
下面用一个表格说明四个访问控制符的作用域:
作用域 当前类 同一package 子孙类 其他package的类
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
default常用于接口中,从它的中文意思行来看,大概能猜个差不多,我们本来写Java接口的时候,是不能有方法体的函数,就类似于C++中的虚函数,default关键字在接口中修饰方法时,方法可以有方法体