一.补码:

正数的补码与原码相同;若补码符号位为0,则原码就是其本身
9=01001,[9]补=01001
负数为的补码取反再加一;若已知补码求原码,则补码的补码就是原码
-9=11001,[9]补=10111

二.位运算

"<<"左移2,空位用0补齐;
">>"右移2,空位用符号位补齐;
">>>"右移3,空位用0补齐;
其余运算符均是整数按照二进制,每一位单独运算。

三.拓展后的赋值运算符

除了已知的那些,还有:%=,&=,|=,^=,<<=,>>=,>>>=
位运算的赋值运算

四.短路的含义

&&,||是短路运算符,短路指的是:若&&左边为false,则不运算右边;若||左边为true,则不运算右边。
&,|,左右两边表达式都会计算

五.增强for循环

增强for循环可以用在数组或者集合里面:
假设a[]是一个int类型的数组,则可以这样来循环
for(int i:a){
//对数组元素的操作,i即是数组中元素的名字(形参)
}

六.对象和引用变量

假如我有一个Student的对象

Student student1;//创建引用变量,在栈中,指向对象
student1 = new Student();//在堆中分配空间,并把地址传给student1

引用变量实际上就是指针
以数组为例:来自疯狂java讲义
若堆中的数组没有引用变量指向它,则会被当做垃圾处理。
如果两个数组a,b,有“b=a”的语句,运行后b和a指向同一块数组。