java笔记Day09

StringBuffer类

  • 创建StringBuffer类

    创建必须使用new关键字

    StringBuffer sbf = new StringBuffer();//无初始值
    StringBuffer sbf = new StringBuffer("abc");//初始值"abc"
    StringBuffer sbf = new StringBuffer(32);//初始容量为32个字符
    
  • append()方法

    append()方法可将参数转换成字符串,然后追加到此序列中。

    sbf.append(obj);

  • setCharAt(int index,char ch)方法

    将给定索引处的字符修改为ch。

    sbf.setCharAt(index,ch)

  • insert(int offset,String str)方法

    将字符串str插入到指定的索引值offset位置上。

    sbf.insert(offset,str)

  • delete(int start,int end)方法

    可移除此序列的子字符串中的字符。该字符串是从指定的索引start开始,一直到索引end-1处,如果end-1超过最大索引范围,则一直到序列尾部。如果start等于end,则不发生任何更改。

    sbf.delete(start,end)

  • 其他方法

    public class StringBufferTest {
        public static void main(String[] args) {
            StringBuffer sbf = new StringBuffer("ABCDEF");//创建字符串序列
            System.out.println("sbf的原值为:"+sbf);//输出原值
            int length = sbf.length();//获取字符串长度
            System.out.println("sbf的长度:" + length);//输出长度
            char chr = sbf.charAt(5);//获取索引为5的字符
            System.out.println("索引为5的字符为:"+ chr);//输出索引为5的字符
            int index = sbf.indexOf("DEF");//获取字符串为DEF的索引位置
            System.out.println("DEF字符串的索引位置为:" + index);
            String substr = sbf.substring(0,2);//截取索引从0到2的字符串
            System.out.println("索引0开始至2之间的字符串:" + substr);
            StringBuffer tmp = sbf.replace(2,5,"1234");//替换字符串
            System.out.println("替换后的字符串为:" + tmp);
        }
    }
    

StringBuffer与String的不同之处

String只能赋值一次,每一次内容发生改变都生成了一个新的对象,然后原有对象引用新对象。所以说String本身是不可改变的。每一次改变String的字符串内容,都会在内存创建新的对象,而每一次生成新对象都会对系统性能产生影响,降低java虚拟机的效率。

StringBuffer不同,每次都是操作自身,而不是生成新对象,其所占空间会随字符内容增加而扩充,做大量的修改操作,不会因生成大量匿名对象而影响系统性能。

Java常用类

  • 包装类

    Java把8个基本数据类型包装成相应的类,这样就可以通过调用各自包装类中许多实用的方法。

    • Integer类

      java.lang包中的Byte类、Integer类、Short类和Long类分别是基本数据类型byte、int、short、long的包装类,由于上述4个包装类都是Number的子类,且都是对整数进行操作,所以上述4个包装类包含的方法也基本相同。以Integer类为例如下:

      1.构造方法

      ​ Integer类有以下两种构造方法。

      Integer(int number)

      Integer number = new Integer(7);

      Integer(String str)

      Integer number = new Integer("45");

      ​ 使用字符串变量创建Integer对象,字符串变量的值必须是数值型的(如“123”),否则会报NumberFormatException异常。

      2.常用方法

      Integer常用方法

      /*
      Integer类常用方法例子
       */
      public class Demo {
          public static void main(String[] args) {
              int num = Integer.parseInt("456");//通过字符串转换为int类型
              Integer iNum = Integer.valueOf("456");//通过构造函数创建一个Integer对象
              System.out.println("int数据与Integer对象比较:" + iNum.equals(num));
              String str2 = Integer.toBinaryString(num);//二进制
              String str3 = Integer.toHexString(num);//十六进制
              String str4 = Integer.toOctalString(num);//八进制
              String str5 = Integer.toString(num,15);//十五进制
              System.out.println("456的二进制表示为:" + str2);
              System.out.println("456的十六进制表示为:" + str3);
              System.out.println("456的八进制表示为:" + str4);
              System.out.println("456的十五进制表示为:" + str5);
          }
      }
      

      3.常量

      Integer类提供了以下四个常量:

      ​ MAX_VALUE:表示int型可取的最大值

      ​ MIN_VALUE:表示int型可取的最小值

      ​ SIZE:用来以二进制补码形式表示int值得位数

      ​ TYPE:表示基本类型int得Class实例。

    • Number类

      Number类是一个抽象类,它是Byte类、Integer类、Short类、Long类、Float类和Double类的父类。

      要把Number类的子类对象转换为对应基本数据类型,需要使用Number类对应子类中的方法。

      byteValue() 返回值byte
      intValue()	返回值int
      floatVaue()	返回值float
      shortValue()返回值short
      longValue()	返回值long
      doubleValue()返回值double
      
  • Math类

    Math类表示数学类,Math类中的数学方法都被定义为static形式,所以在程序中可以直接通过Math类的类名调用某个数学方法,语法格式如下:

    Math.数学方法

    Math类中还存在一些数学常量

    Math.PI圆周率

    Math.E自然对数底数e

    常用数学运算方法

  • Random类

    java.util包提供了Random类,通过实例化一个Random类对象可以创建一个随机数生成器。

    Random r = new Random();

    Random提供了生成各种数据类型随机数的方法

    nextInt()  返回随机intnextInt(int n) 返回大于或等于0小于n的随机int型值
    nextLong()返回随机longnextBoolean()返回随机BooleannextFloat()返回一个随机floatnextDouble()返回一个随机doublenextGaussian()返回一个概率密度为高斯分布的double型值
    
  • Data类

    java.util包中提供了Date类来处理日期和时间。使用Date类需要先创建Date类对象,Date类的构造方法及说明如表

    构造方法功能描述
    Date()分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)
    Date(long date)分配Date对象并初始化此对象,以表示自从标准基准时间(即1970年1月1日00:00:00GMT)以来的指定毫秒数
    long timeMillis = System.currentTimeMillis();//获取系统当前时间距基准时间的毫秒数。
    Date date = new Date(timeMillis);
    
    方法返回值功能描述
    after(Date when)boolean测试当前日期是否在指定日期之后
    before(Date when)boolean测试当前日期是否在指定日期之前
    getTime()long获得基准时间开始 到现在所表示的毫秒数
    setTime()void设置当前Date对象所表示日期时间值,该值用以表示基准时间以后time毫秒的时间点

    为了将时间显示为”2021-03-02“或者”14:25:43“的格式,java.text包中提供了DateFormat类,按照指定格式对日期或者时间进行格式化。DateFormat提供了四种默认的格式化风格。

    SHORT:完全为数字,如12.13.52或3:30pm

    MEDIUM:较长,如Jan 12,1952

    LONG:更长,如January 12,1952或3:30:42pm

    FULL:完全指定,如Tuesday、April 12、1952AD或3:30:45pm PST

    使用DateFormat类还可自定义日期、时间的格式。首先创建DateFormat类对象。由于DateFormat类是抽象类,因此需要使用DateFormat类的静态方法getDateInstance()创建DateFormat对象

    DateFormat df = new DateFormat.getDateInstance();

    DateFormat类常用方法

    方法返回值功能描述
    format(Date date)String将一个Date格式化为日期/时间字符串
    getCalendar()Calendar获取与此日期/时间格式器关联的日历
    getDateInstance()static DateFormat获取日期格式器,该格式器具有默认语言环境的默认格式化风格
    getDateTimeInstance()static DateFormat获取日期/时间格式器,该格式器具有默认语言环境的默认格式化风格
    getInstance()static DateFormat获取SHORT风格的默认日期/时间格式器
    getTimeInstance()static DateFormat获取时间格式器,该格式器具有默认语言环境的默认格式化风格
    parse(String source)Date将字符串解析成一个日期,并返回这个日期的Date对象

枚举类型

枚举类型常用于设置常量。传统常量在实际开发过程中习惯性被定义在接口中。例如,创建接口Constants,在Constants中定义两个常量Constants_A,Constants_B。

public interface Constants{
	public static final int Constants_A = 1;
	public static final int Constants_B = 12;
}

由于枚举类型是一种数据类型,而且被视为以系列具有名称的常量的集合,所以被赋予了在程序编译时检查数据类型的功能,使得枚举类型定义的常量逐渐取代了传统常量。使用枚举类型定义常量的语法如下:

public enum Constants{
	Constants_A;
	Constants_B;
}

其中,enum是定义枚举类的关键字。在程序中可以通过Constants.Constants_A的方式使用枚举类型常量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值