java单例与StringBuffer类详解

java单例与StringBuffer类详解

java单例

单实例--设计模式(思想)
 核心:在整个程序执行期间 有且只有一个该类的对象存在
 如何写:
 1.不让外界 来创建对象
 2.让这个对象 由我来创建(不能让外界访问)
 3.需要对外开放访问这个对象的方法

 //饿汉式 单例
 class Single{
     //创建单例对象 随着类的加载而创建这个对象
     private static Single single = new Single();
         //私有化构造方法
         private Single(){
         }
         //对外开放一个访问这个对象的方法
         public static Single getInstance(){
             retun single;
         }
 }
 //懒汉式 单例(只有你调用获取对象的方法 才有可能去创建对象)
 //延迟加载 (懒加载)
 class Singlelan{
     //创建单例对象的引用
     private static Single single = null;
         //私有化构造方法
         private Single(){
         }
         //判断 如果没有这个对象 再创建 有就不再创建
         public static Singlelan getInstance(){
             if(singlelan == null){
             singlelan = new Singlelan();
             }
             return singlelan;
         }
 }

java–StringBuffer类

StringBuffer(字符串缓冲区)
jdk1.5 有StringBuilder(线程不安全 省资源)
特点:
1.StringBuffer 相当于是一个 可变的序列(操作的是原字符)
2.线程安全(耗费资源)

  StringBuffer 和 StringBuilder的区别
  StringBuffer 线程安全 效率低(耗费系统资源)
  stringBuilder 线程不安全 效率高(相对于StringBuffer耗费资源)
  StrinBuffer 和 StringBuilder 使用方法一样


  String 和 StringBuffer的区别
  String 是不可变的 线程不安全的
  StringBuffer 是可变的 操作的是对象本身

 String 和 StringBuffer 作为方法的参数的区别
 字符串作为参数时候 跟基本数据类型作为参数一样  相当于是 值的传递
 StringBuffer作为参数的时候 跟引用数据类型一样 相当于是 地址的传递

StringBuffer类中的方法

1.无参创建StringBuffer
public static void fun1(){
    StringBuffer sb = new StringBuffer();
    //获取容量 默认值是16
    sb.capacity();
    //获取长度
    sb.length();
    //转换成字符串
    sb.toString();
    //拼接字符串
    sb.append("lanou").append("100");
}

2.插入和修改
public static void fun2(){
    //使用字符串创建StringBuffer
    StringBuffer sb = new StringBuffer("csdnboke");
    //插入一个字符 把字符插入到索引的位置上
    sb.insert(3,'x');
    //把索引位置的字符进行 修改(替换)
    sb.setCharAt(6,'k')
    //传入角标 返回字符
    char c = sb.charAt(7);
    //将Buffer先变成字符串 然后再变为 字符数组
    char[] charArray = sb.toString.toCharArray();
}

3.删除
public static void fun3(){
    StringBuffer sb = new StringBuffer();
    //拼接字符串
    sb.append("csdnboke");
    //删除(删头不删尾)
    sb.delete(4,100);
    //反转
    sb.reverse()
}

4.替换 截取
public static void fun4(){
    StringBuffer sb = new StringBuffer();
    sb.append("csdnboke");
    //替换所给角标范围内的字符
    sb.replace(0,4,"abcd");
    //截取时,返回的是一个新字符 需要接收
    String substring = sb.substring(4);
    String substring1 = sb.substring(0,4);
}

int和Integer 之间的转换 与 自动装箱和自动拆箱

 1.//创建一个Integer对象
   Integer integer = new Integer(10);
   Integer integer2 = new Integer("100");
   //把int类型转换成Integer类型
   Integer num1 = Integer.valueOf(10);
   //把Integer类型转换成int类型
   int num2 = num1.intValue();
  2.//StringInteger 之间转换
  //字符串转成Integer
  Integer num3 = Integer.valueOf("100");
  //Integer 转成 字符串
  String string3 = num3.toString
  3.jdk1.5 自动装箱 和自动拆箱
  //这样声明 相当于Integer.valueOf(10) 系统会帮你自动装箱 调用这个方法
  Integer num1 = 10;
  //系统会帮你把num1 进行 自动拆箱 转换回 int类型
  int rel = num1 + 5;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值