java中null+""输出的字符串仍是null,但是字符串形式的null,而且length是4个;

“”+null 得到的结果是一个null字符串,采用字符串加上其它类型的参数时如过其它参数不是字符串类型,会被强制转换成字符串。
1、是判断结果是否为空字符串,此时为null字符串,不为空字符串
2、是判断对象是否为空,此时为null字符串,不是空对象。
3、判断是否为null字符串,判断字符串最好用 字符串.equals()方法, == 是直接比较内存地址,这里不是同一个内存地址,是不想等的。
4、是打印结果

java中null+null输出的结果是nullnull,都是字符串的形式

  1. public class NullTest {
  2. public static void main(String[] args) {      
  3. String str1=null;        
  4. String str2=null;        
  5. String str3=str1+str2;      
  6. System.out.println(str3);  
  7. }
  8. }

其中:

  1. String str1=null;
  2. String str2=null;
  3. String str3=str1+str2;

等价于:

String str3 = new StringBuilder().append((String)null).append((String)null).toString();

看了append(String)的源码,就会顿时明白:

  1. public AbstractStringBuilder append(String str) {    
  2. if (str == null) 
  3. str = "null";     
  4. int len = str.length();       
  5. ensureCapacityInternal(count + len);  
  6. str.getChars(0, len, value, count);  
  7. count += len;      
  8. return this;   
  9. }

java中null+和null+null的深入理解相关推荐

  1. Java中switch参数传null会引起异常——Java 语法糖

    问题 switch 参数不能是null,swicth(null)会报java.lang.NullPointerException异常 查找原因 为什么会这样呢,查找一下原因: 找到编译后的class文 ...

  2. java中返回值空值(null)处理

    在微服务项目中,可将这个转换类放在公共模块(commons)下,在整个项目中都生效 1.使用spring boot默认的Jackson package com.miswu.config;import ...

  3. Java中? extends T和? super T的理解

    ? 通配符类型 - <? extends T> 表示类型的上界,表示参数化类型的可能是T 或是 T的子类; <? super T> 表示类型下界(Java Core中叫超类型限 ...

  4. Java中的设计模式:“代理模式”的理解

    代理模式定义: 为其他对象提供一种代理以控制对这个对象的访问.在面向对象中,有时候直接访问一些对象比较麻烦,所以代理模式就是在这个对象上加上一个访问该对象的访问层.类似于很多明星的事务实际都是交给经纪 ...

  5. java中堆与栈的区别 彻底理解

    每一个Java应用都唯一对应一个JVM实例,每一个实例唯一对应一个堆.应用程序在运行中所创建的所有类实例或数组都放在这个堆中,并由应用所有 的线程共享.跟C/C++不同,Java中分配堆内存是自动初始 ...

  6. JAVA中关于set()和get()方法的理解及使用

    https://www.cnblogs.com/fly-sky-han/p/6564439.html 我们先来看看set和get这两个词的表面意思,set是设置的意思,而get是获取的意思,顾名思义, ...

  7. 一些简单的例子让你在Java中能更好的学习并理解循环结构(1)!

    一.java中流程控制方式采用三种基本流程结构:顺序结构,选择(分支)结构,循环结构. 1.[if-else 结构] if(1>2){ system.out.println("if条件 ...

  8. java中package(包)的使用理解

    最近在学习java,在学习到对象和类这一部分时,接触了java中很重要的一个概念:package,也就是包.一开始对于package的使用我产生了许多疑惑,不仅是理论上的,在实际写代码的尝试中也出现了 ...

  9. Java中的字节流和字符流如何理解——精简

    目录 引言 字节流和字符流 字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 引言 在完完全全的完成本学期的学习任务之后,终于可以有时间继续更新Java相关的文章了.那么今天我们要学习的 ...

  10. 在java中null的作用_在java中避免使用!= null有什么好处?

    使用空集合或"空白"操作而不是null的主要优点是,大多数情况下,此类对象仍然可以在代码中工作而无需进一步修改.从本质上来说,空值更容易出错. 请使用以下代码,例如: String ...

最新文章

  1. postfix邮件安装配置文档
  2. 浅谈lastIndexOf
  3. nginx多站点配置,以及隐藏index.php
  4. Java 里的 abstract 和 final 关键字
  5. 性能测试真如你想象的那么简单?
  6. 对 Java 集合的巧妙利用
  7. XMLHttpRequest发送XML请求
  8. neo4j python可视化_Python使用py2neo操作图数据库neo4j的方法详解
  9. 利润表模板excel_财务EXCEL必修课 (20小时)
  10. win10添加开机启动项_Win10+Deepin双系统开启启动项调整
  11. python编程,毫秒级延时的一种实现方式
  12. 阿里云域名注册优惠口令和续费优惠口令(更新)
  13. 内网端口映射详解(花生壳)
  14. JavaScript高级程序设计(第4版)学习随笔【第五章】
  15. ERROR: Failed building wheel for inplace-abn
  16. vue在创建项目时不小心选上代码校验选项(linter/ESlint)后,如何关掉?
  17. 如何去除谷歌的人机身份验证
  18. c语言实现矩阵行初等变换
  19. foxmail接收邮件时提示RPC服务器不可用。错误代码:0x000006BA
  20. HART协议基础知识

热门文章

  1. 《工作型PPT设计之道》培训心得
  2. 如何 珍惜自己和珍重别人。珍惜一切
  3. 农民伯伯 谈 接口 [interface]
  4. (数字IC)低功耗设计入门(五)——RTL级低功耗设计(续)
  5. 判断字符串是只是数字
  6. ssh client 报 algorithm negotiation failed的解决方法
  7. td中使用overflow:hidden; 无效解决方案
  8. bat写的自动部署脚本
  9. 4.1 Zend_Config
  10. 几种常用 css3 选择器解释