在java中,将String类型字符串s赋值为null后,将字符串与其他字符串拼接后得到结果出现了null字符串与其他字符连接的样式

String s = null;

s  += "hello";

System.out.println(s);

结果为:nullhello

原因:

先应用String.valueOf 得出s的value值,再通过StringBuilder拼接hello,因此将value与hello进行了拼接;

String s = null;
s = (new StringBuilder(String.valueOf(s))).append("hello").toString();
System.out.println(s);

时间: 2024-10-24 06:08:18

在java中,将String类型字符串s赋值为null后,将字符串与其他字符串拼接后得到结果出现了null字符串与其他字符连接的样式的相关文章

java 中的String类型

java 中的String类型   (1)String类型的数据可以表示所有的数据类型. (2)String中的字符串常量与一般的字符串:                String str0 = "hello";//字符串常量“hello”被预先放到了数据段的字符串常量池中                String str1 = "hello";//直接从常量池中寻找已有的字符串常量                String str2 = new String

java中关于String 类型数据 的存储方式

Constant Pool常量池的概念: 在讲到String的一些特殊情况时,总会提到String Pool或者Constant Pool,但是我想很多人都不太 明白Constant Pool到底是个怎么样的东西,运行的时候存储在哪里,所以在这里先说一下Constant Pool的内容. String Pool是对应于在Constant Pool中存储String常量的区域.习惯称为String Pool,也有人称为 String Constant Pool.好像没有正式的命名?? 在java编

Java中的String类型

1.基本类型和引用类型 在C语言里面,是有指针这么一个变量类型的,指针变量保存的就是所要指向内容的地址.在Java里面,没有了指针的这么个说法,而是换了一个词:引用类型变量. 先说Java里面的基本类型,所谓基本类型,很简单,就是一个数字,一个字符或一个布尔值,数字里面包含整型.浮点型等,没有什么好说的. 再说这个引用类型,他的概念就很像指针了.引用变量的值指向内存空间的引用,就是C中的地址,所在这个地址里面的内容就是要被他引用的对象. 2.String就是一个引用类型 大多数时候,我们在用St

java中的String类型(不知道理解的好不,请教大神)

当执行String a = "abc"; 时候(前提条件是:执行这行代码之前在常量池中没有abc,若有,a直接引用在常量池中abc不在创建一个对象,若无,执行下面的描述) java虚拟机会在栈中创建char型的值'a','b','c',然后在堆中创建一个String 对象,它的值(value)是刚才在栈中创建的三个char类型值组成数组{'a','b','c'},最后这个新创建的String 对象会被添加到字符串池中. String b = new String("abc&q

Java中关于String类型的10个问题

1. 如何比较两个字符串?用“=”还是equals 简单来说,“==”是用来检测俩引用是不是指向内存中的同一个对象,而equals()方法则检测的是两个对象的值是否相等.只要你想检测俩字符串是不是相等的,你就必须得用equals()方法. 如果你知道“字符串保留(string intern)”的概念那就更好了. 2. 为什么安全敏感的字符串信息用char[]会比String对象更好? String对象是不可变的就意味着直到垃圾回收器过来清扫之前它们都不会发生变化的.用数组的话,就可以很明确的修改

关于JAVA中的String类型的总结

因为前几天在贴吧里看到有人问了一道面试题: 原题地址:http://tieba.baidu.com/p/3479790275?pid=61955018493&cid=0#61955018493 1 public class StringTest { 2 3 public static void change(String str){ 4 str = "bbb"; 5 } 6 7 8 public static void main(String[] args){ 9 String

我说精通字符串,面试官竟然问我 Java 中的 String 有没有长度限制?

String 是 Java 中很重要的一个数据类型,除了基本数据类型以外,String 是被使用的最广泛的了,但是,关于 String,其实还是有很多东西容易被忽略的. 就如本文我们要讨论的问题:Java 中的 String 有没有长度限制? 这个问题要分两个阶段看,分别是编译期和运行期.不同的时期限制不一样. 01 编译期 首先,我们先来合理的推断一下,当我们在代码中使用 String s = ""; 的形式来定义 String 对象的时候,"" 中字符的个数有没

Java中的String与常量池

string是java中的字符串.String类是不可变的,对String类的任何改变,都是返回一个新的String类对象.下面介绍java中的String与常量池. 1. 首先String不属于8种基本数据类型,String是一个类类型. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null: 3. String str=”k

Java中与String有关的且不得不说的事

如果以下有与Java堆栈和JVM常量池有关的可以访问下面的连接 Java当中的堆与栈详细解析 JVM中的常量池解析 前期记得自己学习编程语言的时候,只要能写出代码就可以.编程语言不就是写程序的吗?自己报着这种目的性很强的心态去学习,忽略了其中的精彩部分,学完C++之间学Java感觉Java中的String和C++中的没有什么区别,都是能存储大小随意变化的字符串. 如:String s="12345"; s  = "0";如果是字符串数组的话那就不,感觉很方便很好用.

深刻理解Java中的String、StringBuffer和StringBuilder的区别

首先简单地来梳理一下Java中String.StringBuffer和StringBuilder各自的含义. 1.String类 首先,它是线程安全的,即可以用于多线程编程中: 其次,String类的对象是不可变的,即在定义时就确定了,类似String str="Hello";str+="Java";的语句其实是生成了新的对象,只是我们未察觉到而已.但是注意在大量的字符串新建对象时消耗就很可观,这时必须考虑采用StringBuffer或StringBuilder,否