博客
关于我
Java学习笔记——java基础类库
阅读量:761 次
发布时间:2019-03-23

本文共 4474 字,大约阅读时间需要 14 分钟。

Java基础类API解析

StringBuffer类

含义

StringBuffer类是在Java中用来进行字符串操作的一类,类似于String类,但它的内容是可以被修改的。与其他语言中的字符串类不同,Java中的String类对象是不可变的,因此在需要对字符串内容进行修改时,可以选择使用StringBuffer类。

主要特点

  • 线程安全性:StringBuffer类的方法都带有synchronized标签,保证了在多线程环境下可以安全地进行字符串操作。
  • 内容可修改性:与String类不同,StringBuffer类允许对其内容进行修改,支持append、insert、delete等操作。
  • 构造方式的多样性:StringBuffer类提供两种构造方式:
    • public StringBuffer();(默认构造方式,内容为空)
    • public StringBuffer(String str);(接受初始化字符串内容)
  • 功能特点

  • 字符串追加:通过append()方法可以对字符串进行追加操作,支持多种数据类型的追加。
  • 插入操作:通过insert(int offset, 数据类型 b)方法可以在指定位置插入数据。
  • 删除操作:通过delete(int start, int end)方法可以删除指定范围的数据。
  • 字符串反转:通过reverse()方法可以对字符串进行反转。
  • 与String类的转换:StringBuffer类可以通过toString()方法将其转换为String类,并且String类也可以通过StringBuffer构造方法或append()方法转换为StringBuffer类。
  • 使用示例

    public class StringBufferdemo {
    public static void main(String[] args) {
    StringBuffer buf = new StringBuffer("Hello ");
    change(buf);
    System.out.println(buf);
    }
    public static void change(StringBuffer buf) {
    buf.append(" World !!");
    }
    }

    String、StringBuffer、StringBuilder的区别

  • String类

    • 内容不可修改,字符串常量是不可变的。 -java.lang.String类实现了CharSequence接口,是字符串操作的首选类型。 -使用 + 运算符进行字符串运算时,隐含调用了StringBuffer类的append()方法。
  • StringBuffer类

    • 内容可修改,是线程安全的字符串类。 -实现了CharSequence接口。 -适用于需要对字符串进行频繁修改的场景,避免使用麻烦的 + 运算符。
  • StringBuilder类

    • 内容可修改,不是线程安全的类|.
    • 和StringBuffer类相比,性能更优,方法调用次数更少。
    • 适用于需要频繁修改字符串内容的非线程安全场景。
  • CharSequence接口

    含义

    CharSequence接口用于描述字符串结构,主要通过以下三个特点进行描述:

  • 提供获取字符的方法:char charAt(int index)
  • 提供获取字符串长度的方法:int length()
  • 提供截取子字符串的方法:CharSequence subSequence(int start, int end)
  • 常见实现

  • String类
  • StringBuffer类
  • StringBuilder类
  • 使用示例

    public class JavaAPIDemo {
    public static void main(String[] args) {
    CharSequence str = "www.asd.asd";
    CharSequence sub = str.subSequence(4, 7);
    System.out.println(sub);
    }

    AutoCloseable接口

    含义

    AutoCloseable接口是在Java SE 7中引入的接口,定义了资源自动关闭的机制。该接口默认提供了一个 close() 方法,通过实现该方法可以进行资源的自动释放。在使用AutoCloseable接口实现的资源时,可以通过try-with-resources语法进行资源处理,Java会自动调用close()方法。

    示例

    public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
    try (MemberCleaning mc = new MemberCleaning()) {
    // 相关代码块
    } catch (Exception e) {
    // Exception处理
    }
    }

    Runtime类

    含义

    Runtime类描述了JVM的运行时状态,是JVM中唯一的负责运行时管理的类。Runtime类通过单例设计模式提供实例化,可以通过Runtime.getRuntime()方法获取实例。

    主要功能

  • 获取内存信息
    • maxMemory():获取Jvm最大可用内存
    • totalMemory():获取Jvm总内存
    • freeMemory():获取空闲内存
  • 内存管理
    • gc():手动执行垃圾回收
  • 多核处理
    • availableProcessors():获取可用处理器数
  • 示例

    public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
    Runtime run = Runtime.getRuntime();
    System.out.println("MAX_MEMORY = " + run.maxMemory());
    System.out.println("TOTAL_MEMORY = " + run.totalMemory());
    System.out.println("FREE_MEMORY = " + run.freeMemory());
    }

    System类

    含义

    System类是Java中的系统级别方法集合,主要功能包括:

  • 系统时间管理
    • currentTimeMillis():获取当前时间戳
    • currentTimeSeconds():获取当前时间(秒)。((`)
    • currentTimeNanoseconds():获取当前时间(纳秒)。
  • 文件操作
    • arraycopy(Object src, int srcPos, Object dest, int destPos, int length);:数组复制方法
  • 常用方法

  • 数组拷贝System.arraycopy(src, srcPos, dest, destPos, length)
  • 垃圾回收System.gc()
  • 时间统计System.currentTimeMillis()
  • 示例

    public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
    long start = System.currentTimeMillis();
    String str = "";
    for (int x = 0; x < 30000; x++) {
    str += x;
    }
    long end = System.currentTimeMillis();
    System.out.println("操作耗时: " + (end - start));
    }

    Cleaner类

    含义

    Cleaner类是Java 9中引入的对象清理接口,用于在对象回收前执行自定义的清理操作。与传统的finalize()方法相比,Cleaner提供了更加现代化的处理方式。Cleaner类支持通过AutoCloseable接口实现资源的自动关闭。

    示例

    import java.lang.ref.Cleaner;
    public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
    try (MemberCleaning mc = new MemberCleaning()) {
    // 相关代码块
    } catch (Exception e) {
    }
    }

    对象克隆

    含义

    对象克隆是指创建一个新对象,其内容与原对象完全相同。Java中通过Object类的clone()方法实现对象克隆。需要注意的是,只有实现Cloneable接口的类才能真正进行克隆操作。

    示例

    public class JavaAPIDemo {
    public static void main(String[] args) throws Exception {
    Member memberA = new Member("小强", 28);
    Member memberB = (Member) memberA.clone();
    System.out.println(memberA);
    System.out.println(memberB);
    }

    Member类

    class Member implements Cloneable {
    private String name;
    private int age;
    public Member(String name, int age) {
    this.name = name;
    this.age = age;
    }
    @Override
    public String toString() {
    return "【" + super.toString() + "】name = " + this.name + "、age = " + this.age;
    }
    @Override
    protected Object clone() throws CloneNotSupportedException {
    return super.clone();
    }
    }

    通过以上内容可以看出,Java中的API提供了丰富的功能,涵盖了字符串操作、内存管理、文件操作、多线程、资源管理等多个方面。熟悉这些类及其使用方法对于Java程序开发至关重要。在实际开发中,根据具体需求选择合适的API可以提高开发效率并优化程序性能。

    转载地址:http://cpnzk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现是否为 Pythagoreantriplet 毕氏三元数组算法(附完整源码)
    查看>>
    Objective-C实现显示响应算法(附完整源码)
    查看>>
    Objective-C实现晚捆绑测试实例(附完整源码)
    查看>>
    Objective-C实现普通矩阵A和B的乘积(附完整源码)
    查看>>
    Objective-C实现更新数字指定偏移量上的值updateBit算法(附完整源码)
    查看>>
    Objective-C实现最大类间方差法OTSU算法(附完整源码)
    查看>>
    Objective-C实现最大非相邻和算法(附完整源码)
    查看>>
    Objective-C实现最小二乘多项式曲线拟合(附完整源码)
    查看>>
    Objective-C实现最小路径和算法(附完整源码)
    查看>>
    Objective-C实现最快的归并排序算法(附完整源码)
    查看>>
    Objective-C实现最长公共子序列算法(附完整源码)
    查看>>
    Objective-C实现最长回文子串算法(附完整源码)
    查看>>
    Objective-C实现最长回文子序列算法(附完整源码)
    查看>>
    Objective-C实现最长子数组算法(附完整源码)
    查看>>
    Objective-C实现最长字符串链(附完整源码)
    查看>>
    Objective-C实现最长递增子序列算法(附完整源码)
    查看>>
    Objective-C实现有限状态机(附完整源码)
    查看>>
    Objective-C实现有限状态自动机FSM(附完整源码)
    查看>>
    Objective-C实现有限集上给定关系的自反关系矩阵和对称闭包关系矩阵(附完整源码)
    查看>>
    Objective-C实现朴素贝叶斯算法(附完整源码)
    查看>>