API接口 StringBuffer类、StringBuilder类、Date类、Calendar类、DateFormat类、BigDecimal类、BigInteger类、包装类、

StringBuffer类

  String字符串  字符串值不可变  可以共享

  buffer缓冲区、缓冲器

  StringBuffer字符串缓冲区,作用相当于一个容器,里面存放很多字符串值

  特点:

    1.线程安全的可变字符序列。

    2.可以添加任意类型的数据,但是添加进去的数据会被转换成字符串类型。

    3.StringBuffer类主要是通过append和insert方法进行操作。

    4.StringBuffer类是有索引,有序的

    5.StringBuffer类构件对象会有一个初始容器,当存储的元素超过初始容量,容量会自动扩充

    6.JDK1.5之后,官方提供了一个等价的类StringBuilder类,不同步,速度较快

    crud操作:添加、插入、删除和替换

    //添加 插入 删除 替换

       StringBuffer stringBuffer = new StringBuffer();
    stringBuffer.append("张三");
    stringBuffer.append(true);
    stringBuffer.append(20);
    stringBuffer.append(13.5);
    System.out.println(stringBuffer.toString());
    //插入 insert()
    stringBuffer.insert(6,"李四" );
    System.out.println(stringBuffer.toString());
    //删除delete(int start,int end )
    StringBuffer delete = stringBuffer.delete(6, 8);
    System.out.println(stringBuffer.toString());
    System.out.println(delete.toString());//张三true2013.5
    //替换 replace(int start,int end,String str)
    StringBuffer replace = stringBuffer.replace(2, 6, "");
    System.out.println(stringBuffer.toString());
    System.out.println(replace.toString());
    //toString() 打印对象时,JVM会自动调用toString()方法
    char c = stringBuffer.charAt(2);
    System.out.println(
c);

StringBuilder类属于线程不安全的,执行效率较高,推荐使用该类
Date类:日期类
  1.Date类有两大功能:①把日期解释为年月日时分秒
            ②允许格式化和解析日期字符串
  2.Date类中的以上两大功能分别被Calender类和DateFormat类替换掉
  3.在Date类中出现了大量的已弃用和已过时方法。
//构造函数
Date date = new Date();
System.out.println(date.toString());//获取当前的系统时间
//Wed Nov 04 15:35:33 CST 2020
//星期 月份 日期 时:: CST 年份
//构造函数 Date(long date)
//86400*1000 = 一天毫秒值
//一年 86400*1000*365
//从标准基准时间(称为历元(epoch,即 1970 1 1 00:00:00 GMT)以来的指定毫秒数。
Date date2 = new Date(4545545545456l);
System.out.println(date2);
//日期和毫秒的转换
long time = date2.getTime();
System.out.println(time);

DateFormat  java.text包中  是日期/时间格式化子类的抽象类,它以与语言无关的方式格式化并解析日期或时间
       是一个抽象类
       直接子类SimpleDateFormat
    作用:格式化日期并解析日期时间,通常用于日期和String字符串之间的转换
       日期---》文本      /      文本---》日期
       借助于Date对象
// 构建日期对象
Date date = new Date();//日期对象 Wed Nov 04 15:46:40 CST 2020
// 2020/11/4 16:01:22
//使用DateFormat累的子类SimpleDateFormat pattern 格式,模式 buffer n. [计] 缓冲区;缓冲器
/*
G-->年代
y-->
M-->
m-->分钟
d-->一月中的第几日
D-->一年中的第几天
h-->小时 12小时制
H-->小时 24小时制
s-->
S-->毫秒
E-->星期
F-->一月中的第几个星期几
w-->一年中的第几星期
W-->一月中的第几星期
z-->时区
*/
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
//把日期数据类型转换成字符串数据类型 格式化format(Date date)
String str = df.format(date);
System.out.println(str);
//把字符串转换成日期格式
String time = "2020114";//转换成Date类型 CST
//parse(String str)
//指定日期格式 参照字符串的格式
DateFormat df2 = new SimpleDateFormat("yyyyMMdd");
//把字符串转换成日期
try {
Date date2 = df2.parse(time);
System.out.println(date2);//2020114---->CST格式 Wed Nov 04 15:35:33 CST 2020
//00:00:00 是因为在字符串定义没有给时分秒设定值
} catch (ParseException e) {
e.printStackTrace();
}

Calender类  日历类:实现日期和时间字段之间转换
       是一个抽象类,
       作用:获取日历上的时间字段值
       Calender对象的创建通过静态的getInstance()
//构建一个Calender类日历对象
//通过静态方法getcalendar()
Calendar calendar = Calendar.getInstance();
//java.util com.zhiyou100.API
//Calendar calendar = new Calendar(); protected Calendar(){}
//年月日 时分秒 星期 get()
int year = calendar.get(Calendar.YEAR);
System.out.println(year);//2020
int month = calendar.get(Calendar.MONTH);//0-11
System.out.println(month);//10
int date = calendar.get(Calendar.DATE);
System.out.println(date);
int hour = calendar.get(Calendar.HOUR);
System.out.println(hour);
int minute = calendar.get(Calendar.MINUTE);
System.out.println(minute);
int second = calendar.get(Calendar.SECOND);
System.out.println(second);

System.out.println(year + "/" + (month + 1) + "/" + date + " " + (hour + 12) + ":" + minute + ":" + second);
//指定字段增加值
//修改当前的时间为7天后
calendar.add(Calendar.DATE, 7);
//获取日期值
int day = calendar.get(Calendar.DATE);
System.out.println(day);//11
calendar.add(Calendar.HOUR, 5);
//获取当前时间的小时
int hour2 = calendar.get(Calendar.HOUR);
System.out.println(hour2);//5+5 --->10
//日历对象转换成日期对象 Date格式 getTime()
Date time = calendar.getTime();
System.out.println(time);

BigDecimal类
      大数据中的大小数
BigInteger
      大数据中的大整数
//BigInteger BigDecimal
//大数据整数的加、减、乘、除 四则运算
BigInteger bigInteger = new BigInteger("200000000000000000000");
BigInteger bigInteger1 = new BigInteger("120123241554112122222");
//相加运算
BigInteger result1 = bigInteger.add(bigInteger1);
System.out.println(result1);
//减法运算
BigInteger result2 = bigInteger.subtract(bigInteger1);
System.out.println(result2);
// 乘法运算
BigInteger result3 = bigInteger.multiply(bigInteger1);
System.out.println(result3);
//除法运算
BigInteger result4 = bigInteger.divide(bigInteger1);
System.out.println(result4);

//BigDecimal类 大小数
//有时候操作小数的时候,会出现精度损失问题
System.out.println(0.09+0.01);//0.1-->0.09999999999999999
System.out.println(1.231*100);//123.1-->123.10000000000001
//大小数四则运算 加减乘除
BigDecimal bigDecimal1 = new BigDecimal("0.09");
BigDecimal bigDecimal2 = new BigDecimal("0.01");
//加法运算
BigDecimal result01 = bigDecimal1.add(bigDecimal2);
System.out.println(result01);
//减法运算
BigDecimal result02 = bigDecimal1.subtract(bigDecimal2);
System.out.println(result02);
//乘法运算
BigDecimal result03 = bigDecimal1.multiply(bigDecimal2);
System.out.println(result03);
除法运算
BigDecimal result04 = bigDecimal1.divide(bigDecimal2);
System.out.println(result04);

包装类
基本数据类型和对应的包装类--》对应的引用类型 Class类型
ArrayList类 容器
byte Byte
short Short
int Integer[重点]
long Long
float Float
double Double
char Character[重点]
boolean Boolean
基本数据类型转换成包装类------》valueOf() 以int类型示例Integer。value1Of(3)---》Integer
包装类转换成基本数据类型----->以int类型示例 intValue()--->int
在JDK1.5以后,基本数据类型和包装类不在需要显式的转换---》会自动转换
装箱:基本数据类型转换成包装类
拆箱:包装类转换成基本数据类型
开发中,定义类中属性时,建议使用
 
posted @ 2020-11-07 19:46  寒江雨  阅读(119)  评论(0编辑  收藏  举报