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没太大区别

上一篇:Java学习笔记--注解和反射


下一篇:快速幂:quickpow