String 小结

 一.String 类是一个比较相当重要的类,像网络上很多数据都是以字符串的形式进行处理的,它的构造函数很多,它允许通过其它类型的数组作为构造参数,能很方便的与其他类型数据进行转换.

例如:

String(byte[] bytes) : 通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String

String(byte[] bytes) :  通过使用平台的默认字符集解码指定的 byte 数组,构造一个新的 String

二.对字符串的的一些处理

  对字符串的处理也很方便,可以通过调用方法完成对其的定位,查找,截取,转化,比较,替换等等操作,在此就不举例了,API里对字符串的方法很多很清楚

三.特别注意:

先看下面一个程序:

public class test {

      public static void main(String[] args) { 

           String str  = new String("");

           String dtr1 = "";

           boolean b = str=="";

           boolean b1 = str.equals(dtr1);

           

           System.out.println(b);

           System.out.println(b1);  

      }

}

 以上程序的输出结果是:

false,true

以惯常思维应该是两个true才对,其实仔细分析一下,不难发现里面的不同之处,首先我们应该明确的是String 是一个类,它并不属于8种基本数据类型,而且是一个进过特殊处理的类,一般的类要创建对象是需要new一下的,而对于String类则不然,它既可以new也可以不new,当不new的时候JVM里给它准备了一个特别的‘房间’——常量池,里面存储数据时和集合框架里的Set很相像,不会允许重复,如果上面再有一个变量、str=””,用双等号比较会发现结果是true,这说明此时他们占用同一个地址。说的有点远,现在说一下上面的程序,如果是对于8种基本数据类型,上面的程序结果肯定是两个true,但对于类类型,对于‘==’号,数据识别是通过地址的,而equals是对于两个类的具体数据而言的,所以以上程序的的结果就显而易见了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值