面试题总结

1.下列哪一种叙述是正确的()

  A. abstract修饰符可修饰字段、方法和类

  B.抽象方法的body部分必须用一对大括号{ }包住

  C.声明抽象方法,大括号可有可无

  D.声明抽象方法不可写出大括号

  答案:D

abstract不能修饰字段,抽象方法不用实现,不能用{}.


2.指出正确的表达式 C 

A byte=128;  

B Boolean=null;  

 C long l=0xfffL;  

D double=0.9239d;


3.public class Person{       C
static int arr[] = new int[5];
public static void main(String a[]) {

System.out.println(arr[0]); }  
}

A、编译时将产生错误        B、编译时正确,运行时将产生错误 C、输出零            D、输出空


4.不能用来修饰interface的有:()A C D

A.private  B.public  C.protected  D.static


5.jsp有哪些内置对象?作用分别是什么?

JSP共有以下9种基本内置组件

 1、request对象 客户端请求,此请求会包含来自GET/POST请求的参数通过它才能了 解到客户的需求,然后做出响应。

 2、response对象 响应客户请求的有关信息

 3、session对象 它指的是客户端与服务器的一次会话,从客户端连到服务器的一个      WebApplication开始,直到客户端与服务       器断开连接为止。

 4、out对象   它是JspWriter类的实例,是向客户端输出内容常用的对象

 5、page对象   它是指向当前JSP页面本身,有点象类中的this指针,它是 java.lang.Object类的实例

 6、application对象 它实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭

 7、exception对象 它是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。

 8、pageContext对象 它提供了对JSP页面内所有的对象及名字空间的访问

 9、config对象 它是在一个Servlet初始化时,JSP引擎向它传递信息用的


6.jsp有哪些动作?作用分别是什么?

答:JSP共有以下6种基本动作
jsp:include:在页面被请求的时候引入一个文件。
jsp:useBean:寻找或者实例化一个JavaBean。
jsp:setProperty:设置JavaBean的属性。
jsp:getProperty:输出某个JavaBean的属性。
jsp:forward:把请求转到一个新的页面。
jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记


7.post与get的区别?

 1.post传输数据时,不在URL中显示出来,而get方法要在URL中显示

 2.post传输数据量大,而get传输数据小

 3.post向服务器传数据,get从服务器取数据

 4.post方式要比get方式安全


8.函数cast(2.5 as int)/2 的执行结果是:1.5


9.FLOOR——对给定的数字取整数位
SQL> select floor(2345.67) from dual;

FLOOR(2345.67)
--------------
2345

CEIL-- 返回大于或等于给出数字的最小整数
SQL> select ceil(3.1415927) from dual;

CEIL(3.1415927)
---------------
4

ROUND——按照指定的精度进行四舍五入
SQL> select round(3.1415926,4) from dual;

ROUND(3.1415926,4)
------------------
3.1416

TRUNC——按照指定的精度进行截取一个数
SQL> select trunc(3.1415926,4) from dual;

ROUND(3.1415926,4)
------------------
3.1415


10.在oracle的聚合函数中,合计函数、最大值函数、最小值函数、平均值函数分别是 count 、max、min、avg


11.数据库系统的核心是 数据库管理系统


12.

  构造方法 普通成员变量 普通方法 静态方法 变量访问类型
抽象类 可以 可以 可以 可以 任意
接口 不可以 不可以 不可以 不可以 只能为 public static

 1.但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型

 2.接口中定义的变量只能是public  static类型,并且默认为public static类型

 3. 接口更多的是在系统框架设计方法发挥作用,主要定义模块之间的通信,而抽象类在代码实现方面发挥作用,可以实现代码的重用


13.&与&&的区别

&按位与  &&逻辑与

&两边都要判断

&&只要前面是false就输出false,而不继续判断后面


14.error和exception有什么区别?

  error:系统级错误或程序不必处理的异常,比如:内存资源不足 这种错误无能为力

  exception:需要捕捉或需要程序处理的异常,因为程序设计瑕疵或外部输入引起的异常,程序必须处理

  exception 分为: 运行时异常:因为错误的操作引起的

                             受检查异常:程序可以自我的处理

15.JavaScript标准中规定了6种类型:Undefined,Null,Boolean,String,Number,Object

16.String,StringBuffer,StringBuilder区别:

执行速度:Stringbuilder->StringBuffer->String

String:不可改变  Stringbuffer和StringBuilder可以改变 

StringBuffer单线程 线程安全 可以实现同步  StringBuilder多线程  线程不安全

17.WebService是一种跨编程语言和跨操作系统平台的远程调用技术。

18.B/S 与C/S的联系与区别?

C/S Client/Server 局域网内高性能的数据库交互,安装专用客户端软件。

B/S Browser/Server 浏览器与数据库进行交互。

20.IOC和AOP的概念以及在spring中是如何应用的

IOC 控制反转 容器通过配置文件注入就是IOC的思想。  利用反射机制实例化类

AOP 面向切面编程 在不修改代码的情况下,给程序动态同意添加的一种技术。 利用动态代理机制

21.简述RBACRole-Based Access Control)

基于角色的访问控制(Role-Based Access Control)作为传统访问控制(自主访问,强制访问)的有前景的代替受到广泛的关注。在RBAC中,权限与角色相关联,用户通过成为适当角色的成员而得到这些角色的权限。


22.解决hibernate 1+n 问题?

 1.延迟加载 2.默认fetch=“select” 把fetch设置成“join” 但失去了延迟加载的特性

Hibernate的两个类设置了manyToOne(oneToMany)之后,在查询的时候,由于N 对1的一方默认的fetch=FetchType.EAGER,所以会把被关联          的对象一起取出来
      解决方法一:设置fetch=FetchType.LAZY,这种方法在合适的时候(具体使用到对象时)还是会发出select语句。
      解决方法二:
                         //List<Student> students= (List<Student>)session.createCriteria(Student.class).list();
                         List<Student> students= (List<Student>)session.createQuery("from Student").list();
                         也就是用session.createCriteria()做查询,而不是用createQuery。
       解决方法三:使用BatchSize(size=5)方法,他会发出1+N/5条select语句。
       解决方法四:使用join fetch做外连接查询。from Topic t left join fetch t.category c


23.写一个单例模式的类出来:

public class Singleton {  
  private static Singleton instance = null;
  public static synchronized Singleton getInstance() {
  //这个方法比上面有所改进,不用每次都进行生成对象,只是第一次     
  //使用时生成实例,提高了效率!
  if (instance==null)
    instance=new Singleton();
return instance;   } 
} 



24.写出冒泡排序:

冒泡排序法:关键字较小的记录好比气泡逐趟上浮,关键字较大的记录好比石块下沉,每趟有一块最大的石块沉底。

算法本质:(最大值是关键点,肯定放到最后了,如此循环)每次都从第一位向后滚动比较,使最大值沉底,最小值上升一次,最后一位向前推进(即最后一位刚确定的最大值不再参加比较,比较次数减1)


复杂度 : 时间复杂度  O (n2) ,空间复杂度 O (1)

/**
 * 冒泡排序
 *
 */
public class Bubble {

	public static void main(String[] args) {
		int[] array = { 49, 38, 65, 97, 76, 13, 27 };
		buddleSort(array);
		for (int i = 0; i < array.length; i++) {
			System.out.println(array[i]);
		}
	}

	public static void buddleSort(int[] array) {
		int temp;
		for (int i = 0; i < array.length; i++) {//趟数
			for (int j = 0; j < array.length - i - 1; j++) {//比较次数
				if (array[j] > array[j+1]) {
					temp = array[j];
					array[j] = array[j+1];
					array[j+1] = temp;

				}
			}
		}
	}
}


25.策略模式:定义了算法族,并分别封装起来,让它们之间可以相互替换。

   观察者模式:定义了对象间一对多依赖

26.CI服务器:持续集成服务器

     1、发现bug更加容易;
     2、 提供快速的反馈;
     3、 隔离问题;
     4、 确保一个持续可靠的build

27.单元测试的好处:
 1.一种验证行为 2. 设计行为 3. 编写文档的行为 4.回归性
  目的:1.保证代码质量 2.保证代码可维护 3.保证代码可扩展 
28.开源项目:1.sitemsh 2.springside 3.poi 4 lucene 5 ehcache 6 dom4j  
29.spring的优点:七点
  1.ioc  对象依赖关系交给spring
  2.aop 便于面向切面编程
  3.提供事务管理
  4.消除过多的单例 
  5.很好的集成主流框架
  6.非侵入式的
  7.易于单元测试
30.struts2的优点:7点
  1.MVC结构清晰
  2.OGNL参数传递
  3.全局结果和声明异常
  4.强大的拦截器  例如:异常,上传,验证
 5.易于测试
 6.易于扩展插件
7.类型转换器
31.hibernate的优点:
  1.支持各种关系型数据库,可以跨平台
  2.sql基本自动生成,特殊情况写一些hql
  3.非侵入式,是轻量级框架
  4.支持缓存机制
缺点:不适合批量处理
32.springmvc与strtus2的区别:
  1.springmvc 实现100%零配置
   2.struts2基于类的拦截  springmvc基于方法的拦截
  3.spirngmvc 方法之间是独立的,request response 不是共享的
           struts2   虽然方法之间也是独立的,但action的变量时共享的,比较混乱
  4.struts2 对rquest session 进行了线程安全同时也消耗了内存。
33.拦截器和过滤器的区别:5点
  1.拦截器 基于java反射机制                               过滤器 基于函数回调
         2.拦截器 不依赖于servlet容器                           过滤器 依赖servlet容器
         3.拦截器 可以被调用多次                                 过滤器 在容器初始化时只能被调用一次
         4.拦截器 只对action请求起作用                         过滤器 对所有的请求都起作用
         5.拦截器 可以访问action上下文、值栈里的对象  过滤器 不可以
34.struts2的5个默认拦截器:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值