今日继续努力吧!
问题【1】在Java中,throw 和 throws 的区别?(异常)
throw: 表示方法内抛出某种异常对象,如果异常对象是非RuntimeException则需要在方法申明时加上该异常的抛出或者抛出异常处理该异常,否则会报错,执行到throw后面的语句块不再执行。
throws:方法的定义上使用throws表示这个方法可能抛出某种异常,需要由方法的调用者进行异常处理。 区别:throws可以一次性抛出多个异常,而throw只能一个。
问题【2】session 的概念和工作原理是什么?
session的概念:简单来说就是会话控制。session对象存储特定用户会话所需的属性及配置信息。工作原理:用户第一次请求服务器时,服务器会生成一个sessionid。生成的sessionid返回到客户端,再通过set-cookie。客户端收到sessionid会将它保存在cookie中,当客户端再次访问服务端时会带上这个sessionid。当服务端收到请求时,检查是否存在sessionid,不存在就新建一个sessionid然后再发送请求生成sessionid,如果存在就去遍历服务端的session文件,找到与这个sessionid相对应的文件,获取用户信息,此后的请求都会交换这个sessionid,进行会话。
问题【3】Object有哪些公用方法?
protected Object clone() 创建并返回此对象的一个副本。
boolean equals(Object obj) 指示其他某个对象是否与此对象“相等”。
protected void finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
Class getClass() 返回此Object的运行时类。
int hashCode() 返回该对象的哈希码值。
void notify() 唤醒在此对象监视器上等待的单个线程。
void notifyAll() 唤醒在此对象监视器上等待的所有线程。
String toString() 返回该对象的字符串表示。
void wait() 在其他线程调用此对象的notify()方法或 notifyAll()方法前,导致当前线程等待。
void wait(long timeout) 在其他线程调用此对象的notify()方法或notifyAll()方法,或者超过指定的时间量前,导致当前线程等待。
void wait(long timeout, int nanos) 在其他线程调用此对象的notify()方法或notifyAll()方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。