异常
名称 | 简介作用 |
---|---|
Error | 表示一种不可能发生的严重性错误,程序无法处理,常出现在内存溢出和代码错误等 |
Exception | 表示一种不规范的编译异常 |
扩展:常用的日志检查框架log4j和slf4j等。
例子:
try{
//这里写可能出现异常的代码
}
catch(Exception e){
e.printStackTrace();//打印异常
}
泛型
定义:泛型字面意思很多很多的类型,举个例子定义一个方法的形参,在外面传入的类型必须是形参的类型不然会报错,泛型也是这样的,使用泛型的好处有很多。
泛型的好处:
- 使用泛型后可去除强制转换和隐式转换的繁琐避免转换时出现的错误。
- 使用泛型可以让编译器更好知道元素的类型限定,高度验证元素类型,使代码代码更具安全性。
- 使用泛型可以使代码具有可重用性,减少重复代码,使代码更为可用。
注意:泛型只在编译期有效,在运行期会上传对应的类型,如果未设定类型,将默认上传object类型。
例子:
//泛型一般有三种
public class Few<T>{//此为泛型类,T代表泛型,还可以用?表示泛型通配符
private T i;
public T geti()
{
return i;
}
public void seti(T i)
{
this.i=i;
}
}
-------------------------------------------------
public class Zhu{
public void main(String args[])
{
Few few=new Few<int>;
few.set(1);
System.out.println(few.get());
}
}
--------------------------------------------------
public interface JieKou<T>{//泛型接口
........
}
public class ShiXian implements JieKou<T>{
.........
}
------------------------------------------------
public <T> void fangfa(){//泛型方法
........
}
Class类和Object类
Class类定义:封装着其他类的信息,是反射的基础。
例子:
public class Lie{
....
}
-----------------------------------
//获取Class的三种途径
Lie lie=new Lie();
Class c=lie.getClass();//用getClass()方法获取
Class c1=Lie.class;//直接通过类名.class获取
Class c2=Class.forname("com.item.Lie");//用forname()静态方法获取,括号里面是类的路径
Object类定义:是所有类的父类,可以被所有类继承,有着自己的被所有类继承九个方法。
- clone方法,浅复制,保护方法,可以获取一个类,不过要实现Cloneable接口才能使用此方法。
- toSting方法,转换方法,将目标类型转换为String类型,一般都有子类覆盖。
- getClass方法,获取目标的Class类。
- finalize方法,释放资源方法,不知道何时调用。
- equals方法,常做比较方法,例如"sdsf".equals(“sdsfg”),返回值为false;常用作比较两个对象以及字符串序列,不过在Object中"=="与equals相同。
- hashCode方法,常用做具有哈希算法的集合的比较,大大的提升了效率,例入,一般满足object1.equals(object2)可以推出object1.hashCode()==object2.hashCode()相等。
- wait方法,常用作线程中的等待方法,使用此方法可以使线程进入等待队列,并释放cpu的抢占权以及锁,进行阻塞。
- notify方法,常用做唤醒方法,可以唤醒某个线程进行运作。
- notifyall方法,可以唤醒所有线程。
扩展:
- javac是编译java文件的基本命令。
- java是运行java文件的基本命令。
- javap是class文件反编译程序,可以获取class文件的反编译结果,可以获取jvm(java虚拟机)的每一步。