34-断点的基本使用

断点的基本使用

断点------------------------------------------

在这里插入图片描述

注意:下面的红色往下的箭头,虽然说明了什么方法都可以进入,但也只是针对于java代码,非java代码通常不能进入,其他的调试自然也不能,比如没有重写的hashCode方法,他是有native修饰的,代表默认非java代码的使用接口(一般主要是用来在Java程序中调用c/c++的代码的,也有可能是其他语言的代码,即默认只有不是java代码的方法,但调用是可以的,所以我们可以获得地址信息),即不重写,自然就会到非java代码里去,而重写,自然就是使用我们自己的了(这是重写的作用),即可以调试,所以如果不重写,自然不能调试,也就直接会到下一段代码了(下一行)

在这里插入图片描述

跳出方法,会跳出调用者的方法,直到跳出主线程,如main方法,上述的线程结束,是主线程结束
跳出后面的,是跳出窗口,跳出时,到当前方法位置,而跳出方法是,跳出方法的下一个位置
但有些是当前位置,如有些系统方法,但是不可以再次进入了,而跳出窗口可以继续进入
再后面的就是跳到下一个断点,按照行数来决定先后,若没有,则结束Debug模式
当然可以在Debug的时候,自己添加一个断点,那么也会到该断点,但是要添加到后面
再后面的就是计算器,当你复制一行代码时,其中可以有变量(前提一般只能是执行过的,否则会有错误提示,没有变量可以不用操作执行过的),如int a = 1+ 2;
a是一个变量,那么就将这行代码复制进去,会帮你计算出结果,主要用来计算方法返回值的运算
对于左边的,最上面是重新Debug,而下面一个就类似于跳到下一个断点
若是服务器的操作(可能不同,具体自己测试,即不是完全相同操作的Debug),在没有下一个断点时,则等待下一个调试,否则跳转到下一个断点,即不会退出Debug模式(因为他并没有真的结束运行整体程序的,因为多线程关系)
单纯的执行,则会退出,即对于跳到下一个断点的退出,在服务器里基本没有明显关联
但是其他的下一个的操作等等退出,基本也都不会退出,与跳转到下一个断点基本一样,基本是这样
但这里是按照普通的执行来进行说明的,而不是服务器,所以这里看看即可
再下面红色正方形,就是直接结束Debug模式
再下面就是断点的操作,可以看到断点的位置也可以删除,再下面就是让你的断点都失效
让你不可进行跳转了,只可以一步一步执行了,再添加断点也是失效的
注意:在点击下一步时,若你的方法里面有断点,那么他不会直接到下一行,而是进入该方法的断点位置
然后在该方法里进行操作了,而且跳断点时,必须程序里面的断点
如main方法里,没有fa方法,但fa方法里有断点,那么跳不过去,若main方法有fa方法,那么就可以跳过去
之所以是这样,是因为断点是程序之间的断点,是需要联系的,无联系,不可操作断点
最好对与代码来说:在写代码,之所以用方法,除了可以看起来不那么乱外,更重要的是分工,好维护
但要好维护的缺点是,由于方法是在没创建对象时,不可以用其他类的方法(静态除外,但是静态的都会占名)
那么通常都要传递需要的参数,在方法里,但这样的参数,最好给方法对象的构造方法传递,因为有可能有很多需要该参数的
在使用对象流时,于其他流不同,读取的文件,必须写入对象的信息,因为需要版本号,若没有,则报错
该版本号,不写的话,会自动根据你的类的信息来添加,这是底层的实现