java学习(四)修饰符、运算符、循环结构、分支结构
修饰符
一般是放在定义类,方法,变量的最前端
访问控制修饰符
修饰符 | 当前类 | 同一包内 | 子孙类 | 其他包 |
---|---|---|---|---|
public |
Y | Y | Y | Y |
protected |
Y | Y | Y | N |
default |
Y | Y | N | N |
private |
Y | N | N | N |
感觉这个表格挺清晰的,至少我一眼就懂了
若是不加修饰符,貌似是默认public
非访问控制修饰符
static 修饰符,用来创建类方法和类变量。
(静态变量的话,就是说无论被实例化多少次,静态变量只拷贝一次,而且不变
静态方法的话,不能使用类的非静态变量,而且不用new就可以调用该方法)
final 修饰符,用来修饰类、方法和变量,final 修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。
abstract 修饰符,用来创建抽象类和抽象方法。
(不是很懂抽象类,就四处问了问,最后得出个浅显易懂,但是估计理解还有些偏差的解释:一个父类,我有很多子类,有同一个方法,但是每个子类的处理不同,所以就在父类里面定义个抽象的,相当于只是定了个名字,怎么处理,每个子类看着办)
synchronized 和 volatile 修饰符,主要用于线程的编程。
运算符
感觉跟其他语言没什么区别啊,记录几个接触少的
位运算符
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的位上,并且按位运算。假设a = 60,b = 13;它们的二进制格式表示将如下:
A = 0011 1100 B = 0000 1101 ----------------- A&b = 0000 1100 A | B = 0011 1101 A ^ B = 0011 0001 ~A= 1100 0011
操作符 | 描述 | 例子 |
---|---|---|
& | 如果相对应位都是1,则结果为1,否则为0 | (A&B),得到12,即0000 1100 |
| | 如果相对应位都是0,则结果为0,否则为1 | (A | B)得到61,即 0011 1101 |
^ | 如果相对应位值相同,则结果为0,否则为1 | (A ^ B)得到49,即 0011 0001 |
〜 | 按位补运算符翻转操作数的每一位,即0变成1,1变成0。 | (〜A)得到-61,即1100 0011 |
<< | 按位左移运算符。左操作数按位左移右操作数指定的位数。 | A << 2得到240,即 1111 0000 |
>> | 按位右移运算符。左操作数按位右移右操作数指定的位数。 | A >> 2得到15即 1111 |
>>> | 按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 | A>>>2得到15即0000 1 |
可能是做的项目有限,位运算符这种没怎么遇到过
循环结构
while,do...while,for
感觉每个语言都一样,没啥特别的,不多说
分支结构
if,switch
同上,跟javascript没太大区别