servlet
servlet是什么?
servlet是运行于web服务器上的能够动态生成页面的程序,是客户端请求与服务器上的数据库或应用程序之间的一个中间层
servlet的生命周期?
1.Servlet 通过调用 init () 方法进行初始化;
2.Servlet 调用 service() 方法来处理客户端的请求。
3.调用destroy来终止程序
4.最后通过JVM的垃圾回收器来回收垃圾
反射?
反射只能调用类默认无参构造方法,是这两个baiclass的类定义
javax.servlet.http.HttpServletRequest
javax.servlet.http.HttpServletResponse
反射读出其中的方法
这个两个是接口,实际应用中应该传入真实dao的方法名和实现类
说说JSP(及其优点)
jsp页面混合了servlet和html,可以看做是html和java语言结合的产物。一个jps通过动态编译成一个servlet运行。
jsp的优点:jsp中有html界面编写可视化的优点和java动态生成页面的特点。html不能动态生成数据而servlet生成html又比较繁琐,故而使用jsp。
sql优化
break与return的区别
前者一般用于结束循环语句,结束离它最近的一个循环;后者直接结束整个方法(如main方法)。
接口和抽象的区别
接口中的类都是抽象类,抽象中的类可以是普通类也可以是非抽象类
接口中的方法都是抽象方法,抽象中可以有抽象方法和普通方法
接口可以多次implement,而抽象只能单次extends
接口中的方法可以实现,接口可以定义,而抽象只能定义
接口中没有构造方法,抽象中可以有构造方法
重载和重写的区别
重写中方法名相同,参数列表不同(类型,个数,顺序),且发生在同一类中。和返回值类型无关,和方法的修饰符列表无关。
重载表示子类中的方法可以与父类中的某个方法的名称和参数完全相同,通过子类创建的实例对象调用这个方法时,将调用子类中的定义方法,这相当于把父类中定义的那个完全相同的方法给覆盖了,这也是面向对象编程的多态性的一种表现。子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。如果父类的方法是private类型,那么,子类则不存在覆盖的限制,相当于子类中增加了一个全新的方法。
Cookie和Session的区别
1.存储容量不同:cookie长度有限且较短,session长度理论上是无限的;
2.存储位置不同:cookie存在于客户端,session存在于浏览器服务端;
3.隐私策略不同:cookie对客户端是可见的,是不安全的;session存储在服务器上,对客户端是透明的,是安全的。
4.跨域支持上不同:cookie支持跨域名访问,session不支持跨域名访问;
final、finally、finalize的区别
1.final是修饰符,表示属性不可变。被final修饰的类不能被继承,被final修饰的方法不能重载,被final修饰的量是常量;
2.finally是异常处理语句块中的表示总执行的一部分;
3.finalize是object类中的一个方法,存在于垃圾回收机制中,用来调用被回收的对象。
==和equals的区别
1.当==和equals应用于基本数据类型时:他们都是比较值是否相等;
2.当应用于引用数据类型时:
(1)重写equals方法,如String:==比较的是指向的地址是否相等,而equals比较的是指向的内容是否相等;
(2)不重写equals方法,如自定义的User:==和equals比较的都是地址是否相等。
for和for each的区别
foreach也叫增强for循环,foreach适用于只是进行集合或数组遍历(以及迭代),for则在较复杂的循环中效率更高;
foreach不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环。
所以相比较下来for循环更为灵活。
do和do while有什么区别
do…while与 while语句的运行方式基本相同,只是 do…while语句要先执行一次循环体的内容,然后再判断布尔条件。如果满足条件则执行循环体,不满足条件时退出循环体。
接口可以继承多个接口吗
可以
8种基本数据类型与3种引用数据类型
基本数据类型:byte int short long float double char boolean
引用类型: Integer String