Debug
概述
供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于最终程序执行过程来调试程序
操作流程
断点调试
加断点
选择要设置的端点代码行,在行号的取余后面单机鼠标左键
如何运行
右键选择Debug模式运行
如何看
看Debug窗口
点哪里
Step Into 或F7
如何停止
点Stop
删除
点红点,或停止按钮下面按钮
进制
进制介绍
进制:指进位制,使人们规定的一整进位方式
常见进制:二进制,八进制,十进制
计算机数据在底层都是以二进制形式运算的,也有数据是八进制 ,十进制 ,十六进制
二进制
用0和1表示,逢二进一
书写
java默认10进制
二进制 0bkait
八进制 0开头
十六进制 0x开头输出都是十进制表示
进制转换
- 2转10
系数*基数的权次幂相加
- 8转10
系数*基数的权次幂相加
- 16转10
系数*基数的权次幂相加
- 任意进制转10
系数*基数的权次幂相加
- 10转2
除基取余
- 10转16
除基取余
快速进制转换
-
8421码
-
二转八
三位为一位
- 二转16
四位为一位
原码反码补码
原码:看数据
八位,第一位是符号位
反码:转数据
正数的原码不变,负数的原码取反,不包括符号位
补码:运算数据
正数的补码相同,负数的补码取反+1
位运算
1表示true,0表示false
& 位与运算: 遇0 则0
| 位或运算:遇1则1
^ 位异或运算: 相同为false,不同为true
~ 取反 :全部取反,包括符号位(求原码)
位移运算符
- << 有符号左移运算,二进制数据整体向左移动,左边符号位丢弃,右边补0
向左移动几位,就是乘以2的几次幂
- “>>” 有符号位右移,二进制向右移动,使用符号位进行补位
向右移动几位,就是除以2的几次幂
- ">>>"无符号位右移,无论符号位是0还是1,全部补0
注意
一个数被另一个数异或两次,结果不变
案例
- 数据交互
package Day5L;
public class ShuJuJiaoHuan2 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}
package Day5L;
public class ShuJuJiaoHuan {
public static void main(String[] args) {
int a = 10;
int b = 20;
int temp = a;
a = b ;
b = temp;
System.out.println("a = " + a + " b = " + b);
}
}
数组反转
package Day5L;
public class ShuZuFanZhuan2 {
public static void main(String[] args) {
int[] arr = {19,28,37,46,50};
arrTemp(arr);
arrPrint(arr);
}
public static int[] arrTemp(int[] arr){
int start = 0;
int end = arr.length - 1;
for ( ; start < end; start++,end--){
int temp = arr[start];
arr[start] = arr[end] ;
arr[end] = temp;
}
return (arr);
}
public static void arrPrint(int[] arr){
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
二维数组
概述
- 二维数组是一种容器,用来存储一维数组
动态初始化
格式
数据类型[][] 变量名
int [][] arr;
数据类型 变量名[][]
数据类型[] 变量名[]
- 数据类型[][] 变量名 = new 数据类型[m][n]
m表示这个二维数组中可以存放多少个一位数组
n表示每个一位数组可以当多少个元素
静态初始化
格式
数据类型[][] 变量名 = new 数据类型[][] {{元素1,元素2,…},{元素1,元素2}…};
二维数组的遍历
package Day6L;
public class EWeiShuZuBianLi {
public static void main(String[] args) {
int[][] a = {{11, 22, 33}, {33, 44, 55}};
for (int i = 0; i < a.length; i++) {
for (int b = 0; b < a[i].length; b++) {
System.out.println(a[i][b]);
}
}
}\
}
求和案例
package Day6L;
public class JiDuQiuHe {
public static void main(String[] args) {
int[][] a = {{22, 66, 44}, {77, 33, 88},{25,45,65},{11,66,99}};
int and = 0;
for (int i = 0; i < a.length; i++) {
for (int b = 0; b < a[i].length; b++) {
and += a[i][b];
}
}
System.out.println("公司四个季度的销售额总额为:" + and + "万元");
}
}