Java基础系列之一
Java的四个基本特性
Java的四个基本特性是抽象、封装、继承、多态。
Object类及其方法实现
Object的方法有:
构造方法:
Object( )
用来获取类的本身的信息的:
public final Class<?> getClass() protected Object clone( ) throws CloneNotSupportedException
和比较相关的:
public boolean equals ( Object obj) public int hashCode( )
和线程相关的:
public final void wait( ) throws InterruptedException public final void wait(long timeout ) throws InterruptedException public final void wait(long timeout , int nanos) throws InterruptedException public final void notify( ) public final void notifyAll() protected void finalize( ) throws Throwable
下面简略写写每一个类的作用,只做简述,不去深究。
—> Object( )
构造方法,用来构造一个新的Object对象。
—>protected Object clone( ) throws CloneNotSupportedException
克隆方法,调用这个方法,可以返回一个当前对象的克隆对象,但是这个对象的类必须实现Cloneable接口,通过复写clone()方法,实现对克隆的自定义。
—>public boolean equals ( Object obj)
指示一些其他对象是否等于此。用来比较两者是否一致,并非比较地址是否一致,使用 == 的比较,在对于对象来说,用来比较地址是不是一样。
—>public int hashCode( )
返回这个对象的hash码。
—>protected void finalize( ) throws Throwable
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在覆盖了这个方法的类的对象上调用该对象。如果一个类没有对这个方法复写,那么不会调用这个方法,而直接执行垃圾回收。
—>public final Class<?> getClass()
返回这个类的类型的对象,也就是说,每一个类都可以通过这个方法,生成一个Class的对象,这个对象的属性来自于调用这个方法的对象。
—>public final void wait( ) throws InterruptedException
—>public final void wait(long timeout ) throws InterruptedException
—>public final void wait(long timeout , int nanos) throws InterruptedException
某个对象调用这个方法,使当前线程等待,直到其他线程调用了该对象的该对象的notify()方法或notifyAll()方法,并且在线程间的竞争中获胜,才能恢复执行。
关于参数
timeout是时间参数,经过了指定的时间,即使没有被通知,这个线程也会自动继续执行。
在第三个方法中,指定时间是timeout (微秒) + nanos (纳秒);
—>public final void notify( )
—>public final void notifyAll( )
这是通过某一个对象来唤醒激活的线程的方法。
这两个激活线程的方法的区别在于,notifyAll向全体在该对象上等待的线程发出信号,然后竞争得出可执行的线程。notify则是随机选择一个线程,使其从阻塞状态变到运行状态。
基本数据类型与引用数据类型
八个基本数据类型
char 字符型
byte 字节型
short 小整数
int 整数
long 大整数
float 浮点型
double 双精度
boolean 布尔型
它们的装箱变量:
Character 字符型
Byte 字节型
Short 小整数
Integer 整数
Long 大整数
Float 浮点型
Double 双精度
Boolean 布尔型
除了Boolean 和 Character 以外的所有对象都来继承Number这个父类。
1 | public abstract class Number extends Object implements Serializable |
这个类实现了Serializable这个接口,这个接口的作用是,可序列。也就是说,实现了这个接口,就有了主观或者是客观上的大小,也就是说,可以排序了。
这个接口内有三个方法,都需要被实现。
需要注意的点
byte类型的范围是 -128 ~ 127,对byte的127进行i++操作,则会变成-128。
如果不指明类型,默认的整数类型是int型,小数是double型。
暂时只能想到这些。
finally vs final vs finalize
finally:是用在try-catch-finally的结构中的。
final:是一个修饰符。<这个很重要>
既可以用来修饰变量:被final修饰的变量为常量,不可再被更改。
也可以用来修饰方法:被final修饰的方法,在子类中不再可以被复写。
还可以用来修饰类:被final修饰的类,不再可以被继承。
finalize:是一个Object类中的方法,方法签名是:
1 | protected void finalize( ) throws Throwable |
简单的说一下这个的作用
当垃圾收集确定不再有对该对象的引用时,垃圾收集器在覆盖了这个方法的类的对象上调用该对方法。如果一个类没有对这个方法复写,那么不会调用这个方法,而直接执行垃圾回收。