一、Object类和常用API

一、Object类等

1.1 Object类

java.lang.Object

Object类是类层次结构的根(最顶层)类。每个类都使用Object作为超(父)类。

toString()方法

重写前:包名+地址值

重写后:对象的属性值

看一个类是否重写了toString()方法,直接打印这个类对应对象的名字即可

如果没有重写toString()方法,默认打印地址值

equels()方法

重写前:

? 比较两个对象的地址值

重写后:

? 比较两个对象中的属性值

1.2 Objects类

equals()方法

public static boolean equals(Object a, Object b) {
    return (a == b) || (a != null && a.equals(b));
}

比较两个对象是否相同,加了一些健壮性判断(当对象为null时,防止报空指针异常)

二、时间日期类

2.1 Date类

java.util.Date:表示日期和时间的类

类 Date 表示特定的时间,精确到毫秒

构造方法

Date()方法

Date()获取当前系统的日期和时间

Date(long date)方法

传递毫秒值,把毫秒转换为Date日期

成员方法

getTime()方法

把日期转换为毫秒值

类似:System.currentTimeMillis()

2.2 DateFormat类&SimpleDateFormat类

日期格式化

java.text.DateFormat

构造方法

SimpleDateFormat(String pattern)

格式化(日期-->文本)、解析(文本-->日期)

成员方法

String format(Date date)

把Date日期格式化为字符串

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()));

Date parse(String source)

把符合模式的字符串,解析为Date日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = sdf.parse("2021-08-27 09:01:22");
System.out.println(parse);

2.3 Canlendar日历类

java.util.Calendar :日历类

Calendar类是一个抽象类,里面提供了很多操作日历字段的方法

Calendar无法直接创建对象使用,里面有一个静态方法,返回Calendar子类

创建对象方式

Calendar instance = Calendar.getInstance();//子类被赋予父类 多态

成员方法

public int get(int field):

返回给定日历字段的值
参数:指定的日历字段
返回值:日历字段代表的值

Calendar instance = Calendar.getInstance();//子类被赋予父类  多态
int year = instance.get(Calendar.YEAR);
System.out.println(year);

public void set(int field,int value)

将指定日历字段,设置为指定值

Calendar instance = Calendar.getInstance();//子类被赋予父类  多态
instance.set(Calendar.YEAR,2022);
int yearNow = instance.get(Calendar.YEAR);
System.out.println(yearNow);

public abstart void add(int field ,int amount)

根据日历的规则,为给定的日历字段添加或减去给定的时间量

Calendar instance = Calendar.getInstance();//子类被赋予父类  多态
instance.add(Calendar.YEAR,2);
int yearAdd = instance.get(Calendar.YEAR);
System.out.println(yearAdd);

public Date getTime()

日历类与Date的互换

Calendar instance = Calendar.getInstance();//子类被赋予父类  多态
Date time = instance.getTime();
System.out.println(time);

三、System类

3.1 System类

java.lang.System

currentTimeMillis() 方法

返回当前时间(以毫秒为单位),通常为了测试程序的效率

long l = System.currentTimeMillis();
for (int i = 0; i < 9999; i++) {
     System.out.println(i);
}
long l1 = System.currentTimeMillis();
System.out.println("耗时:"+(l1-l));

arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

将指定源数组中的数组从指定位置复制到目标数组的指定位置。

参数

? src - 源数组。
? srcPos - 源数组中的起始位置。
? dest - 目标数组。
? destPos - 目的地数据中的起始位置。
? length - 要复制的数组元素的数量。

int[] src={1,2,3,4,5};
int[] dest={6,7,8,9,10};
System.arraycopy(src,0,dest,0,3);
System.out.println(Arrays.toString(src));
System.out.println(Arrays.toString(dest));

四、String类

java.lang.String

字符串是常量,它们的值创建后不能改变

字符串底层是被final修饰的数组,不能改变,是一个常量

字符串的相加,内存中会有很多字符串,占用空间多,效率低下

String s ="a"+"b"+"c"="abc"; 3个字符串

"a"+"b" "ab" 一个字符串

"ab"+"c" "abc" 一个字符串

五、StringBuilder类

java.lang.StringBuilder

字符串缓冲区,可以提高字符串操作的效率

底层也是一个数组,但没有被final修饰,可以改变长度

StringBuilder在内存中始终是一个数组

如果超出它的容量,会自动扩容

5.1 StringBuilder类

构造方法

StringBuilder()

构造一个没有字符的字符串构建器,初始容量为16个字符。

StringBuilder(String str)

构造一个初始化为指定字符串内容的字符串构建器。

成员方法

append()

使用append方法,无需接收参数

返回的就是本身this

StringBuilder sb = new StringBuilder();
sb.append("abcd");
sb.append(1);
System.out.println(sb);

toString()

把StringBuilder变成字符串

//string变成stringBuilder
String str="hello";
StringBuilder sb = new StringBuilder(str);
//stringbuilder里添加
sb.append("world");
//stringbuilder转换为string
String s = sb.toString();

六、包装类

java.lang

基本数据类型的数据,使用起来非常方便,但是没有对应的方法来操作这些数据

所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类。

在包装类中可以定义一些方法,用来操作基本数据类型的数据

一、Object类和常用API

6.1 装箱

把基本类型的数据,包装到包装类中。

构造方法

Integer(int value)

Integer(String s)

静态方法

static Integer valueOf(int i)

返回一个 Integer指定的 int值的 Integer实例。

static Integer valueOf(String s)

返回一个 Integer对象,保存指定的值为 String 。

6.2 拆箱

在包装类中取出基本数据类型的数据

成员方法

int intvalue()

//装箱
Integer integer = new Integer(1);
System.out.println(integer);
Integer integer1 = new Integer("1");
System.out.println(integer1);
Integer integer2 = Integer.valueOf(2);
System.out.println(integer2);
Integer integer3 = Integer.valueOf("2");
System.out.println(integer3);
//拆箱
int i = integer3.intValue();
System.out.println(i);

6.3 自动装箱与拆箱

基本类型的数据和包装类之间可以自动的相互转换

JDK1.5+

/**
 * 自动装箱
 * 将int类型整数赋值给包装类
 */
Integer in =1;
/**
  * 自动拆箱
  * in是包装类,可以自动转换为基本类型的数据,再参与计算
  * in+2相当于  in.intValue()+2
  * in = in +2  in=new Integer(3)
  */
in = in + 2;

6.4 基本数据类型与字符串之间的转换

基本类型-->字符串

  1. 基本类型+" "
  2. 包装类中的静态方法 static String toString(int i)
  3. 使用String里的静态方法static String valueOf(int i)

字符串-->基本类型

  1. 使用包装类的静态方法parseXX("字符串") Integer: static int parseInt(String s);
//基本类型-->字符串
String s1=100+ "";
String s2=Integer.toString(100);
String s3=String.valueOf(100);
//字符串-->基本类型
int i = Integer.parseInt(s1);

一、Object类和常用API

上一篇:C# SpinLock用法。


下一篇:windows 10安装npm,cnpm,在谷歌浏览器上安装vue开发者工具 vue Devtools