StringBuffer类
概述:我们如果对字符串进行拼接操作即直接通过+号进行连接,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间。而StringBuffer就可以解决这个问题。
线程安全的可变字符序列
StringBuffer和String有何区别?
String是不可变的,但StringBuffer是可变的。
String被声明完成时就已经确定了,就算我们重新给其赋值,也只是重新在字符常量池中创建了一个新的字符串常量,然后再用原来的字符串名称来抓住它。
StringBuffer在进行操作的时候不生成新的对象,所以在内存使用上是要比String更好。并且StringBuffer线程是安全的。
声明方式:
StringBuffer stringbuffer=new StringBuffer();
StringBuffer stringbuffer1new StringBuffer("string");
常用方法
添加功能:
StringBuffer.append(String str)//将str字符串拼接在StringBuffer字符串后面
StringBuffer.insert(int offset,String str)//将str字符串拼接在StringBuffer字符串中的offset位置
删除功能
StringBuffer.deleteCharAt(int index)//删除StringBuffer中的指定位置的字符
StringBuffer.delete(int start,int end)//删除StringBuffer中从start到end处的字符串
替换功能
StringBuffer.replace(int start,int end,String str)//用str字符串替换从start到end处的字符串
反转功能
StringBuffer.reverse()//将StringBuffer中的字符倒序输出
截取功能
StringBuffer.substring(int start)//从start处开始截取StringBuffer中的字符
StringBuffer.substring(int start,int end)//从start开始截取到end处
注:这几种方法中除了截取功能返回值为String外其余返回值均为StringBuffer
StringBuilder类功能和StringBuffer功能完全一致, StringBuffer是线程安全的
String类StringBuffer类StringBuilder区别
String:是字符常量,适用于少量的字符串操作的情况
StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况
StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况
Math类
概述:Math类中提供了一系列静态方法用于科学计算;其方法的参数和返回值类型一般为double型。
常用方法
Math.abs();// 绝对值
Math.sqrt();// 平方根
Math.pow(double a, double b);// a的b次幂
Math.max(double a, double b);//a和b中较大数
Math.min(double a, double b);//a和b中较小数
Math.random();//返回 0.0 到 1.0 的随机数
Math.long round(double a);//double型的数据a转换为long型(四舍五入)
Random类
概述:Random类是用来产生随机数
构造方法:Random()
常用方法:Random. nextInt();//生成一个随机数
Random.nextInt(int n)//生成0-(n-1)的随机数;
System类
概述:系统类,该类中包含一些有用的类字段和方法。它不能被实例化。
常用方法:System.exit(int status)//虚拟机退出
System.currentTimeMillis()//获取从1970年1月1日起到现在的毫秒值,返回值为long类型
Date类
概述:使用Date类代表当前系统时间
构造方法:Date time=new Date()
Calendar类
概述:Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。
即:Calendar c1=Calendar.getlnstance();
SimpleDateFormat类
概述:日期格式化类
构造方法:SimpleDateFormat(/*格式*/)//格式可以为:yyyy-MM-dd
日期转字符串:
Date now=new Date();
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
String time1=simpleDateFormat.format(time);
字符串转日期:
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
Date time=simpleDateFormat.prase("2020-12-23");//输入的字符串必须和规定的格式一样
BigDecimal类
概述:在计算机中不论是float 还是double都是浮点数,而计算机是二进制的,浮点数会失去一定的精确度。根本原因是:十进制值通常没有完全相同的二进制表示形式;十进制数的二进制表示形式可能不精确。只能无限接近于那个值。但是将数值存在字符串里面,然后再通过字符串进行操作就不会出现这样的情况,所以就提供了BigDecimal类。
构造方法:BigDecimal(String val)
基本运算方法:
add()//加
substract()//减
multipy()//乘
divide()除