1.Object类
是所有类的直接或者间接的父类。他是所有类的基类
toString():(重点)
返回该对象的字符串表示。
getClass().getName() + '@' + Integer.toHexString(hashCode());
我们一般情况下,去定义一个类的时候都会重写Object类中的toString();
重写toString方法
alt + insert 选择toString
如果一个类的对象,打印之后不是地址值,那么他肯定是重写了toString()方法,如果在本类中
没有重新,那么肯定是他父类重写了。
PS:当我们单独使用对象名的时候.会默认调用其toString方法(前提是在类中已经重写toString)
equals():只能用来比较地址值。(重点)
比较两个对象是否相等。
如果我们不重写Object类中的方法,那么比较的是两个对象的地址值(使用的是==比较的)
==既可以比较基本数据类型,也可以比较引用数据类型。
当比较基本数据类型的时候,比较的是值。
如果比较的是引用数据类型,比较的是地址值。
如果重写之后,我们比较的就是两个对象的属性值。
重写equals方法
alt + insert 选择equals() and hashCode()
System.out.println("判断对象me与对象me1属性是否相同:"+me.equals(me1));
getClass():
获取的是该对象,在内存中的字节码文件对象。
我们编写的代码分为几个阶段:
源代码阶段 --> .java文件
给我们程序员来用的,编写代码,修改代码。
字节码阶段 --> .class文件
就是给jvm用的。
.class文件在哪? 在我们硬盘中
jvm在哪? 当我们运行程序的时候,jvm会被加载到内存中。jvm在内存中。
而我们.class文件是运行在jvm中的。
一个.class文件在内存中,只能存在一份。
补充:
在一类中,什么东西能调用该类的方法。
由该类创建的对象.
如果这个方法是一个静态的,可以使用类名.方法名 来进行调用(推荐)。
二.Date类(重点) --日期时间类
java.util.Date 表示特定的瞬间 精确到毫秒
1.Date date = new Date 得到的是当前时间精确到毫秒
空参构造 Date date = new Date()
带参构造 Date date = new Date(3600000)
2.date.getTime() 时间 距离基准时间差的毫秒值--时间毫秒值
成员方法:
提供了一个 getTime() 把日期对象转换成对应的时间毫秒值
void setTime(long time); //设置Date对象的时间
三.java.text.DateFormat
表示 日期格式化的抽象类
定义了Date与String的转换
面向题:(重点)
格式化 按照指定格式 将Date对象 转换成字符串
解析 按照指定格式 将字符串解析成Date对象
构造方法:
SimpleDateFormat(String str); (重点)
在API中有详解
y---年
M---月
d---日
H---时
m---分
s---秒
成员方法:
A:格式化
1. 首先获取当前时间对象
2.其次创建一个指定了格式化标准的SimpleDateFormat对象
3.调用format方法,完成Date对象转换成指定形式String对象
public String format(Date date):将Date对象格式化为字符串。(重点)
B:解析功能
在SimpleDateFormat构造中,完成标准的定义--和字符串一定要匹配用 .parse()方法
1. 首先给出一个日期形式字符串
2. 进行解析
3.创建一个含有转换标准的日期格式化对象,规则和字符串规则一致 (此时编译不通过,创建一个说明)
public Date parse(String source):将字符串解析为Date对象。(重点)
注意:当我们解析一个字符串类型的日期的时候,必须要和SimpleDateFormat中的规则一样。
如果不一样就会报错。
四:Calendar(日历)为抽象类
由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,返回子类对象,
如下:(重点)
方便我们获取时间属性的
Calendar静态方法
- public static Calendar getInstance():使用默认时区和语言环境获得一个日历
Calendar常用方法
- public int get(int field):返回给定日历字段的值。
获取一个日历类对象 Calendar c = Calendar.getInstance();
获取一个年 :int year = c.get(Calendar.YEAR);
获取一个月 :int month = c.get(Calendar.MONTH)+1;
获取一个日 :int date = c.get(Calendar.DATE);
- public void set(int field, int value):将给定的日历字段设置为给定值。
把之前的日历字段代表的值给覆盖掉
- public abstract void add(int field, int amount):
根据日历的规则,为给定的日历字段添加或减去指定的时间量。
- public Date getTime():返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
将一个日历对象转换成一个日期对象
Date date = c.getTime();
--将Calendar转换成一个Date对象
- void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间。
c.set(Calecdar.YEAR,2019); --将年份更改为2019年
获取一个日历类对象 Calendar c = Calendar.getInstance();
获取一个年 :int year = c.get(Calendar.YEAR);
获取一个月 :int month = c.get(Calendar.MONTH)+1;
获取一个日 :int date = c.get(Calendar.DATE);
偏移
c.add(Calendar.YEAR,+100); 年份向后偏移100年
c.add(Calendar.YEAR,-100); 年份向前偏移100年
五: java.lang.System类 定义了与系统相关的功能
静态的
主要的功能
public static long currentTimeMillis():返回以毫秒为单位的当前时间。(掌握)
System.currentTimeMillis();
public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。
src : 源数组
srcPos : 源数组被复制的起始索引
dest : 目标数组
destPos: 目标数组需要复制到的起始索引
length : 复制元素的个数
六:java.lang.StringBuilder(重点)
可变的字符序列,字符串缓冲区,可以理解为一个容器用来存放字符串的,提供了在自己空间中操作字符串的方法
构造
- public StringBuilder():构造一个空的StringBuilder容器。(空参构造)
- public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。(带参构造)
StringBuilder常用方法:
- public StringBuilder append(...):添加任意类型数据的字符串形式,并返回当前对象自身。
可有返回值,返回的是自己本身,添加的操作都是在自身操作添加的
任意的类型都可以参加
添加进去的任何类型都会变成字符串类型
sb.append("古力娜扎"); --添加了古力娜扎
sb.append(1314);--添加了int类型的1314
!!!!! sb.append(123).append("哈哈哈").append("娜扎")-链式编程
如果调用一个方法返回的是一个对象,那么就可以调用这个对象中的方法
- public String toString():将当前StringBuilder对象转换为String对象。
StringBuilder sb = new StringBuilder("Hello").append("World");
String str = sb.toString();
StringBuilder 和 String之间的相互转换:
String --> StringBuilder
通过StringBuilder(String s);
通过 append(String s);
StringBuilder --> String
通过 StringBuilder中toString();
七:包装类
针对于基本数据类型而言。有几个基本数据类型就对应有几个包装类。
包装类的出现是为了更加方便的去操作基本数据类型。
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
八.装箱与拆箱
基本类型 与 包装类 之间的转换
装箱
基本类型 封装成 包装类型
拆箱
包装类 解析成 基本类型
注意!:基本类型只是能转换成对应的包装类(就是用来包装成基本类型)
例子:
int a = 10;
Integer c = Integer.valueof(a); //装箱
Integer c = 20;
int d = c.intValue(); //拆箱
如果是double类型改成double就行
自动装箱与自动拆箱
Integer d = 10; //自动装箱
int f = c; //自动拆箱
基本类型与字符串之间的转换
基本类型转换成为String
(记住!)基本类型直接与""相连接即可;如:34+""
基本类型 ---- > 字符串 + ""
字符串 -----> 基本类型
对应的包装类.parseXXX(String str)