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

本文共 4406 字,大约阅读时间需要 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/

    你可能感兴趣的文章
    Mysql 索引问题集锦
    查看>>
    Mysql 纵表转换为横表
    查看>>
    mysql 编译安装 window篇
    查看>>
    mysql 网络目录_联机目录数据库
    查看>>
    MySQL 聚簇索引&&二级索引&&辅助索引
    查看>>
    Mysql 脏页 脏读 脏数据
    查看>>
    mysql 自增id和UUID做主键性能分析,及最优方案
    查看>>
    Mysql 自定义函数
    查看>>
    mysql 行转列 列转行
    查看>>
    Mysql 表分区
    查看>>
    mysql 表的操作
    查看>>
    mysql 视图,视图更新删除
    查看>>
    MySQL 触发器
    查看>>
    mysql 让所有IP访问数据库
    查看>>
    mysql 记录的增删改查
    查看>>
    MySQL 设置数据库的隔离级别
    查看>>
    MySQL 证明为什么用limit时,offset很大会影响性能
    查看>>
    Mysql 语句操作索引SQL语句
    查看>>
    MySQL 误操作后数据恢复(update,delete忘加where条件)
    查看>>
    MySQL 调优/优化的 101 个建议!
    查看>>