String的一个容易迷惑的地方

       String的一个容易迷惑的地方:"hello"直接量和new String("hello")区别:

       当Java程序直接使用形如"hello"的字符串直接量时,JVM将会使用常量池来管理这些字符串;当使用new String("hello")时,JVM会先使用常量池来管理"hello"直接量,在调用String类的构造方法来创建一个新的String对象,新创建的String对象呗保存在堆内存中。换句话说new String("hello")一共产生了两个对象。

      常量池(constant pool)专门用于管理在编译期被确定并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口中的常量,还保存字符串常量。

 

       String类对象称为不可变字符串。如果想改变String,首先提取需要的子串,然后再拼接上需要替换的字符串。

       String greeting=“Hello”;

       greeting=greeting.substring(0,3)+"p!";//将Hello改为Help!    

 

 

      当讲一个字符串与一个非字符串的值进行拼接时,后者被转换成字符串。(注意:任何一个Java对象都可以转换成字符串)。

      例如:int age=13;

                String rating="PG"+age;   //rating="PG13"

              

                System.out.println("The answer is"+answer);

 

       检测两个字符串是否相等:equals()   返回true或false      例:“Hello”.equals(greeting)

       检测两个字符串是否相等,而不区分大小写:equalsIgnoreCase()    例:"Hello".equalsIgnoreCase("hello");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值