软件工程面试题(六)

发布于:2025-03-28 ⋅ 阅读:(20) ⋅ 点赞:(0)

1、forward及redirect 的区别?有哪些方式实现

  1. <jsp:forward>重定向后url地址栏地址不变还是原来的地址;而response.sendRedirect()重定向后url地址栏地址显示的请求后的新地址。
  2. <jsp:forward>重定向的时候可以保存回话信息,因此可以使用request来进行参数传递,在新页面可以使用request.getAttribute ()来得到参数。而response.sendRedirect()不支持此通过request进行参数传递。它唯一的传值方式为response.sendRedirect(“example.jsp?aa=123”),在新的页面通过request.getParameter(“aa”)来得到参数值

2、多线程、同步实现方法?     

1)实现线程有两种方法: 继承Thread类或者实现Runnable接口

2) 实现同步也有两种,一种是用同步方法,一种是用同步块.. 同步方法就是在方法返回类型后面加上synchronized, 比如:

public void synchronized add(){...}

同步块就是直接写:synchronized (这里写需要同步的对象){...}

3、集合类有哪些?有哪些方法?

集合类 ArrayList  LinkedList  HashSet  HashMap

方法:add(),remove(),put(),addAll(),removeAll()

4、java中实现多态的机制是什么

重写,重载

方法的重写Overriding和重载Overloading是Java多态性的不同表现。

重写Overriding是父类及子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法及其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。

果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

5、静态的多态和动态的多态的区别

静态的多态: 即为重载 ;方法名相同,参数个数或类型不相同。(overloading)

动态的多态: 即为重写;子类覆盖父类的方法,将子类的实例传及父类的引用调用的是子类的方法  实现接口的实例传及接口的引用调用的实现类的方法。

6、作用域Public,private,protected.以及不写时的区别

public整个java程序中都可以访问      

protected在其他包中不可以访问

friendly只有当前包或当前内可以访问,其他都不行           

private只有当前内可以访问

不写的话默认是friendly

7、extends和implement的不同

extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了  比如 class A extends B implements C,D,E

8、join及left join的区别:

inner join(等值连接) 只返回两个表中联结字段相等的行

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录

right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录