Java面试题-未被初始化的字符串打印出“null”的问题的分析
来源:互联网 发布:圣诞唱诗班歌曲知乎 编辑:程序博客网 时间:2024/05/16 01:31
一个为null的字符串被println出来会是什么呢。
public static void main(String[] args) {String s = null;System.out.println(s+"aaaa");}输出是“nullaaaa” 这是为什么呢,String未被初始化是不可能成为“null”的,因为它是null的。 翻看了一下PrintStream,发现在他打印的时候做了马脚,源码是这样子的
public void print(String s) { if (s == null) { s ="null";}write(s);}还有一个附加的问题是如果打印s+s会发生什么情况,两个null变量相加被打印,首先执行的是相加,查看反编译的Java代码知道是执行了StringBuilder的append方法,我们查看源码
public AbstractStringBuilder append(String str) { if (str == null) str ="null"; int len = str.length(); ensureCapacityInternal(count + len); str.getChars(0, len, value, count); count += len; return this;}发现一样对null的字符串进行了特殊的处理
阅读全文
0 0
- Java面试题-未被初始化的字符串打印出“null”的问题的分析
- 《剑指Offer》面试题:按字典序打印出该字符串中字符的所有排列
- 面试题 背包问题的具体应用 打印出对应的序号
- JAVA面试题的问题
- java 面试题 打印出九九乘法表
- 【Java面试题】HashMap中插入null key的过程
- JAVA经典面试题---字符串的处理
- java面试题的字符串逆序输出
- java面试题:字符串的反转
- java 字符串初始化=“” 和=null的区别
- java 字符串初始化=“” 和=null的区别
- Java中字符串定义,初始化,赋值为null的区别
- 面试题:this、super、以及程序初始化的顺序问题
- 关于一道java面试题的分析
- 一道经典的java面试题分析
- 面试题精选(61):打印可能的出栈序列
- 输入一个n,在屏幕上打印出N*N的矩阵(华为面试题)
- 笔试题&面试题:输入一个维度,逆时针打印出一个指定的矩阵
- Redis 各类型常用方法与 运用场景
- Tiny C语言编译程序之语法分析Parser
- 【Web】CSS3动画效果制作
- 初次接触Markdown
- 第6章 过滤器
- Java面试题-未被初始化的字符串打印出“null”的问题的分析
- LeetCode 485. Max Consecutive Ones
- ScrollView嵌套下ListView或ExpandableListView的高度自适应
- PHP分页+Elasticsearch查询
- 使用TextRank算法为文本生成关键字和摘要
- python 对象与类
- AFNetWorking 网络错误码大全
- Nginx配置详解
- C++搜索与回溯算法之素数环问题