目录
代码块的运行顺序
JAVA运算符
一些位运算符中的收获
学会尝试阅读文档
条件语句
循环结构
首先写下代码块运行的顺序:
静态代码块>main方法>非静态代码块>构造方法(类被实例化的时候才会调用)
静态代码块在编译时就以及被分配了内存空间加载;因此是最先运行;
main方法是java程序的入口,因此执行时会从main开始运行;
接着时运行非静态代码块;
最后是实例化对象调用的构造方法;
子类父类的代码块调用顺序
设计代码,子类和父类,在子类中调用子类的实例化对象;
运行顺序:
父类静态代码块
子类静态代码块
父类非静态代码块
父类构造方法
子类非静态代码块
子类构造方法
使用javap命令(参数-v);可以看见Object最先被加载,可以证明是先运行父类;
算术运算符 位运算符 逻辑运算符 关系运算符
算术运算符:+,-,*,/,%,++,--
位运算符:&,|,^,~,<<,>>,>>>
逻辑运算符:&&,||,!
关系运算符:==,!=,>,<,>=,<=
i++与++i:i++先执行表达式再自加。++i先自加再执行表达式。自减规律亦然
逻辑运算符和关系运算符得到的都是布尔值;
在runoob上的例子整型A是60,通过位运算左移二位得到240,即1111 0000;
通过强制类型转换成byte类型(先声明byte类型进行左移二位是无效的,输出结果仍然是240)得到的结果是-16
疑惑:低8位是1111 0000。正常来讲这个数值表示的是-112,但是输出结果却是-16
解决:计算机中存储的都是补码而不是源码,因此强制类型转换后低8位是1111 0000。
符号位是负数,并且1111 0000是补码,按照补码转源码
源码应该是 1001 0000
所以输出的是-16
通过uTools下载JDK1.8文档,以SimpleDateFormat为例子来学习如何阅读文档;
if(条件表达式){}
if(条件表达式){}else{}
if(条件表达式){}else if (条件表达式){}.....else{}
while(条件表达式){循环体};
while语句中,条件表达式为true就会一直执行循环体,直到条件表达式为flase;
do{循环体}while(布尔表达式)
do..while语句中,循环体至少被执行一次;
for(初始化;条件表达式;循环体B){循环体A}
for循环顺序:
初始化→条件表达式→循环体A→循环体B→条件表达式→循环体A→...;
三者都可以使停止当前的循环体
不同之处在于:
continue跳过当前循环,执行下一次循环;
break跳出当前循环,循环不再执行,代码从循环体之后执行;
return直接结束当前方法,如果在main函数中,则程序直接结束;
1.设计一个程序,输入一个四位数,输出四位数数字相加之和;(算术运算符练习)
2.设计一个程序,输入一个整数。将这个整数转化为8位二进制数(-128~127),超过规定范围则取模使整数在范围之类;
1代码:
2代码: