1.存储原理
文本文件 给人看的,也叫源文件
二进制文件 给电脑看的,01010100
1 )数据要运算 必须先存储
2 )存储方式
内存 : 两端无限延伸的线
硬盘 : 螺旋线
3) 存储单位
bit : 比特,一个比特就是一个电子位,统称位
byte : 字节 = 8bit
short : 短整型 = 16bit
int : 整型 = 32bit
long : 长整型 = 64bit
为了表示负数,最高位作为符号位,1表示负数 , 0表示正数
负数 存储补码
反码就是原码取反,1就是0,0就是1,符号位不变
反码+1 就是补码
-128 ~ 127
-2^(n-1) ~ 2^(n-1)-1
2.基本数据类型分为:数值型、字符型(char)、布尔型(boolean)
其中数值型又分为整数类型和浮点类型
3。char类型中还需掌握的是转义符的概念比如在字符中想出现单引号这类字符时需加上转义符“\”来实现还有换行\n、\r、制表符\t等
4.在静态/成员变量中整型初值为0 浮点型为0.0 字符型为\u0000 布尔型为false 引用型为null
5.常量在整个生命周期中值不可改 或final声明的变量值不可更改
6.变量:有名字的内存空间,值可变
7.全局变量:允许在类之外创建变量,和类同级别,所有类都可以访问这个变量,不需要二次引用
二次引用:就是没有使用.这个操作符(xxx.age)
java不允许这个变量创建在类之外但是可以将一个变量设置为public,那么其他类都可以使用这个变量,但使用时需用.
全局变量缺点:安全性差,容易出现命名冲突
8.变量分为:成员变量、静态变量、局部变量
9.变量的调用
10.变量的同名问题
11.优先级:局部变量优先级最高
12.算术运算符
13.位运算符
14.位运算扩展
* ~ : 按位非, 比如 0 的二进制 00000000 , ~0之后 ,就是 11111111 这是补码, 11111110 这是反码, 10000001 这是原码
* >> : 右移运算(考虑符号位,就是再怎么移位,符号位不受影响)
* 8 >> 2 = 2
* 8 的二进制为 0000 1000,右移两次, 就删除最右边两位,并再最左边补两个0(符号位之后)
* 8 >> n = 8 / 2^n
* 如果是负数 就补1 , 正数 补0
* -8 : 1000 1000 1111 0111 1111 1000
* -8 >> 1 : 1111 1100
* 1111 1011 1000 0100
* -8 >> 2 : 111111 10 1111 1101 1000 0010
* -8 >> 4 : 1111 1111 1111 1110 1000 0001
* 负数 右移之后 最小值 也是-1 , 正数 右移之后 最小值是 0
* 右移 1次 就等于 / 2
* << : 左移运算(考虑符号位,就是再怎么移位,符号位不受影响)
* 删左边,补右边补0
* 2 << 2 : 0 0 001000 = 8
* -2 << 2 : 1111 1000 1111 0111 1000 1000
* 8 << n = 8*2^n
* >>> : 右移运算(不考虑符号位),只向最左边补0
* 正数 和 >> 一样,因为补0 , 正数符号位 就是0
* 但是负数就不一样了,因为负数 首位是1,如果补0之后,就成正数了
* 1073741822
* -8 : 1000 0000 0000 0000 0000 0000 0000 1000
* -8 : 1111 1111 1111 1111 1111 1111 1111 0111
* -8 : 001111 1111 1111 1111 1111 1111 1111 10
* -1 >>> 1
* 01111 1111 1111 1111 1111 1111 1111 111 = 2147483647
* JAVA面试题:请问如何可以更快的计算出2的3次方
* 2<<2