int在计算机中占用4个字节及32位,最高一位为符号位,当表示正数时,最高位为符号位(符号位为0),最大的正数是 0111 1111 1111 1111 1111 1111 1111 1111 即2^31 -1 = 2147483647,当表示负数时,最高位为符号位(符号位为1),最小的负数是 1000 0000 0000 0000 0000 0000 0000 0000 而在计算机中是以补码的形式存储的。所以int的取值范围为:-2147483648 ~ 2147483647
short型占用两个字节及16位。
byte型占用一个字节及8位,其中最高位是符号位,最大值为127,最小值为-128。
long为长整形占用8个字节,表示的范围最广。给long整形变量赋值时要给整数后加上L,在Java中整数会默认为int型,int占用4个字节而long需要8个字节,如果输入的整数大于4个字节的话会发生溢出,编译器就会报错。所以给long类型的变量赋值的时候要给整数后加上L开辟内存空间。
float占用4个字节和int型一样,但是float有整数部和小数部,所以的运算等级比int低。
double类型占用8个字节,表示精度最高的。输入的浮点数会默认为double类型,所以想声明为float类型的要给小数后面加F。
char型变量占用2个字节,但是在底层实现的时候由于编码格式的不同解析出来的可能占用3个字节,有时会是4个字节。(UTF-8:3个字节统一编码,GB:国家标准编码,编码方式)
一个boolean变量占用4个字节,因为C语言中没有boolean类型它使用整型0或!0来表示ture或false的,而Java是由C写的所以一个boolean变量占用4个字节(其实就是用一个int的存储空间来存储),而一个boolean类型的数组,其中的一个数组变量占用一个字节,节约空间。
局部变量没有赋值前不能调用,因为内存给方法开辟的是一片临时空间,而方法中分配内存空间是一条语句一条语句分配的,所以未给局域变量分配内存空间。
成员变量没有赋值前可以使用,因为要使用成员变量时首先要创建一个对象,由对象调用成员变量,在定义一个对象的时候内存就会给对象开辟一片内存空间。所以成员变量也会分配到内存空间,若没有赋值,调用成员变量时其值为0。
b++不开辟内存空间(在原有的内存空间上+1),b = b + 1重新开辟内存空间(开辟一片新的内存空间,将b的值复制过来再+1)
位运算符:<<,>>,&,|,^(异或,相同为0,不同为1)结果是数(常用在图形处理 H.264)
短路与:&&(如果某一条件为假直接跳出循环不执行后面的语句)短路或:||(如果某一条件为真直接跳出循环不执行后面的语句)
例:
&&短路与:
&按位与:
两者的结果为: