java 单例模式、包、String

1.单例模式:

                一个类就只生成一个对象。

实现方式   例如:

public class SingleModle
{
     public static void main(String[] args)
     {
      P p = P.getInstance();
     }
}

class P
{
 private static P p = new P();
 private P()
 {
 }

 public static P getInstance()
 {
  return p;
 }
}

这里就只有一个对象。

2.包:

个人理解:相当于创建了一个文件夹,里面可以有很多程序。用于将不同功能的类放在不同的目录下面。分门别类。

3.String类

         String a = new String("hello world");

         String b = new String("hello world");

         a   != b

         原因:a,b是引用,就是所谓的地址,这是两个不同的对象,当然不相等。

         String  a = "hello";

         String  b = "hello";

          a == b;

          原因:这里只有一个对象,涉及到一个字符串池的概念(String pool),这种方式创建对象的时候是放在内存的上的,当第一个a申请的时候就查找池中有没有这个字符串,如果没有就在栈上创建,如果有了就返回该地址赋值给:例如上例中的b。

        String a = new String("hello world");

        String b = "hello world";

        a != b;

        原因:a是返回的上面的地址,而b是返回的上面的地址,申请a的时候在堆栈上都有一个对象,也就是有两个对象,而b查找pool中有没有这个字符串,查找到了,也就是这里的b就相当于前面String在栈上的对象的地址。

        a = “hello”;

        b = " world";

        a = a + b;

        第三行就创建了新的对象。不是尾部接上的。也就是说它不能被改变,就改变了,就成了新的对象了。

4.StringBuffer类。

       和String类的区别在于它可以追加字符串。例如:

       StringBuffer  a = new StringBuffer();

       a.append("hello").append(" world").append("!!!!!!!!!")....;

       返回的还是同一个对象,

       转换成String可以用a.toString();

      a.append(100);

      它的输出结果就是100,只不过这个100是字符串,输入浮点型,false,true等都给转换成字符串。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值