平时练习力扣时,经常看见大牛直接先写个
//base case
if(nums==null||nums.length==0) ...
自己从来没想过,只有提交遇到错误时才想到加个base case判断。今天像总结下这两者的不同。
1、对象和数据在java中都是引用数据类型,就是可以指向一个heap中的内存,这个变量保存的是地址。对于对象,如果只定义了,没有引用,那么这个值默认就是null。
Integer i;//null,ps:全局变量
对于数组,有两种。
int[] nums;//nums=null
int[] nums=new int[0]//nums.length=0;
null的情况声明了变量但是没有赋值,nums.length=0是栈中变量指向了堆中的一块区域,只不过这块区域的长度是0.
所以平时写代码可以加上,同时也要注意顺序,先判断是否为null然后再判断长度是否为0,否则会出现空指针异常。
if(nums==null||nums.length==0)...
对于二维数组,
if(matrix==null||matrix.length==0||matrix[0].length==0)