java包装类

java包装类
*1.为什么要有包装类?

  • 1)基本数据类型有需求:调用属性,调用方法等—》包装类;

  • 2)有些场合只能用引用数据类型,这个时候如果要操作基本数据类型,就要把它封装成对象—》包装类;

  • 3)数值类型转换成字符串类型—》包装类;
    *2.包装类—>针对基本数据类型的。

  • 8种基本数据类型—》 8种包装类;

  • *3.包装类:

  • Integer—》int;

  • Double—》double;

  • Byte—》byte;

  • Short—》short;

  • Character—》char;

  • Long—》long;

  • Float—》float;

  • Boolean—》boolean;
    *4.包装类相比于其它类,有一个显著的特点:

  • 自动装箱和自动拆箱

  • Integer n3=1234;//自动装箱;基本数据类型—>引用数据类型;隐式调用Integer n3=new Integer(1234);
    int i=n3+10;//自动拆箱;引用数据类型—>基本数据类型;隐式调用n3.intValue();

          //自动装箱和自动拆箱;
    

    Integer n3=1234;//自动装箱;基本数据类型—>引用数据类型;隐式调用Integer n3=new Integer(1234);
    int i=n3+10;//自动拆箱;引用数据类型—>基本数据类型;隐式调用n3.intValue();
    System.out.println(“i=”+i);
    //Integer和字符串类型的相互转换;
    String str=“123”;//字符串必须是数字格式的,否则会报异常: java.lang.NumberFormatException。
    int a=Integer.parseInt(str);
    System.out.println(a+10); int b=98;
    String str1=String.valueOf(b);
    System.out.println(str1);
    String和StringBuilder类
    String
    /*
    *(1)String s1=“abc”;先去常量池里找,如果"abc"已经存在,就指向它;如果不存在,就创建。

  • String s2=“abc”;

  •            System.out.println(s1==s2);//true;
             System.out.println(s1.equals(s2));//true;
    

(2) String s3=new String(“abc”);在堆内存开辟空间;
String s4=new String(“abc”);

  •            System.out.println(s3==s4);//false
             System.out.println(s3.equals(s4));//true
    

(3)String在底层是一个char类型的数组;

/
/

*String的常用方法;
*(1)字符串是一个【不可变】的字符序列;
*
*1.查:

  • 1)获取某段内容的索引位置:str.indexOf()
  •                str.lastIndexOf();
    
  • 2)获取某个索引位置的内容:str.charAt();
  • 3)str.length();

*2.判断:

  • str.startsWith();
  • str.endsWith();
  • str.contains();
  • str.isEmpty();
  • str.equals();
  • str.equalsIgnoreCase();

*3.比较:

  • str.compareTo();
  • str.compareToIgnoreCase();

*4.改;

  • str.substring();
  • str.replace();
  • str.concat();
  • str.trim();
  • str.toUpperCase();
  • str.toLowerCase();

*5.转换:

  • str.split();
  • str.toCharArray();

/
StringBuilder
/

*StringBuilder:1.底层也是字符数组;

  •          2.是【可变的】字符序列;  
    

*1.String—》StringBuilder

  •    String str="Hello";
     StringBuilder s=new StringBuilder(str);
    

2.最常用方法:
s.append(“Hello”);

3.StringBuilder—》String
String str1=s1.toString();
*
/
/

*StringBuilder的常用方法;
*s.append(“Hello World”);
*s.delete(3, 6);//含头不含尾;
*s.insert(3, “perfect”);
*s.replace(3, 11, “good”);//含头不含尾;
*s.reverse();
*
*
*
*
*/
1.StringBuilder:底层是一个字符数组;
2.StringBuilder : 初始数组长度是固定的;
s.append(str);
每次添加:判断当前数组长度是否能容下添加后的内容;
如果不能:(1)生成一个新的更长的数组;
(2)把旧数组的内容copy到新数组里去;
(3)把数组引用指向新数组;
(4)把新内容添加到新数组里。

3.(1) s.length():数组被占用的长度;
(2) s.capacity():数组的总长度;
*StringBuffer和StringBuilder:
*1.方法相同,可以替换;
*2.StringBuffer早期版本的,StringBuilder后来版本的(jdk1.5);
*3.StringBuffer重安全,轻效率;StringBuilder重效率,轻安全;

  • StringBuffer:synchronized,线程同步;
  • StringBuilder:没有synchronized,线程非同步;
    *4.建议用StringBuilder。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值