空字符串“”

1.类型:“”是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object中的方法(.toString()等)

2.内存分配:表示声明一个字符串类型的引用,其值为""空字符串,这个引用指向str1的内存空间。(是一个对象类型,定义是用 String[] a=new String[10]; 而非 String[] a="String";)

null

1.类型:null是空引用,表示一个对象的值,没有分配内存,调用null的字符串的方法汇抛出空指针

如:str1.endsWith(str2); java.lang.NullPointerException)

2.内存分配:表示生命一个字符串对象的引用,但指向null,也就是说没有指向任何内存空间。

例:

String str1 = ""; //str1对应一个空串,声明对象的引用

String str2 = null; //str2引用为空

String str3 = new String(); //str3将指向具体的String实例,默认值为“”

注意:str1和str3被实例化,而str2没有实例化,但str1和str3所指的地址不同,但值一样,都为空。

null不是对象(空引用),“”是对象,所以比较的时候是if(str1.equals(""))和if(str2!=null)

(即对象用.equal()比较,null用等号比较。)正确的写法是先判断是否是对象,若是,在判断是否是空字符串。

注:

1.java中类的对象用句柄来访问,类似于C中的指针。

2.java中的两种判断:==和equal()

==根据地址来比较,只有地址和值都相等时才相等

equal()比较的是变量的值,只要值相等,两者就相等

3.在java中变量和引用变量存在栈中,对象都存放在堆中。

例如:String str = new String("abc");//str存放在stack中,abc这个值存放在heap中,并指向其分配的内存空间。

java中的变量和引用变量

java中数据类型分为两大类:基本数据类型和复合数据类型。相应的变量分为基本变量和引用变量。

java中的8中基本类型的变量称为基本类型变量,而类、接口、数组变量是引用类型变量。

java 空串占用内存吗_java空字符串“”和null区别相关推荐

  1. Java进阶(二十一)java 空字符串与null区别

    java 空字符串与null区别 1.类型 null表示的是一个对象的值,而并不是一个字符串.例如声明一个对象的引用,String a = null ; ""表示的是一个空字符串, ...

  2. Java 空格“ ”、空字符串“”和null区别

    空格" " 空字符串"" 1.类型:""是一个空字符串(String),长度为0,占内存,在内存中分配一个空间,可以使用Object对象中的 ...

  3. java 队列占用内存大小_Java线程池队列吃的太饱,撑着了咋整?java 队列过大导致内存溢出...

    Java的Executors框架提供的定长线程池内部默认使用LinkedBlockingQueue作为任务的容器,这个队列是没有限定大小的,可以无限向里面submit任务. 当线程池处理的太慢的时候, ...

  4. 分析java 线程占用内存_Java线程:保留的内存分析

    分析java 线程占用内存 本文将为您提供一个教程,使您可以确定活动应用程序Java线程中保留了多少Java堆空间 . 将提供来自Oracle Weblogic 10.0生产环境的真实案例研究,以使您 ...

  5. Java进程占用内存超高分析

    Java进程占用内存超高分析_ 1. 报错 2. 解决 3. 我用到的解决方法 写了一个Java服务,没有定时服务,没有线程池,没有重度的读写,只是对外提供了几个接口,接口的访问量并不高,结果占用内存 ...

  6. java中String值为空字符串与null的判断方法

    Java空字符串与null的区别 1.类型        null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表 ...

  7. Java空字符串和null

    转载 Java空字符串与null的区别 1.类型 null表示的是一个对象的值,而不是一个字符串.例如声明一个对象的引用,String a=null.        ""表示的是一 ...

  8. Java进程占用内存过高,排查解决方法

    Java进程占用内存过高,排查解决方法 参考文章: (1)Java进程占用内存过高,排查解决方法 (2)https://www.cnblogs.com/eeexu123/p/10913389.html ...

  9. java内存问题怎么排查,java占内存高排查 java应用占用内存过高排查的解决方案...

    想了解java应用占用内存过高排查的解决方案的相关内容吗,zhaixing_0307在本文为您仔细讲解java占内存高排查的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:java,占内存过 ...

最新文章

  1. 宏基因组实战9. 组装assembly和分箱bin结果可视化—Anvi'o
  2. 使用BH60测量小功率步进电机角度实验数据
  3. sqldeveloper 连接oracle失败报12514(日常错误)
  4. rocketmq-console集群监控平台搭建
  5. [css] 不使用border画出1px高的线,在不同浏览器的标准和怪异模式下都能保持效果一样
  6. bootstrap-daterangepicker插件运用
  7. VS2013常用快捷键设置
  8. php 图像居中裁剪函数,php中自定义图像居中裁剪函数实现的代码案例
  9. php微信公众号绑定微信号,订阅号实现微信网页授权登陆(原创)
  10. 使用python制作属于自己的地铁图
  11. callee、caller、call、apply、bind这些方法的含义和使用
  12. android原生app转成web,转战WebApp: 最适合Android开发者的WebApp框架
  13. 金融科技对商业银行的挑战与冲击
  14. 【数据结构与算法】填空练习题
  15. css+html项目难点
  16. eLife | 利用进化信息预测蛋白质界面间残基-残基相互作用
  17. 禁用计算机usb设备,电脑USB接口被禁用了,教您怎么开启
  18. Android 基于USB_BUIK 触摸驱动
  19. Linux 内核对浮点数的支持
  20. 教你把Python当美图秀秀用

热门文章

  1. Vivado中Block Memory Generator v8.3的使用
  2. C++实现求字符串的所有的组合
  3. 985 211 PHP,985 211是什么意思
  4. markdown数学公式全集
  5. matplotlib 中子图的创建
  6. 解决yum安装报错Protected multilib versions
  7. 人脸识别 python调用face++ 功能测试
  8. php,http_build_query,乱码
  9. 系统访问慢的几个原因
  10. 每日算法练习之下落的小球