package com.xuge.java;
import org.junit.Test;
/**
* @author shkstart
* @create 2021 上午 11:23
*/
public class IDEADebug {
@Test
public void testStringBuffer(){
String str = null;
StringBuffer sb = new StringBuffer();
sb.append(str);//
System.out.println(sb.length());//4
System.out.println(sb);//"null"
StringBuffer sb1 = new StringBuffer(str);//抛异常NullPointerException
System.out.println(sb1);//
}
}
简单的单元测试。很明显报了一个空指针
一般来说,如果代码比较简短,可以人工一点点地查出
但是当代码足够大时,就需要Debug调式工具来解决问题
如图所示给断点,显然我的意义就是想知道str的长度为什么等于4,我们需要追踪到源码查看那些给API的人是如何实现apped方法
进入第一个断点
我们强制进入这个方法
继续进入
此时count=4,,所以很明显把那个null转换成了"null"四个字符
str="null"
进入下一个断点
显然等于4
在进入下一个断点
所以抛了空指针异常
总结:记录每一天