包装类+日期类

包装类

什么是包装类?
*基本数据类型所对应的应用数据类型。
*Object可统一所有的数据,包装类的默认值都为null。

包装类(引用类型,包装类都位于java.lang包下)
基本类型                      包装类
byte                          Byte 
short                         Short
int                           Integer
long                          long
float                         Float
double                        Double
char                          Character
boonlean                      Boolean

装箱和拆箱:
自动装箱:基本类型--->包装类型
举例:
Integer i=new Integer(4);             //实例对象的方式
Integer i1=Integer.valueOf(4);     //调用静态方法
自动拆箱:包装类型--->基本类型
int num=i1.intValue();                      

.8中包装类提供不同类型间的转换方式:
*Number父类提供的6种方法。
*parseXXX()静态方法(除Character)。
*valueOf()静态方法。
注意:需保证类型的兼容,否则抛出NumberFormatException异常.

整数缓冲区:
.Java预先创建了256个常用的整数包装类型对象。
.在实际应用中,对创建的对象进行复用,所以装箱和拆箱可自动进行。

自动装箱与自动拆箱:基本数据的数据类型和包装类之间的相互转换。
自动装箱:直接把基本数据类型的整数值赋值给包装类。
自动拆箱:包装类无法进行运算,可以转换为基本数据类型,再进行计算。
String类

.Java程序种的所有字符串文本(例如“abc”)都是此类的实例。
.字符串字面值是常量,创建后长度不可改变,因为String的底层为final修饰的字符数组.
创建方式:
String str1=“字符串”; //赋值方式
String str2=new String(“字符串”); //实例对象

常用方法:

在这里插入图片描述

  • equals方法
public boolean equals(object obj):提示其他某个对象是否相等。
调用成员方法equals并指向参数为另一个对象,则可以判断这两个对向是否相等。整理的相同有两种方式。

默认地址比较:
如果没有覆盖重写equals方法,那么Object类中默认进行==运算符的对象地址比较,只要不是同一个对象,结果为false。

对象内容比较:
如过希望对象进行内容的比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法。

Objects类当中的equals方法:对两个对象进行比较,防止出现空指针异常。
public boolean equals(object a,object b){
    return (a==b)||(a!=null&&a.equals(b));
}

可变字符串:
概念:可在内存种创建可变的缓冲空间,存储频繁改变的字符串。

  • StringBuilder类(字符串缓冲区)
.StringBuilder可以提高字符串的操作效率(可看成一个可以改变长度的字符串)底层也是一个数组,但没有被final修饰。
.StringBuilder在内存中始终是一个数组,占用空间少,效率高。如果超出容量会进行自动扩容。

StringBuilder常用的方法有两个:
public StringBuilder-append(..):添加任意类型数据的字符串形式,并返回当前对象自身。
public String toString():将当前StringBuilder对象转换为String对象。

append方法:
具有多种重载形式,可以接受任意类型的参数,任何数据作为参数都会将对应的字符串类容添加到StringBuilder中。

String、StiringBuilder和StringBuffer的区别:

String类型的字符串长度不可发生改变,底层为被final修饰的字符数组。
StiringBuilder和StringBuffer可改变变字符串的长度,底层也为字符数组,但没有被final修饰。

StiringBuilder和StringBuffer的区别:
相同点:二者都可改变字符串的长度,且静态方法基本一致;
不同点:
前者:运行效率快,线程不安全,一般用于多线程环境中;
后者:运行效率慢, 线程安全,因为底层加了锁机制(synchronized),一般用于单线程环境下。

BigDecimal
位置:Java.math包中。
作用:精确计算浮点数。
创建方式:BigDecimal bd=new BigDecimal(“99.9”);
常用方法:
*BigDecimal add(BigDecimal bd) 加
*BigDecimal subtract(BigDecimal bd) 减
*BigDecimal multiply(BigDecimal bd) 乘
*BigDecimal divide(BigDecimal bd) 除
注意点:
.除法:divide(BigDecimal bd,int scal,RoundingMode mode);
.参数scale:指定精确到小数点后几位;
.参数mode:
*指定小数部分的取舍模式,通常采用四舍五入的模式;
*取值为:BigDecimal.ROUND_HALF_UP;

日期类

日期时间类
  • Date类

Java.util.Date类:表示特定的时间,精确到毫秒,
.public Date():分配Date对象并初始化此对象,以表示分配它的时间。
使用无参构造,可以自动设置当前系统时间的毫秒时刻,指定long类型的构造参数,可以自定义毫秒时刻。
获取当前日期格式:
Date date=new Date();

  • SimpleDateFormat类
java.text.DateFormat:是日期时间格式化子类的抽象类,可以完成Data对象与String对象进行来回转换。
.格式化:按照指定的格式,从Date对象转换为String对象.
由于DateFormat为抽象类,不能直接创建对象,所以需要常用的子类java.text.SimpleDateFormat来指定格式化或解析标准。
.public SimpleDateFormat(String-pattern):用给定的模式和默认语言环境的日期格式符号构造.
参数pattern是一个字符串,代表日期时间的自定义格式。

常用的规则为:
标识字符(区分大小写)                 含义
y                                     年
M                                     月
d                                     日
H                                     时
m                                     分
S                                     秒

使用DateFormat类当中的方法format,可以将日期格式化为文本。
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定格式
2.调用SimpleDateFormat对象中的format方法,按照构造方法指定的格式,把Date日期格式化为符合模式的字符串(文本)
日期时间格式:"yyyy-MM-dd HH:mm:ss"(其中字母不能更改,连接符号可以改)


使用DateFormat类当中的方法parse,把文本格式化为文本
使用步骤:
1.创建SimpleDateFormat对象,构造方法中传递指定格式
2.调用SimpleDateFormat对象中的parse方法,把符合构造方法中模式的字符串,解析为Date日期
  • Colendar日历类
    .Calendar提供了获取或设置各种日历的方法。
    .protected Calendar()构造方法为protected修饰,无法直接创建对象;
    在这里插入图片描述
Colendar为一个抽象类里面提供了许多操作日历字段的方法(YEAR、MONTH、DAY_OF_MONTH、HOUR)。
Colendar类无法直接创建对象使用,里面有一个静态方法叫getInaatance();
public Date getTime();返回一个表示此Colendar时间值的Date对象,把日历对象转换为日期对象。
  • System类

java.lang.System:类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。常用的方法有:
currentTimeMills();:返回以毫秒为单位的当前时间;
arraycopy();:将数组指定的元素拷贝到另外一个元素;
currentTimeMills方法:(用于测试程序的效率)
实际上,currentTimeMills方法指的是当前系统时间与1970年01月01日0点之间的毫秒差值。

System:
.System系统类,主要用于获取系统的属性数据和其他操作。

java.lang.System:类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。常用的方法有:
currentTimeMills();:返回以毫秒为单位的当前时间;
arraycopy();:将数组指定的元素拷贝到另外一个元素;
currentTimeMills方法:(用于测试程序的效率);
static void gc();触发jvm启动垃圾回收机制回收垃圾;
实际上,currentTimeMills方法指的是当前系统时间与1970年01月01日0点之间的毫秒差值。

程序效率测试案例:

/**
 *  使用匿名内部类的方式测试执行效率
 */
//测试遍历for循环执行效率
interface Timeable{
    public abstract void testTime();
}

//测试工具
class Tool{
    public static long getTime(Timeable timeable){ //接口回调,接口作为参数
        long start=System.currentTimeMillis();
        timeable.testTime();
        long end=System.currentTimeMillis();
        return end-start;
    }
}
public class GetTime {
        public static void main(String[] args) {
        //匿名内部类实现
        long time = Tool.getTime(new Timeable() {
            @Override
            public void testTime() {
                int sum=0;
                for (int i = 0; i < 10; i++) {
                  sum+=i;
                  System.out.print(sum+" ");
               }
            }
        });
        System.ou![`在这里插入图片描述`](https://img-blog.csdnimg.cn/20200621220305393.PNG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3lhbmdqaWEwOTE2,size_16,color_FFFFFF,t_70)t.println(" ");
        System.out.println("for循环的执行效率为:"+time+"毫秒");
      }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值