zoukankan      html  css  js  c++  java
  • Java 学习(六)

    Java 学习(六)

    标签(空格分隔): Java


    枚举

    JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。

    用法一:常量
    在JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。

    public enum Color {  
      RED, GREEN, BLANK, YELLOW  
    }  
    

    String、StringBuffer、StringBuilder

    String的值是不可变的,每次对String的操作都会生成新的String对象,不仅效率低,而且耗费大量内存空间。

    StringBuffer类和String类一样,也用来表示字符串,但是StringBuffer的内部实现方式和String不同,在进行字符串处理时,不生成新的对象,在内存使用上要优于String。

    StringBuffer默认分配16字节长度的缓冲区,当字符串超过该大小时,会自动增加缓冲区长度,而不是生成新的对象。

    StringBuffer不像String,只能通过new来创建对象,不支持简写方式,例如:

    
    

    StringBuffer类的主要方法:
    StringBuffer类中的方法主要偏重于对于字符串的操作,例如追加、插入和删除等,这个也是StringBuffer类和String类的主要区别。实际开发中,
    如果需要对一个字符串进行频繁的修改,建议使用StringBuffer。
    (1)append()方法
    append()方法用于向当前字符串的末尾追加内容,类似于字符串的连接。调用该方法以后,StringBuffer对象的内容也发生改变。

    StringBuilder类:
    StringBuilder类和StringBuffer类功能基本相似,方法也差不多,主要区别在于StringBuffer类的方法是多线程安全的,而StringBuilder不是线程安全的,相比而言,StringBuilder类会稍微快一点。
    StringBuffer、StringBuilder、String中都实现了CharSequence接口。
    CharSequence是一个定义字符串操作的接口,它只包括length()、charAt(int index)、subSequence(int start,int end)这几个API。
    StringBuffer、StringBuilder、String对CharSequence接口的实现过程不一样,

    总结:
    String直接实现了CharSequence接口,StringBuilder和StringBuffer都是可变的字符序列,它们都继承于AbstractStringBuilder,实现了CharSequence接口。
    总结
    线程安全:
    StringBuffer:线程安全
    StringBuilder:线程不安全
    速度:
    一般情况下,速度从快到慢为StringBuilder>StringBuffer>String,当然这是相对的,不是绝对的。
    使用环境:
    操作少量的数据使用String。
    单线程操作大量数据使用StringBuilder。
    多线程操作大量数据使用StringBuffer。

    https://blog.csdn.net/android_jiangjun/article/details/52160574

  • 相关阅读:
    知乎神回复:代码之间为什么要加空格?这个问题我是这样理解的!
    经验分享:一个 30 岁的人是如何转行做程序员,进入IT行业的?
    对于程序员来说,学历真的重要吗?为何都是高学历混的风生水起?
    教材、教参、教案有哪些区别?
    教参是什么
    教师面试指要
    教师资格证结构化面试是什么?会怎么考查?
    教师资格证面试试讲时可以戴手表吗
    讲师面试流程及试讲指导
    教师资格面试:试讲和说课的区别
  • 原文地址:https://www.cnblogs.com/hit-zb/p/11185186.html
Copyright © 2011-2022 走看看