java小白成长记---(12)

常用类 - 01

一. 基本类型包装类
【问】想要对基本类型数据进行更多的操作,怎么办?
【答】最方便的方式就是将其封装成对象。因为在对象描述中就可以定义更多的属性和行为对该基本数据类型进行操作。我们不需要自己去对基本类型进行封装,JDK已经为我们封装好了。
【概念】

  1. 装箱就是自动将基本数据类型转换为包装器类型
  2. 拆箱就是自动将包装器类型转换为基本数据类型
    在这里插入图片描述
    以Integer为例
    在这里插入图片描述
    【示例】
    public class TestInteger {
    public static void main(String[] args) {
    // 属性值
    System.out.println(“Integer类型最大值:” + Integer.MAX_VALUE);
    System.out.println(“Integer类型最小值:” + Integer.MIN_VALUE);
    // 构造方法
    Integer int1 = new Integer(123);
    Integer int2 = new Integer(“123”);
    System.out.println(“构造方法传int参数:” + int1);
    System.out.println(“构造方法传String参数:” + int2);
    // 类型转换
    // 基本类型之间转换
    System.out.println(“Integer转byte类型:” + int1.byteValue());
    System.out.println(“Integer转int类型:” + int1.intValue());
    // 基本类型与字符串之间转换
    System.out.println(“字符串123转成int:” + Integer.parseInt(“123”));
    System.out.println(“字符串123转成Integer:” + Integer.valueOf(“123”));
    // System.out.println(“字符串abc可以转成Integer类型吗?” + Integer.valueOf(“abc”));
    }
    }
    二. 字符串类
    字符串类主要包括String、StringBuilder、StringBuffer。
  3. String
    String类是通过char数组来保存字符串的。char[]数组是final修饰的,所以String类型的变量值不可变。
    String类是final类,也即意味着String类不能被继承,并且它的成员方法都默认为final方法。
    在这里插入图片描述
    【示例】
    public static void main(String[] args) {
    // 不同构造方法声明String变量
    String str1 = “天亮教育”;
    String str2 = new String(“天亮教育”);
    String str3 = “天亮”;
    // 长度:length()
    System.out.print(str1.length() >= str3.length() ? “str1长” : “str3长”);
    // 判断是否以指定字符开头
    if (str1.startsWith(str3)) {
    // str3第一次出现在str1中的位置
    int startIndex = str1.indexOf(str3);
    // 截取子串
    String str1Sub = str1.substring(startIndex, str3.length() - 1);
    String str2Sub = str2.substring(startIndex, str3.length() - 1);
    System.out.println(“两个字符串是否相等:” + str1Sub.equals(str2Sub));
    }
    }
    }
  4. StringBuilder
    既然在Java中已经存在了String类,那为什么还需要StringBuilder和StringBuffer类呢?我们看个例子来分析一下。
    public class StringDemo {
    public static void main(String[] args) {
    String str = “”;
    for(int i=0;i<100;i++){
    str += “hello”;
    }
    }
    }
    分析:
    string += “hello”; 相当于将原有的string变量指向的对象内容取出与 “hello”做字符串相加操作再存进另一个新的String对象当中,再让string变量指向新生成的对象。浪费时间和空间。StringBuilder类为可变字符串,解决String在字符变更方面的低效问题,低层依赖字符数组实现。
    在这里插入图片描述
    String和StringBuilder对比
    都是 final 类, 都不允许被继承
    String 长度是不可变的, StringBuffer长度是可变的
  5. StringBuffer
    StringBuffer类的构造方法和用法与StringBuilder相同,可以认为是线程安全的StringBuilder。

StringBuilder和StringBuffer的对比
StringBuilder速度快,线程不安全的
StringBuffer线程安全的
StringBuffer、StringBuilder 长度是可变的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值