2020年Java初级开发面试题_极悦注册
专注Java教育14年 全国咨询/投诉热线:444-1124-454
极悦LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 Java学习 2020年Java初级开发面试题

2020年Java初级开发面试题

更新时间:2020-01-07 14:42:40 来源:极悦 浏览2452次


2020年Java初级开发面试题


  1、如何从FutureTask不阻塞获取结果


  get(long timeout,TimeUnit unit),超时则返回


  轮询,先通过isDone()判断是否结束,然后调用get()


  2、 blockingqueue如果存放了比较关键的数据,系统宕机该如何处理


  其实这个是一个开放性问题,不同的人会给出不同的答案,大家可以自行发挥,也可以讨论一下更好的答案。


  将队列持久化,比较麻烦,需要将生产数据持久化到磁盘,持久化成功才返回,消费者线程从磁盘加载数据到内存阻塞队列中,维护消费offset,启动时,根据消费offset从磁盘加载数据


  加入消息队列,保证消息不丢失,生成序列号,消费幂等,根据消费进程决定系统重启后的生产状态


  3、简单介绍下springMVC和struts2的区别有哪些?


       1) springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。2)springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法的形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。3)Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。


  4、 NIO与传统I/O的区别


  1)节约线程,NIO由原来的每个线程都需要阻塞读写变成了由单线程(即Selector)负责处理多个channel注册(register)的兴趣事件(SelectionKey)集合(底层借助操作系统提供的epoll()),netty bossgroup处理accept连接(没看明白为什么bossgroup设置多个thread的必要性),workergroup处理具体业务流程和数据读写


  2)NIO提供非阻塞操作


  3)传统I/O 以流的方式处理数据,而 NIO 以块的方式处理数据,NIO提供bytebuffer,分为堆内和堆外缓冲区,读写时均先放到该缓冲区中,然后由内核通过channel传输到对端,堆外缓冲区不走内核,提升了性能


  5、list中存放可重复字符串,如何删除某个字符串


  1)调用iterator相关方法删除


  2)倒删,防止正序删除导致的数组重排,index跳过数组元素问题


2020年Java初级开发面试题


      以上就是极悦注册机构小编介绍的“2020年Java初级开发面试题”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。


相关推荐







提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>