1.Object类中的wait()方法
wait()的作用是让当前线程进入等待状态,同时,wait()也会让当前线程释放它所持有的锁。直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法后当前线程被唤醒(进入“就绪状态”)
异常体系
Throwable的子类为Error和Exception。
Exception的子类为RuntimeException(运行时)异常和RuntimeException及其子类以外的(编译)异常(例如IOException)。
主要分为错误、运行时异常和编译时异常。
Error:就是一些程序处理不了的错误,代表JVM出现了一些错误,应用程序无法处理。例如当JVM不再有继续执行 *** 作所需的内存资源时,将出现OutOfMemoryError。运行时异常:RuntimeException及其子类表示JVM在运行期间可能出现的异常,比如:使用空值对象引用(NullPointerException)、数组下标越界(ArrayIndexOutBoundException),此类异常属于不可查异常,在程序中可以选择捕获处理,也可以不处理编译异常:如果程序中出现此类异常,必须对异常进行处理(try catch、throw)否则编译不通过。
throw与throws区别
throw关键字用在方法内部,只能用于抛出一种异常; throws关键字用在方法声明上,可以抛出多个异常,用来标识该方法可能抛出的异常列表
JAVA获取对象的四种方式
使用new创建对象通过反射的方式
Class class = Class.forname("com.heyjia.test.Hello"); Hello hello = (Hello)class.newInstance();
通过clone的方式
Hello hello1 = new Hello(); Hello hello2 = (Hello)hello1.clone();
通过反序列化的方式
反射原理
什么是反射:
动态的获取类的各个属性以及调用它的方法
原理:
通过将类对应的字节码文件加载到jvm内存中得到一个Class对象,通过这个Class对象可以反向获取实例的各个属性(或者修改某个属性)以及调用它的方法。
获取Class对象的方式:
对象.getClass()
类名.class
Class.forName("");
使用场景:
通过反射运行配置文件内容,加载配置文件,并解析配置文件得到相应信息,根据解析的字符串利用反射机制获取某个类的Class实例动态配置属性JDK动态代理jdbc通过Class.forName()加载数据的驱动程序Spring解析xml装配Bean
持续更新中…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)