init方法:是在servlet实例创建时调用的方法,用于创建或打开任何与servlet相关的资源和初始化servlet的状态,Servlet规范保证调用init方法前不会处理任何请求。
service方法:是servlet真正处理客户端传过来的请求的方法,由web容器调用,根据HTTP请求方法(GET,POST等),将请求分发到doGet、doPost等方法。
destroy方法:是在servlet实例被销毁时由web容器调用。servlet规范确保在destroy方法调用之前所有请求的处理均完成,需要覆盖destroy方法的情况:释放任何在init方法中打开的与servlet相关的资源存储servlet的状态。
代码片段:
byte b1=1,b2=2,b3,b6;
final byte b4=4,b5=6;
b6=b4+b5;
b3=(b1+b2);
System.out.println(b3+b6);
解析:语句:b3=(b1+b2);编译错误。
被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了。
而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要就进行强制转换。
java中的byte,short,char进行计算时都会提升为int类型。
除了类属关系运算符"."、成员指针运算符"*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。但是=、()、[]、->这四个不能重载为类的友元函数。