Java中的字符串类型(String)

String

  字符串是一个引用数据类型,字符串都是对象。

  String特性:1、在程序中出现的字符串字面量(常量),在程序中运行时会以对象的形式保存在JVM内存的字符串池中,并且所有的这些字符串字面量对象都是共享的;

    

 

    2、(不变特性)字符串一旦定义就永远不会被改变了;

        不变模式 - 23种设计模式之一;

    

StringBuffer

  StringBuffer - 可变的字符序列,它在日常工作中就是做字符串连接的,线程安全的;

    - appand()方法; StringBuilder 与 StringBuffer 方法相同

  StringBuilder - jdk1.5以后提供的新的类,但线程不安全,效率更高;

总结

  思考:String str = new String("Hello"); //执行完后,会生成几个String类型对象?

               答案:两个对象,一个是字面量生成的,在字符串池中,一个是new出来的,在堆里。这样是很低效率的,所以建议大家不要使用这种方式来生成字符串对象;

 

  日常工作当中,我们几乎不用 == 来比较字符串,通常情况下,我们只关注字符串内容是否相等,而不关注是否是同一对象,所有我们更多的使用String类重写的 Object类中的equals方法 来比较字符串;

               凡是方法中带有String类型返回值的,在运行时都会生成一个新的字符串返回,原有字符串是不会发生任何改变的;

posted @ 2016-08-04 21:13  奔跑的咖啡豆  阅读(1467)  评论(0编辑  收藏  举报