理解null关键字及集合或字符串需先判断null再判断长度的原因
来源:互联网 发布:正整数分解质因数算法 编辑:程序博客网 时间:2024/06/05 17:30
null关键字
Java中,null是一个关键字,代表不确定的对象。null只能用于赋给引用类型变量,不可以赋给基本数据类型变量。类成员引用变量默认为null。但对于非类成员变量,不能只声明定义,不进行初始化,但后边的代码中使用了它,这时候,就会进行报错。下边代码:
Connection connection = null; try { connection = DriverManager.getConnection("url", "name", "passwod"); } catch (SQLException e) { e.printStackTrace(); } String catalog = connection.getCatalog();
这时候,如果不指定connection为null,就使用connection,就会报错。 null本身虽然能代表一个不确定的对象,但就null本身来说,它不是对象,也不知道什么类型,也不是java.lang.Object的实例。
判断字符串/数组/集合 不为空的方法
在代码中,我们经常这样来判断一个字符串是否为空。即:首先判断是否为null,再判断长度是否大于0.
public static void test(String s) { if (s != null && s.length() > 0) { System.out.println(s.charAt(0)); return; } }
为什么要这样进行判断呢。为什么不能直接写一个条件就判断。为什么必须得将s != null放在s.length() > 0前面进行判断呢。我们看下边的代码会出现什么错误:
public static void test(String s) { if (s.length() > 0 && s != null) { System.out.println(s.charAt(0)); return; } }
这时候在main方法中调用此方法:
public static void main(String[] args) { String s = null; test(s); }
这样会出现:Exception in thread “main” java.lang.NullPointerException. 即空指针异常。这说明,必须得把s != null的判断条件放在前面,就是为了避免这种情况,当引用类型声明为null时,它不是一个对象类型,所以也就没有length方法了。
那么写两个条件判断也就好理解了:s != null是为了防止String类型声明为null;s.length() > 0的判断条件,为了防止:s=”“赋值空串。当字符串初始化为:s=”“时,其长度为0,但却在内存中开辟了空间。null不是对象,null不是对象,”“是对象,所以null没有分配空间,”“分配了空间是对象,所以null没有分配空间,”“分配了空间,但它是一个空串,所以要对空串这种情况进行判断。
阅读全文
1 0
- 理解null关键字及集合或字符串需先判断null再判断长度的原因
- C# 判断字符串为Null或空的方法
- 空字符串 null 判断
- null或空值的判断处理
- 集合判断是否为null
- MySql判断是否为null或空字符串
- ORACLE null的判断
- IOS (null)的判断
- 操作变量要先判断Null值
- 返回零长度的数组或集合,而不是null
- 如何判断字符串是null
- java里判断字符串null
- iOS 判断字符串"<null>"类型
- 如何判断请求的接口数据为null或(null)<null>
- 判断(null) <null>
- javascript如何快速判断变量是不是null或undefined或长度为零
- iOS (null)与<null>的判断
- null或空值的判断处理-java
- 排序-快速排序-Java
- 2017/05/31 错误:找不到或无法加载主类 HelloWorld
- 设计一个ip网段黑名单过滤(网易面试题)
- 初学数据结构---查找
- Process进程
- 理解null关键字及集合或字符串需先判断null再判断长度的原因
- KM算法 模板
- ZCMU—1932
- tmpnam
- oracle DBaaS 数据库云服务实践之一添加主机失败解决
- 开发H5游戏引擎的选择:Egret或Laya?
- 优先队列实现成员的增减
- 1127. ZigZagging on a Tree (30)[二叉树构建-dfs-bfs]
- Linux安装MySql:(一)通用二进制方式安装