zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    前端到后台ThinkPHP开发整站(4)
    前端到后台ThinkPHP开发整站(2)
    字典树模版
    KMP模版
    EXKMP模版
    Manacher模版
    AC自动机练习题1:地图匹配
    AC自动机模版
    spring.net之aop加单例模式编写无try catch程序
    父类与子类之间赋值转换
  • 原文地址:https://www.cnblogs.com/wushaopei/p/12259356.html
Copyright © 2011-2022 走看看