一、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
基本数据类型的数据,使用起来非常方便,但是没有对应的方法来操作这些数据
所以我们可以使用一个类,把基本类型的数据包装起来,这个类叫包装类。
在包装类中可以定义一些方法,用来操作基本数据类型的数据
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 基本数据类型与字符串之间的转换
基本类型-->字符串
- 基本类型+" "
- 包装类中的静态方法 static String toString(int i)
- 使用String里的静态方法static String valueOf(int i)
字符串-->基本类型
- 使用包装类的静态方法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);