博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于字符串的一些问题
阅读量:6546 次
发布时间:2019-06-24

本文共 1275 字,大约阅读时间需要 4 分钟。

  hot3.png

问题一:

null和""的区别

String s = null;

string.trim()就会抛出为空的exception

String s = "";

string.trim()就不会抛,为什么?

① null代表声明了一个空对象根本就不是一个字符串

    ""代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串

② null代表声明了一个空对象,对空对象做任何操作都不行的,除了=和==。

    ""是一个字符串了,只是这个字符串里面没有内容了。

③ String s = null;只是定义了一个句柄,也就是说你有了个引用,但是这个引用未指向任何内存空间

    String s = "";这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以你可以对它操作,而不用担心什么了。

总之:

String s=null;//null是未分配堆内存空间

String a;//分配了一个内存空间,没存入任何对象

String a="";//分配了一个内存空间,存了一个字符串对象

问题二:

String s; 和 String s=null; 和 String s="a";有什么区别?

针对这三种情况,使用out.println(s);的时候,第一个会出现异常,第二个会输出null.第三个则会输出a.

这是为什么呢?这三句声明语句,各自作了什么呢?

① 第一个是没有初始化的引用;

    第二个为空引用;

    第三个是在字符串池里写入一个字符'a',然后用s指向它。

【注意】

String s="a" 和 String s=new String("a");是有本质上的区别的

前者是在字符串池里写入一个字符'a',然后用s指向它;

后者是在堆上创建一个内容为"a"的字符串对象。

【总结】

String str="aaa"; //于栈上分配内存

String str=new String("aaa"); //于堆上分配内存

String s; 系统会自动赋值null

String s;只是给s分配一个内存空间

String s=null;是分配的空间中存储的值为空值

String s="a";这句就不用我多说了分配的空间的值为字符a

问题三:

声明了一个string a;变量

在以后的判断中,a == ""和a == null有何不同?

① 如果没有给a赋过值,a==""会导致异常。

    在实际处理时,往往认为""和null代表相同的含义,即都代表无值

    此时建议用如下语法:

    if(a==null || a==""){ }

    如果a为null,就不会执行后面的判断,直接返回true。

② null是用来判断引用类型是否分配了存储空间

    ""是针对字符串的

    string类型实际上是字符串指针,也即是一个引用类型

    所以如果没有给a赋过值,a == ""会导致异常

    所以if(a=="" || a==null){}这种写法也是正确的

转载于:https://my.oschina.net/liyurong/blog/1498465

你可能感兴趣的文章
j2EE监听器-listener
查看>>
使用pip命令报You are using pip version 9.0.3, however version 18.0 is available pip版本过期.解决方案...
查看>>
(转)LINQ之路
查看>>
Django REST框架--关系和超链接api
查看>>
双击防止网页放大缩小HTML5
查看>>
C#的一些学习方法
查看>>
U3D Invoke() IsInvoking CancelInvoke方法的调用
查看>>
Javascript 如何生成Less和Js的Source map
查看>>
中间有文字的分割线效果
查看>>
<悟道一位IT高管20年的职场心经>笔记
查看>>
volatile和synchronized的区别
查看>>
10.30T2 二分+前缀和(后缀和)
查看>>
vuex视频教程
查看>>
Java 线程 — ThreadLocal
查看>>
安居客爬虫(selenium实现)
查看>>
-----二叉树的遍历-------
查看>>
ACM北大暑期课培训第一天
查看>>
F. Multicolored Markers(数学思维)
查看>>
Centos7安装搜狗输入法
查看>>
nodjs html 转 pdf
查看>>