JAVASE(十二) Java常用类: 包装类、String类、StringBuffer类、时间日期API、其他类

个人博客网:https://wushaopei.github.io/    (你想要这里多有)

1、包装类

1 .1 八个包装类

    

1. 2 基本数据类型,包装类,String者之间的转换

    

2、String 类

2.1 说明

  1. 被final修饰该类不能被继承
  2. 实现了java.io.Serializable : 可以进行序列化。可以将内存中的数据写入磁盘。前端和后台数据的传输也需要进行序列化。不同进程间数据的传输也需要序列化。
  3. 实现了Comparable接口 : 可以比较内容。
  4. 实现了CharSequence接口 : 可以获取内容的长度,还可以截取子串
  5. String底层是一个char[],且该数组被final修饰
  6. String是一个不可变的字符序列

2.2 内存分析

                   

3、StringBuffer 和 StringBuilder

3.1 String,StringBuffer,StringBuilder者之间的区别?

String : 是一个不可变的字符序列,底层是一个char[]被final所修饰

StringBuffer:是一个可变的字符序列,底层是一个char[],线程安全的,效率低

StringBuilder:是一个可变的字符序列,底层是一个char[],线程不安全的,效率高

3.2 StringBuffer构造器说明

new StringBuffer(); //创建一个长度为16的数组

new StringBuffer(1000); //创建一个长度为1000的数组

new StringBuffer("abcdefg"); //创建一个长度为 :字符串长度 + 16
说明:

当我们创建一个空参的StringBuffer的对象时,底层默认创建一个长度为16的数组。当我们添加第17个元素时,底层会进行扩容,扩容为原来的2倍+2.

3.3常用方法

        

增 ,删 ,改,查 ,插,长度

4、时间日期API

4.1 Date

java.util.Date
              new Date(): 获取当前的时间
              new Date(long time):毫秒数对应的那个时间
              toString() :输出对应的时间
              getTime() :获取时间对应的毫秒数


 java.sql.Date
    new Date(long time) :获取毫秒数对应的日期
    toString() : 输出毫秒数对应的日期
getTime() : 获取日期对应的毫秒数

4.2 java.text.SimpleDateFormat:格式化时间

两个方法:
          1.将时间转成字符串   format(Date date)
          2.将字符串转成时间   parse("18-8-14 下午3:47")

代码:

        @Test
	public void test2() throws ParseException{
		SimpleDateFormat sdf = new SimpleDateFormat("YYYY-'W'ww-u");
		String time = sdf.format(new Date());
		//2018-W33-2
		System.out.println(time);
		
		
		SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
		String time2 = sdf2.format(new Date());
		//2018-08-14T15:54:26.831+0800
		System.out.println(time2);
		
		
		SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String time3 = sdf3.format(new Date());
		//2018-08-14 15:56:12
		System.out.println(time3);
		//注意:不能将其它格式的时间字符串进行转换
		Date parse = sdf3.parse("2018-08-14 15:56:12"); 
	}

4.3日历类(了解)

                Calendar instance = Calendar.getInstance();
//		System.out.println(instance.getClass().getName());
		
		//当天是当年的第几天
		int day = instance.get(Calendar.DAY_OF_YEAR);
		//当天是当周的第几天
		day = instance.get(Calendar.DAY_OF_WEEK);
		//当天是当月的第几天
		day = instance.get(Calendar.DAY_OF_MONTH);
		
		//将当天设置成当月的第1天
		instance.set(Calendar.DAY_OF_MONTH, 1);
		day = instance.get(Calendar.DAY_OF_MONTH);
		
		//在当天是当月的第几天的基础上 加  3 ,可以写负数
		instance.add(Calendar.DAY_OF_MONTH, 3);
		day = instance.get(Calendar.DAY_OF_MONTH);
		//获取日历对应的时间
		Date time = instance.getTime();
		
		System.out.println(time.toString());

5、其他类

5.1 Math:用于数学计算

       

5.2 BigInteger

说明 :Integer类作为int的包装类,能存储的最大整型值为,BigInteger类的数值范围较Integer类、Double类的数值范围要大得多,可以支持任意精度的整数。

BigInteger a = new BigInteger(String.valueOf(Integer.MAX_VALUE));
BigInteger b = new BigInteger(String.valueOf(1));
BigInteger add = a.add(b);
System.out.println(add);

5.3 BigDecimal

说明:一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。BigDecimal类支持任何精度的定点数

BigDecimal a = new BigDecimal(String.valueOf(1.0));
BigDecimal b = new BigDecimal(String.valueOf(0.41));
BigDecimal subtract = a.subtract(b);
System.out.println(subtract);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值