Debug调试
Debug是一个调试工具,可以用来查看代码的执行流程,以及执行过程中变量的变化情况。
Debug使用步骤
1.打断点:在代码编辑区域行号位置点击即可
2.Debug执行:代码执行到断点位置会停下来,等待下一步操作
3.查看以下图片,点击不同的按钮完成不同的操作。

进制(了解)
不同进制表示形式
进制指的是数据的表示形式,一般分为二进制,八进制,十进制,十六进制。
二进制:由0和1组成,逢二进一,0b开头
举例:0b100
八进制:由0、1、2、3、4、5、6、7组成,逢八进一,0开头
举例:056
十进制:由0、1、2、3、4、5、6、7、8、9组成,逢十进一,默认就是进制
举例:123
十六进制:由0、1、2、3、4、5、6、7、8、9、a、b、c、d、e、f组成,逢十六进一,0x开头
举例:0xff6677
任意进制转十进制
公式:系数*基数的权次幂之和
基础:几进制系数就是几
系数:每一位上的数
权:从右往左对每一位从0开始进行编号,这个编号就是权
二进制转十进制
2 1 0
1 1 0 = 1*2^2 + 1*2^1 + 0*2^0 = 4 + 2 + 0 = 6
八进制转十进制
2 1 0
1 0 1 = 1*8^2 + 0*8^1 + 1*8^0 = 64 + 1 = 65
十六进制转十进制
2 1 0
1 0 0 = 1*16^2 + 0*16^1 + 0*16^0 = 256
十进制转任意进制
公式:除基取余,直到商为0,余数反转
十进制转二进制:
整数10转二进制
商 余数
10/2 5 0
5/2 2 1
2/2 1 0
1/2 0 1
最终:整数10对应的二进制是1010
十进制转八进制
整数65转换八进制
商 余数
65/8 8 1
8/8 1 0
1/8 0 1
最终:65对应的八进制101
十进制转换十六进制:
整数256转十六进制
商 余数
256/16 16 0
16/16 1 0
1/16 0 1
最终:256对应的十六进制100
8421码快速转换法
8421码可以用来做二进制转其他进制的快速转换。
8421码: 128 64 32 16 8 4 2 1
二进制的每一位:1 1 1 1 1 1 1 1
二进制对应的十进制:把数字1上对应码相加即可
128 64 32 16 8 4 2 1
1 0 0 1 1 0 1 0
把1位上的码相加:128+16+8+2=154
二进制转八进制:把二进制数据从右往左,每三位编成一组,对每一组用8421码计算对应的十进制,组合起 来就是八进制数据。
二进制:010 011 010
八进制:2 3 2
二进制转十六进制:把二进制数据从右往左,每四位编成一组,对每一组用8421码计算对应的十进制,组合 起来就是十六进制数据。
二进制:1001 1010
十六进制:9 a
原码反码和补码
二进制有三种状态,分别是原码、反码和补码。计算机中进行数据运算,使用的是补码来运算的。
正数原码:最高位0表示正符号,其他位为数值位
正数的原码、反码和补码都是一样的。
十进制:7
二进制原码:00000111
二进制反码:00000111
二进制补码:00000111
---------------------------------
负数原码:最高位1表示符号位,其他位表示数值位
负数的反码:符号位不变,数值位取反
负数的补码:在反码的基础上+1
十进制:-7
二进制原码:10000111
二进制反码:11111000
二进制补码:11111001
练习:计算7+(-7)的结果
+7的补码: 00000111
-7的补码: 11111001
--------------------
0000000
位运算
位运算是直接对二进制数据进行操作的,效率更高。
&(位与): 对二进制数据中的每一位进行&运算,只有1&1=1否则结果就是0
10101001
& 01101001
-------------------
00101001
|(位或): 对二进制数据中的每一位进行|运算,只有0|0=0,否则都是1
10101001
| 01101001
-------------------
11101001
^(位异或): 对二进制数据中的每一位进行^运算,相同为0,不同为1
10101001
^ 01101001
-------------------
11000000
~(取反): 把二进制的每一位取反
<<(左移):把二进制数据向左移动指定位数,末尾补0
>>(右移):把二进制数据向右移动指定的位数,最高位补符号位
>>>(无符号右移): 把二进制数据向右移动指定的位数,最高位补0
数据交换
使用第三方变量【推荐写法】
int a=10;
int b=20;
//定义第三方变量temp
int temp=a;
a=b;
b=temp;
使用异或运算符【面试题】
int a=10;
int b=20;
//使用异或运算的特点:一个数被另一数异或两次,该数本身不变量
a=a^b; //a=10^20
b=a^b; //b=10^20^20; //b=10
a=a^b; //a=10^20^10; //a=20
数组反转
int[] array={23,18,78,90,4,52,55};
//start: 开始索引
//end: 结束索引
for(int start=0,end=array.length-1; start<end; start++,end--){
//每次循环就让array[start]和array[end]互换位置
int temp=array[start];
array[start]=array[end];
array[end]=temp;
}
//遍历打印输出元素
for(int i=0;i<array.length;i++){
System.out.println(array[i]);
}二维数组
二维数组中的元素存储的是一维数组。
二维数组中存储的是一维数组的地址。如下图所示

动态初始化:在定义数组时,指定数组的长度,由系统分配默认值
//m: 有几个一维数组组成
//n: 每一个一维数组有多少个元素
数据类型[][] 数组名 = new 数据类型[m][n];
//举例:
int[][] array=new int[2][3];
System.out.println(array); //二维数组的地址值
System.out.println(array[0]); //一维数组的地址值
System.out.println(array[1]); //一维数组的地址值
//给二维数组中第1个一维数组的第2个元素赋值
array[0][1]=20;
System.out.println(array[0][0]); //0
System.out.println(array[0][1]); //20
...
静态初始化:在定义数组时,指定数组的元素,由系统计算长度
//静态初始化格式:
数据类型[][] 数组名 = new 数据类型[][]{ {元素1,元素2,元素3...},{...},{...} }
数据类型[][] 数组名 = { {元素1,元素2,元素3...},{...},{...} }
//举例:
int[][] array = {
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15}
};
二维数组的遍历
//定义二维数组
int[][] array = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15}
};
//遍历二维数组,并按格式打印
for (int i = 0; i < array.length; i++) {
//array[i]记录的是每一个一维数组的地址
System.out.print("{");
for (int j = 0; j < array[i].length; j++) {
//打印输出一维数组中的元素
if (j != array[i].length - 1) {
System.out.print(array[i][j]+",");
}else {
System.out.println(array[i][j]+"}");
}
}
}
二维数组求和
//定义二维数组
int[][] array = {
{1, 2, 3, 4, 5},
{6, 7, 8, 9, 10},
{11, 12, 13, 14, 15}
};
//遍历二维数组
int sum=0; //求和变量
for(int i=0;i<array.length;i++){
//再继续遍历二维数组中的一维数组
for(int j=0; j<array[i].length; j++){
sum+=array[i][j];
}
}
System.out.println("二维数组中所有元素的和:"+sum);
文章转载自是汐江呀,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




