7月24号java笔记
一,重写方法
区分方法的关键:方法名和参数列表。
方法重写的原因:
- 发生了继承关系
- 父类变量指向子类方法
- 父类不满足子类的需求
- 子类重写了父类中的方法
什么情况下会发生方法重写?
- 发生继承
- 方法名同名
- 参数列表一模一样,即顺序、个数和类型要一模一样。
- 引用类型的子类的返回值类型要<=父类的返回值类型;基本数据类型则要一模一样。
- 子类的修饰符要>=父类的修饰符,并且父类的修饰符不能是private。
- 子类抛出的异常要<=父类抛出的异常。
二,main方法
public static void main(String[] args){
}
结构详解:
public:公开的,确定所有类和对象能够调用到。
static:静态修饰,保证外界调用时无需创建对象。
void:main的返回值没有任何意义,JVM也不需要main的返回值。
String[] args: 意味着调用main方法时,可以传入实际参数。
三,Scanner
Scanner的两个关键方法。
- hasNextXXX:判断扫描到的内容是否是XXX类型。
- nextXXX: 将获取到的下一个扫描内容转为XXX类型。(转换过程中可能出现问题)
四,String、StringBuffer和StringBuilder
- 创建String对象
new String();//创建一个无参的String对象。
new String("qwe");//创建一个带参的String对象。
“码”;
new String(arr,2,3);//通过字节数组创建。
- StringBuilder和Stringbuffer的区别
StringBuffer效率低于StringBuilder;StringBuffer安全性高于StringBuilder;一般情况下使用StringBuilder。
- 三者的区别
String是不可变的,StringBuilder和StringBuffer是可变的;
StringBuilder和StringBuffer都继承自AbstractStringBuilder。
StringBuilder和StringBuffer相比,StringBuilder效率更高,但没有StringBuffer安全;StringBuffer则与之相反,安全性高,但效率较差。
五,包装类
- 8大基本数据类型的包装类:
byte-Byte;short-Short;int-Integer;char-Character;long-Long;float-Float;double-Double;boolean-Boolean。
注意:在JDK12中,Integer中的所有构造器都已过时,但通过valueOf方法可以获取int对应的Integer对象。
六,Date类
与时间有关的类,使用时需要导包java.util.Date。
常见操作:
- 创建Date对象,打印当前时间。
Date d = new Date();
System.out.println(d);
- 通过带参构造器创建对象,输入参数,并打印对应的时间。
Date date = new Date(1008660422507L);
System.out.println(date);
- 获取当前时间的毫秒数,从1970年1月1日(08:00:00 GMT)开始计算。
long dateTime = System.currentTimeMillis();
System.out.println(dateTime);
- 创建对象并且指定时间格式
Date date = new Date();
SimpleDateFormat ss = new SimpleDateFormat("yy/MM/dd hh:mm:ss");
System.out.println(ss.format(date));
七,Object类
Object类常用方法:
- isNull:判定对象是否为null。
- toString:输出对象为String类型的文本。
- requireNonNull :判定对象是否为null,如果是null则抛出空指针异常。