JAVA笔记 ----- java基础类库

JAVA基础类库

String类

String类在所有开发项目里面都会用到的一个功能类,并且这个类拥有以下特点:

  1. 每一个字符的常量都属于一个String类的匿名对象,并且不可更改;
  2. String类有两个常量池:静态常量池、运行时常量池。
  3. String类对象实例化建议用直接赋值的形式进行完成,这样可以将我们的对象保存在对象池之中,以方便下次的使用。

但是String也有一个很大的弊端,那就是他的内容不允许进行修改。
所以,为了解决这个问题,JAVA专门提供了StringBuffer类,可以实现字符串内容的处理。

String 和 StringBuffer 的对比

  • String类要转化成StringBuffer类,可以使用StringBuffer自带的构造方法。
  • 而所有类对象想要转换成String类,可以使用toString方法,转换为String类;

StringBuffer类有很多String类不具备的方法:

名称使用
增加内容append方法
插入内容insert方法
删除内容delete方法
反转内容reverse方法
  • 与StringBuffer类相似的还有一个 StringBuilder类,它和StringBuffer类功能一样
  • 但是StringBuilder类不是线程安全的,因为它里面的方法没有进行 Synchronized 的修饰,所以数据是不会同步的,所以线程也是不安全的。

String类、StringBuffer类以及StringBuilder类的区别

  • String类是字符串的首选类型,其最大的特点就是内容不允许修改;
  • 而StringBuffer类和StringBuilder类的内容是与允许修改的。
  • StringBuffer类是在JDK1.0开始就有的,属于线程安全类,而StringBuilder类,是在JDK1.5之后才有的,属于线程不安全类。因为其里面的方法,没有被Synchronized进行修饰。

CharSequence接口

  • CharSequence接口是描述字符串结构的接口,一般都有三种结构常用,就上楼上那三个。

在这里插入图片描述

AutoCloseable接口

  • 主要用于以后再资源开发的处理上,实现资源的自动关闭和释放。
  • 因为,我们发现,在资源的开发处理方面,都会有一个关闭的方法,于是干脆就搞了个自动关闭。要配合异常处理一起来使用。
class A implements AutoCloseable{
    public void send(){
        System.out.println("【消息发送】");
    }
    @Override
    public void close() throws Exception {
        System.out.println("【通道关闭】");
    }
}
public class 常用库练习 {
    public static void main(String[] args) throws Exception{
        try(A a = new A()){
            a.send();
        }catch (Exception e){}
    }
}

  • 可以看到,我并没有进行关闭的处理,但是输出的结果,却是有通道关闭的效果,这就是AutoCloseable接口的使用了。
  • 在JDK1.7之后出现的产物,一定要和异常处理绑在一起,才能正常的使用。

Runtime类

在这里插入图片描述

  • 这样看起来就比较直观啦。
  • 由于我们的Runtime类属于我们的单例设计模式,如果想要获取实例化对象,只能使用我们的类中getRuntime()方法进行,因为Runtime类的构造器已经私有化了,所以不能进行实例化,Runtime类是由,我们的JVM进行维护的。
  • 获取实例化的对象:public static Runtime getRuntime();
public class 常用库练习 {
    public static void main(String[] args) throws Exception{
        Runtime ans = Runtime.getRuntime();
        System.out.println(ans.availableProcessors());
    }
}
  • 通过availableProcessors方法,可以获得电脑本机的CPU内核数。

什么是GC?如何处理?

  • GC就是垃圾收集器,是可以由系统自己调用的垃圾释放功能,或者使用Runtime类里面的gc()方法手工调用。

System类

public class 常用库练习 {
    public static void main(String[] args) throws Exception{
        Runtime ans = Runtime.getRuntime();
        long a =System.currentTimeMillis();
        String s = "";
        for(int i=1;i<30000;i++)s += i;
        long b = System.currentTimeMillis();
        System.out.println("操作耗时:" + (b - a));
    }
}
  • 可查看代码耗时。
  • 然后System类里面呢,也有GC方法,但是这个gc方法并不是新的,而是调用了Runtime类里面的gc方法。
  • = Runtime.getRuntime().gc();
  • 是一个这样子的情况,相当于,我们的手工回收了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木木不会

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值