是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
1.2Debug介绍与操作流程
如何加断点
选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可
如何运行加了断点的程序
在代码区域右键Debug执行
看哪里
看Debugger窗口
看Console窗口
点哪里
点StepInto(F7)这个箭头,也可以直接按F7
如何删除断点
选择要删除的断点,单击鼠标左键即可
如果是多个断点,可以每一个再点击一次。也可以一次性全部删除
2.1进制的介绍与书写格式
代码:
publicclassDemo1{/*十进制:Java中,数值默认都是10进制,不需要加任何修饰。二进制:数值前面以0b开头,b大小写都可以。八进制:数值前面以0开头。十六进制:数值前面以0x开头,x大小写都可以。注意:书写的时候,虽然加入了进制的标识,但打印在控制台展示的都是十进制数据.*/publicstaticvoidmain(String[]args){System.out.println(10);System.out.println("二进制数据0b10的十进制表示为:"+0b10);System.out.println("八进制数据010的十进制表示为:"+010);System.out.println("十六进制数据0x10的十进制表示为:"+0x10);}}2.2任意进制到十进制的转换
2.3进制转换-十进制到任意进制转换
2.4快速进制转换法
2.5原码反码补码
前言:计算机中的数据,都是以二进制补码的形式在运算,而补码则是通过反码和原码推算出来的
**原码**:(可直观看出数据大小)
就是二进制定点表示法,即最高位为符号位,【0】表示正,【1】表示负,其余位表示数值的大小。
通过一个字节表示+7和-7,代码:byteb1=7;byteb2=-7;一个字节等于8个比特位,也就是8个二进制位
0(符号位)0000111
1(符号位)0000111
反码:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码:(数据以该状态进行运算)正数的补码与其原码相同;负数的补码是在其反码的末位加1。
2.6位运算-基本位运算符
publicclassDemo2{/*位运算:位运算符指的是二进制位的运算,先将十进制数转成二进制后再进行运算。在二进制位运算中,1表示true,0表示false。&位与:遇false则false,遇0则000000000000000000000000000000110//6的二进制&00000000000000000000000000000010//2的二进制-----------------------------------------00000000000000000000000000000010//结果:2|位或:遇true则true,遇1则1^位异或:相同为false,不同为true~取反:全部取反,0变1,1变0(也包括符号位)00000000000000000000000000000110//6的二进制补码~11111111111111111111111111111001-1//-1求反码------------------------------------11111111111111111111111111111000//反码推原码10000000000000000000000000000111//-7*/publicstaticvoidmain(String[]args){System.out.println(6&2);System.out.println(~6);}}2.7位运算-位移运算符
位运算概述:位运算符指的是二进制位的运算,先将十进制数转成二进制后再进行运算。在二进制位运算中,1表示true,0表示false。
位运算符介绍:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bjGD9ZTs-1606280432728)(.\img\1590937235620.png)]
publicclassDemo3{/*位移运算符:<<有符号左移运算,二进制位向左移动,左边符号位丢弃,右边补齐0运算规律:向左移动几位,就是乘以2的几次幂12<<2(0)00000000000000000000000000011000//12的二进制----------------------------------------------------------------------------->>有符号右移运算,二进制位向右移动,使用符号位进行补位运算规律:向右移动几位,就是除以2的几次幂00000000000000000000000000000001(1)//3的二进制----------------------------------------------------------------------------->>>无符号右移运算符,无论符号位是0还是1,都补0010000000000000000000000000000110//-6的二进制*/publicstaticvoidmain(String[]args){System.out.println(12<<1);//24System.out.println(12<<2);//48}}publicclassDemo4{/*^运算符的特点一个数,被另外一个数,异或两次,该数本身不变*/publicstaticvoidmain(String[]args){System.out.println(10^5^10);}}
3.1数据交换
案例需求
代码实现
publicclassTest1{/*需求:已知两个整数变量a=10,b=20,使用程序实现这两个变量的数据交换最终输出a=20,b=10;思路:1.定义一个三方变量temp,将a原本记录的值,交给temp记录(a的值,不会丢了)2.使用a变量记录b的值,(第一步交换完毕,b的值也丢不了了)3.使用b变量记录temp的值,也就是a原本的值(交换完毕)4.输出a和b变量即可*//*动态初始化格式:数据类型[][]变量名=new数据类型[m][n];m表示这个二维数组,可以存放多少个一维数组n表示每一个一维数组,可以存放多少个元素*/publicstaticvoidmain(String[]args){inta=10;intb=20;//将a原本记录的值,交给temp记录(a的值,不会丢了)inttemp=a;//用a变量记录b的值,(第一步交换完毕,b的值也丢不了了)a=b;//使用b变量记录temp的值,也就是a原本的值(交换完毕)b=temp;//输出a和b变量即可System.out.println("a="+a);System.out.println("b="+b);}}3.2数组反转【应用】
案例需求:
实现步骤:
1.定义两个变量,start和end来表示开始和结束的指针.
确定交换条件,start 代码实现: publicclassTest2{/*需求:已知一个数组arr={19,28,37,46,50};用程序实现把数组中的元素值交换,交换后的数组arr={50,46,37,28,19};并在控制台输出交换后的数组元素。步骤:1.定义两个变量,start和end来表示开始和结束的指针.2.确定交换条件,start 3.4二维数组动态初始化 动态初始化格式: 数据类型[][]变量名=new数据类型[m][n];m表示这个二维数组,可以存放多少个一维数组n表示每一个一维数组,可以存放多少个元素 答:可以的 **完整格式:**数据类型[][]变量名=new数据类型[][]{{元素1,元素2...},{元素1,元素2...} **简化格式:**数据类型[][]变量名={{元素1,元素2...},{元素1,元素2...}...}; **代码实现:** publicclassDemo3Array{/*完整格式:数据类型[][]变量名=new数据类型[][]{{元素1,元素2...},{元素1,元素2...}...};简化格式:数据类型[][]变量名={{元素1,元素2...},{元素1,元素2...}...};*/publicstaticvoidmain(String[]args){int[]arr1={11,22,33};int[]arr2={44,55,66};int[][]arr={{11,22,33},{44,55,66}};System.out.println(arr[0][2]);int[][]array={arr1,arr2};System.out.println(array[0][2]);}}3.7二维数组遍历 需求: 步骤: 1.遍历二维数组,取出里面每一个一维数组2.在遍历的过程中,对每一个一维数组继续完成遍历,获取内部存储的每一个元素 publicclassTest1{/*需求:已知一个二维数组arr={{11,22,33},{33,44,55}};遍历该数组,取出所有元素并打印步骤:1.遍历二维数组,取出里面每一个一维数组2.在遍历的过程中,对每一个一维数组继续完成遍历,获取内部存储的每一个元素*/publicstaticvoidmain(String[]args){int[][]arr={{11,22,33},{33,44,55}};//1.遍历二维数组,取出里面每一个一维数组for(inti=0;i 某公司季度和月份统计的数据如下:单位(万元)第一季度:22,66,44第二季度:77,33,88第三季度:25,45,65第四季度:11,66,99 定义求和变量,准备记录最终累加结果使用二维数组来存储数据,每个季度是一个一维数组,再将4个一维数组装起来遍历二维数组,获取所有元素,累加求和输出最终结果 publicclassTest2{/*需求:某公司季度和月份统计的数据如下:单位(万元)第一季度:22,66,44第二季度:77,33,88第三季度:25,45,65第四季度:11,66,99步骤:1.定义求和变量,准备记录最终累加结果2.使用二维数组来存储数据,每个季度是一个一维数组,再将4个一维数组装起来3.遍历二维数组,获取所有元素,累加求和4.输出最终结果*/publicstaticvoidmain(String[]args){//1.定义求和变量,准备记录最终累加结果intsum=0;//2.使用二维数组来存储数据,每个季度是一个一维数组,再将4个一维数组装起来int[][]arr={{22,66,44},{77,33,88},{25,45,65},{11,66,99}};//3.遍历二维数组,获取所有元素,累加求和for(inti=0;i