1.八种基本数据类型
byte short int long float double char boolean
1字节 2字节 4字节 8字节 4字节 8字节
8bit 7位有效数字 16位有效数字
2.引用类型
class interface String []
long类型赋值时,后面跟上l。例如:long a = 3l
float类型赋值时,后面跟上f。例如:float b = 1.22f
3.基本数据类型转换 小-->大
注意:当有一系列的+的运算的时候,如果某个部分其中含有字符串,那么这字符串前边挨着的+开始一直往后都是要按字符串去看。
例如:
String str = 1 + 3 + 4 + "hello" + 7 + 8;
System.out.println(str); // 8hello78
4.“&”和“&&”的区别:
单个&的时候,左边无论真假,右边都参与运算
双&&的时候,如果左边为真,右边参与运算;如果左边为假。右边不参与运算。
5.二进制
负数二进制 = 正数二进制 -> 反码 -> 加1(补码)
反码:1变0,0变1
正数二进制 = 负数二进制 -> 减1 -> 反码
//左移
System.out.println(1 << 2); //1*2的2次方
System.out.println(2 << 3); //2*2的3次方
//右移
System.out.println(8 >> 2); // 8*2的-2次方
System.out.println(8 >>> 2);
原始:
0000 1111 0010 1100
左移三位:
0 1111 0010 1100 000
右移四位:
0000 0000 1111 0010
对于负数来说:
右移和无符号右移的区别是:
1.右移看最高位,最高位是1,则补1;最高位是0,则补0。
2.无符号右移的最高位代表符号,右移后忽略符号,直接补0.
有符号的右移:看右移之后的首位是0还是1,是0前面空位补0,是1就补1;
无符号的右移:移动之后不管首位是0还是1,空位都是直接补0.
&运算:见0是0,全1为1
|运算:见1是1,全0为0
^运算:相同为0,不同为1
反码:0变1,1变0
6.三目运算符
比较三个数中最大的值:嵌套三目
int m = 4;
int n = 8;
int k = 23;
System.out.println(m > n ? (m > k ? m : k) : (n > k ? n : k));
7.运算符优先级:1最高,依次降低
| 优先级 | 运算符 | 结合性 |
|---|---|---|
| 1 | ()、[]、{} | 从左向右 |
| 2 | !、+、-、~、++、-- | 从右向左 |
| 3 | *、/、% | 从左向右 |
| 4 | +、- | 从左向右 |
| 5 | «、»、>>> | 从左向右 |
| 6 | <、<=、>、>=、instanceof | 从左向右 |
| 7 | ==、!= | 从左向右 |
| 8 | & | 从左向右 |
| 9 | 从左向右 | |
| 10 | | | 从左向右 |
| 11 | && | 从左向右 |
| 12 | || | 从左向右 |
| 13 | ?: | 从右向左 |
| 14 | =、+=、-=、*=、/=、&=、|=、^=、~=、«=、»=、>>>= | 从右向左 |
8.循环结构 for while
break:终止当前所在的循环
continue:对当前所在的循环起作用,结束当前这次循环,当前循环的下面的代码不执行,直接进入下一次循环。
return:结束一个方法
9.数组
一维数组
静态初始化 :在定义数组的时候,对各个元素赋值,完成初始化
int[] array1 = {2, 4, 5, 6};
int[] array2 = new int[] {2, 3, 4, 6};
动态初始化:先定义数组,再对每个元素分别赋值。
int[] array = new int[4];
array[0] = 1;
array[1] = 2;
array[2] = 3;
array[3] = 4;
二维数组
冒泡排序:
int[] arr = new int[]{3, 6, 23, 67, 2, 78, 40};
int tmp = 0;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (int i = 0; i < arr.length ; i++) {
System.out.println(arr[i]);
}
10.数组常见错误
1.数组下标越界:ArrayIndexOutOfBoundsException
int[] a = new int[3];
System.out.println(a[4]);
ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 3
2.空指针异常:NullPointerException
int[] b = null;
System.out.println(b[0]);