111111

第一部分:Java面向对象   1道题

一、重载(Overload)与重写(Override)的区别★★★

重载:同一个类中,方法名称相同,参数列表不同(参数个数不同、数据类型不同),与返回值类型无关

重写:子父类中,方法名称相同,参数列表相同(参数个数相同、数据类型相同)、返回值类型都相同。子类要重写父类的方法,方法的权限修饰符不能比父类的更低。

二、抽象类和接口异同

相同点:

  1. 、都不能直接实例化对象;
  2. 、都可以包含抽象方法,其子类必须重写这些抽象方法。

区别:

  1. 、一个类只能继承一个直接父类,却可以实现多个接口。
  2. 、接口里定义的变量只能是公共的静态的常量,抽象类中的变量是普通变量。
  3. 、抽象类有构造函数,接口没有构造函数。
  4. 、抽象类可以有抽象方法、非抽象方法,接口只能有抽象方法或者静态、默认方法。

三、String、StringBuilder、StringBuffer的区别

  1. 、String是只读字符串,内容不可改变;其余两个对象可以直接修改。
  2. 、StringBuilder适用于单线程,StringBuffer适用于多线程
  3. 、StringBuilder效率最高,String效率最低。

四、数组和ArrayList、LinkedList、HashMap集合的区别

(1)、ArrayList和LinkedList的区别   (Collection集合)

  1. ArrayList底层是数组,LinkedList底层是链表实现。
  2. ArrayList查询LinkedList增删改快
  3. ArrayList内存不足时需要动态扩容,每次是原来的1.5倍,LinkedList不需要动态扩容

(2)、数组和ArrayList的区别     (ArrayList底层就是数组)

  1. 、Array可以包含基本数据类型和对象类型;ArrayList只能包含对象类型。
  2. 、Array大小是固定的,ArrayList的大小是动态变化的。
  3. 、对于基本数据类型数据,集合使用自动装箱来减少编码工作量。但是,当处理固定大小的基本数据类型的时候,这种方式相对比较慢。
  4. 、ArrayList作为Array的增强版,提供了更多的方法和特性。

(3)、HashMap的特点       (ArrayList或LinkedList和HashMap的区别)

相比较LinkedList和ArrayList集合而言,它是双列集合,包含键值对关系

  1. 底层实现是链表数组
  2. 允许空键和空值,且键不允许重复
  3. 元素是无序的

五、final、finally、finalize的区别

被final修饰的类,不能作为父类而被子类继承,将变量或方法声明为final,可以保证它们被使用的过程中不被修改。

finally是在异常处理时提供finally块来执行任何清除操作。

finalize方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。

第二部分:JSP动态网站开发  2道题

六、九大内置(隐式)对象概述 (最低标准:写出九大内置对象名称)

out:用于页面输出

request:得到用户请求信息

response:服务器向客户端的回应消息

session:用来保存用户的信息

application:所有用户的共享信息

config:服务器配置,可以取得初始化参数

page:指当前页面转换后的Servlet类的实例

pageContext:JSP的页面容器

exception:表示JSP页面所发生的异常,在错误页中才起作用

  • session、cookie与application的区别

session和application的区别       (作用域对象)

  1. 、session是基于用户的,application是基于全局的、跨用户的。
  2. 、session从会话连接开始,生命周期开始。application是在web工程启动,生命周期开始,直到web容器关闭。

session与cookie的区别

(1)、cookie 数据存放在客户的浏览器上,session 数据放在服务器上

(2)、由于可以通过分析存放在本地的cookie 进行 cookie 欺骗,考虑到安全,应当使用 session。

(3)、session 会比较占用服务器内存,考虑到减轻服务器性能方面,应当使用 cookie。

(4)、cookie 中只能存储文本类型,session 中能存储 Object 类型。

八、Servlet页面跳转方式有哪些,并简述它们的区别(至少三点)

Servlet页面跳转方式有两种,分别是:重定向方式、请求转发方式

区别:

  1. 、重定向方式页面的路径是相对路径请求转发方式页面的路径是绝对路径
  2. 、重定向方式不一定局限于web应用中,请求转发方式只能跳转到本web应用中的页面上;
  3. 、重定向方式跳转后浏览器地址发生变化,请求转发方式跳转后地址栏不会发生变化;
  4. 、重定向方式传值有两种方法:url中带参数,session;请求转发方式传值有三种方法:url中带参数,session,request.setAttribute()。

九、简述Servlet的生命周期

servlet的生命周期分为四个阶段:

(1)、实例化  

(2)、初始化 

(3)、处理请求服务

(4)、对象销毁

过滤器的生命周期

过滤器的生命周期分为四个阶段:

(1)、实例化 

(2)、初始化

(3)、过滤 

(4)、销毁

Bean的生命周期

Bean的生命周期分为四个阶段:

(1)、实例化 

(2)、属性设置

(3)、初始化

(4)、销毁

第三部分:框架篇    2道题

十、Spring依赖注入的方式

(1)、构造器注入

(2)、setter方法注入

(3)、工厂注入

(4)、注解注入

十一、使用Spring框架的优缺点

优点:

(1)、所有框架几乎都可以和Spring整合在一起使用

(2)、避免关键字new造成的耦合问题

(3)、不需要进行明确的引用关系传递,直接通过配置完成

(4)、本身就是一个工厂,不需要再编写工厂类了

缺点:

(1)、Spring基于大量的xml配置文件,花费大量时间在配置;

(2)、Spring内容太庞大,打断点查看会出现十几二十层代码,阅览性不强

Spring MVC的优点★★★

(1)、它是基于组件技术的,并且和Spring 提供的其他基础结构紧密集成

(2)、不依赖于Servlet API

(3)、可以任意使用各种视图技术,而不仅仅局限于JSP

(4)、支持各种请求资源的映射策略

(5)、易于扩展

十二、Spring常用注解

命题点:

(1)、@Component, @Controller, @Repository, @Service 有何区别?

答:@Component, 就相当于bean标签,创建当前类对象存入spring的ioc容器

@Controller,作用于表现层(spring-mvc的注解)

@Service,作用于业务逻辑层

@Repository,作用于持久层

(2)、@Autowired 注解有什么作用?@Qualifier 注解有什么作用?

答:@Autowired作用是自动按照类型注入数据;@Qualifier 作用是在自动按照类型注入的基础之上,再按照bean的id注入数据

(3)、@Autowired和@Resource之间的区别

答:@Autowired作用是自动按照类型注入数据; @Resource作用是直接按照Bean的id注入数据

Spring MVC 常用注解

(1)、@SessionAttributes即将值放到session作用域中,写在类上面。

(2)、@PathVariable实现Restful的URL参数赋值

(3)、@RequestBody是获取请求参数的全部内容,包括key和value

(4)、@ResponseBody把响应结果转成json输出

(5)、@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上

Spring MVC注解中的@Controller和@RestController的区别

(1)、使用@Controller 注解

在对应的方法上,视图解析器可以解析返回jsp,html页面,并且跳转到相应页面。

若返回json等内容到页面,则需要加@ResponseBody注解

(2)、@RestController注解

相当于@Controller+@ResponseBody两个注解的结合;但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面

十三、Spring数据库事务管理

Spring的事务机制包括声明式事务和编程式事务。

编程式事务管理:比较灵活,但是代码量大,存在重复的代码比较多,失去了AOP的意义。

声明式事务管理:

(1)、不需要在业务逻辑代码中编写事务相关代码,只需要在配置文件配置或使用注解这种方式,没有侵入性

(2)、声明式事务的最细粒度作用于方法上

十四、Spring MVC工作原理 、执行流程

(1)、客户端发送请求到前端控制器

(2)、前端控制器查询处理器映射,找到处理请求的Controller

(3)、Controller 调用业务逻辑后,返回ModelAndView

(4)、前端控制器查询ModelAndView,找到指定视图

(5)、视图将结果返回到客户端

十五、Spring MVC的主要组件

(1)、前端控制器

(2)、处理器映射器

(3)、处理器适配器

(4)、处理器

(5)、视图解析器

(6)、视图

算法   1道题

十六、冒泡排序

int [] a = {90,56,20,45} 从小到大排序

int [] a = {90,56,20,45};

for (int i = 0; i < a.length-1; i++) {

for (int j = 0; j < a.length-i-1; j++) {

if(a[j]>a[j+1])

{

int t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

}

}

十七、斐波那契数列

有这样一组数:1 1 2 3 5 8....它表示第一个月兔子1对,第二个月兔子1对,第三个月兔子2对....请用编程实现第10个月兔子有多少对?

public int sl( int yf) {

if(yf==1)

{

return 1;

}

if(yf==2)

{

return 1;

}

return sl(yf-1)+sl(yf-2);

}

  • 水仙花

请用代码输出所有的“水仙花数”。提示:所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 1³+5³+3³。

for (int i = 100; i <=999; i++) {

int ge = i/1%10;

int shi =i/10%10;

int bai=i/100%10;

if(i == ge*ge*ge+shi*shi*shi+bai*bai*bai)

{

System.out.println(i+"是水仙花数");

}

}

  • 九九乘法表

for (int i = 1; i <=9; i++) {

for (int j = 1; j <=i; j++) {

System.out.print(i+"*"+j+"="+j*i+"\t");

}

System.out.println();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值