一般情况下是通过输入框来输入參数的如果什么也没有输入,后面获取的就是null值但是这个时候有一个问题,做软件不能认为用户总会按照认为正确的方式如乖乖的从攵本框输入系统在发布的时候是不会知道用户是谁的,可能是一个什么也不知道的计算机文盲也可能是黑客。如果是后者就会利用任何可能潜在的BUG来攻击WEB。
例如在URL里面传参这个时候可能会说,如果定义成POST方式不就可以避免了吗恩,这个时候的确可以避免URL传参但並不能避免其他的方式。比如写一个伪页向的后台提交请求。这个时候就是考验代码健壮性的时候了就可能会给的参数赋值一个“”洏不是一个null。
再有一种可能就是在页面需要处理一些中间数据这个时候可能会设置Text的值为“”,而不是让它是null这样以来如果如果把这個提交到后台的话就会产生不可预知的错误。
总归一句话这样做检查,就是为了让代码更健壮稳定性更强。
开辟内存空间A, 存放参数名str 其中它的指向为空,也就是说它没有指向任何内存空间
2. str = ""的内存空间开辟过程如下:
开辟内存空间A,存放参数名str, 开辟内存空间B将B得地址存放到A里面,也就是说str有了指向且其指向为内存空间B. 但是B空间里面的值为空。也就是说是个空字符串
以上了解以后就可以区分为什麼要同时检测者两种情况了。
如果str为null则说明该对象未创建,这个时候调用其方法(如str.length())的时候就会抛出空指针错误
如果str为"",说明创建了对象,只是其值为空这个时候调用其length方法就不会抛出异常。
为了应对上述可能出现的空指针异常就需要同时判断上述的两种可能。