1.  Java四大域

ServletContext域(Application域): 整个WEB应用

HttpSession域(Session域):一次会话

ServletRequest域(Request域):整个请求链(请求转发也存在)

PageContext域(Page域):整个JSP页面,是四大作用域中最小的一个

2.  集合

  1. Collection
  2. List
  3. │├LinkedList
  4. │├ArrayList
  5. │└Vector
  6. Stack
  7. Set
  8. Map
  9. Hashtable
  10. HashMap
  11. WeakHashMap

3.  Map遍历

(1)  通过Map.keySet遍历key和value

  1. for (Integer in : map.keySet()) {
  2.  
  3. //map.keySet()返回的是所有key的值
  4.  
  5. String str = map.get(in);//得到每个key多对用value的值
  6.  
  7. System.out.println(in + " " + str);
  8.  
  9. }

(2)  通过Map.entrySet使用iterator遍历key和value

  1. Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
  2.  
  3. while (it.hasNext()) {
  4.  
  5. Map.Entry<Integer, String> entry = it.next();
  6.  
  7. System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
  8.  
  9. }

(3)  通过Map.entrySet遍历key和value

  1. for (Map.Entry<Integer, String> entry : map.entrySet()) {
  2.  
  3. //Map.entry<Integer,String> 映射项(键-值对) 有几个方法:用上面的名字entry
  4.  
  5. //entry.getKey() ;entry.getValue(); entry.setValue();
  6.  
  7. //map.entrySet() 返回此映射中包含的映射关系的 Set视图。
  8.  
  9. System.out.println("key= " + entry.getKey() + " and value= "+ entry.getValue());
  10.  
  11. }

(4)  通过Map.values()遍历所有的value,但不能遍历key

  1. for (String v : map.values()) {
  2.  
  3. System.out.println("value= " + v);
  4.  
  5. }

4.  排序

  1. 内部排序
  2. ├插入排序
  3. │├直接插入排序
  4. │└希尔排序
  5. ├选择排序
  6. │├简单选择排序
  7. │└堆排序
  8. ├交换排序
  9. │├冒泡排序
  10. │└快速排序
  11. ├归并排序
  12. └基数排序
  13. 外部排序(内外部结合)

链接:https://blog.csdn.net/happy_wu/article/details/51841244

5.  实现堆排序

若想升序则建立大根堆,若想降序,则建立小根堆

其中每个节点的值小于等于其左、右孩子的值,这样的堆称为小根堆;

其中每个节点的值大于等于其左、右孩子的值,这样的堆称为大根堆;

6.  Arrays类中sort方法源码是用什么排序实现的

对于传入的数组长度在不同的阈值内,分别对应这个不同的排序方法,主要是有归并排序、快速排序、插入排序、计数排序。特别注意的是计数排序,主要分为两种情况:

(1)byte array 字节数组长度大于29,则计数排序优先于插排;

(2)short or char array 短整型或者字符数组长度大于3200,则计数排序优先于快速排序。

7.  Session与Cookie的区别(面试官:你这边为什么用Session而不用Cookie)

(1)    Cookie数据存放在客户的浏览器上,Session数据放在服务器上。

(2)    Cookie不是很安全,别人可以分析存放在本地的Cookie并进行Cookie欺骗(考虑到安全应当使用Session)。

(3)    Session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能(考虑到减轻服务器性能方面,应当使用COOKIE)。

(4)    单个Cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个Cookie。

个人建议:将登陆信息等重要信息存放为Session,其他信息如果需要保留,可以放在Cookie中。

8.  拦截器与过滤器

过滤器,是在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的 action进行业务逻辑,比如过滤掉非法url(不是login.do的地址请求,如果用户没有登陆都过滤掉),或者在传入servlet或者 struts的action前统一设置字符集,或者去除掉一些非法字符。

拦截器,是在面向切面编程的就是在你的service或者一个方法,前调用一个方法,或者在方法后调用一个方法比如动态代理就是拦截器的简单实现,在你调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在你调用方法后打印出字符串,甚至在你抛出异常的时候做业务逻辑的操作。

区别:

(1)    拦截器是基于java的反射机制的,而过滤器是基于函数回调。

(2)    拦截器不依赖与servlet容器,过滤器依赖与servlet容器。

(3)    拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。

(4)    拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。

(5)    在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次

9.  拦截器运用

(1)    Serlvlet实现实现Filter接口

(2)    Struts2拦截器defaultStack,自定义实现Interceptor接口

(3)    SpringMVC实现HandlerInterceptor接口

10. Mybatis与Hibernate的区别

(1)    Hibernate是全自动,而Mybatis是半自动

(2)    Hibernate数据库移植性远大于Mybatis

(3)    Hibernate拥有完整的日志系统,Mybatis则欠缺一些

(4)    Mybatis相比hibernate需要关心很多细节

(5)    SQl直接优化上,Mybatis要比Hibernate方便很多

Mybatis:小巧、方便、高效、简单、直接、半自动

Hibernate:强大、方便、高效、复杂、绕弯子、全自动

Mybatis:

(1)    入门简单,即学即用,提供了数据库查询的自动对象绑定功能,而且延续了很好的SQL使用经验,对于没有那么高的对象模型要求的项目来说,相当完美。

(2)    可以进行更为细致的SQL优化,可以减少查询字段。

(3)    缺点就是框架还是比较简陋,功能尚有缺失,虽然简化了数据绑定代码,但是整个底层数据库查询实际还是要自己写的,工作量也比较大,而且不太容易适应快速数据库修改。

(4)    二级缓存机制不佳。

Hibernate:

(1)    功能强大,数据库无关性好,O/R映射能力强,如果你对Hibernate相当精通,而且对Hibernate进行了适当的封装,那么你的项目整个持久层代码会相当简单,需要写的代码很少,开发速度很快,非常爽。

(2)    有更好的二级缓存机制,可以使用第三方缓存。

(3)    缺点就是学习门槛不低,要精通门槛更高,而且怎么设计O/R映射,在性能和对象模型之间如何权衡取得平衡,以及怎样用好Hibernate方面需要你的经验和能力都很强才行。

链接:https://blog.csdn.net/w_q_q_/article/details/79032062

应届生第一次Java面试问题分享的更多相关文章

  1. IBM中国研究院、SAP、网易游戏、IBM2015应届生招聘笔试面试问题分享

    IBM中国研究院实习生 早在今年4月份.我面试的是IBM中国研究院的实习生岗位.主要是自然语言处理和语义网方向.那时我还在香港上学,两个考官对我进行的是电话面试,大概持续半个多小时,首先是我的自我介绍 ...

  2. JAVA面试宝典分享

    JAVA面试宝典分享 前言 面试题 Java面试题(上) Java面试题(中) Java面试题(下) 参考答案 其他补充内容: 项目经验 项目介绍 项目开发流程 项目管理 系统架构 第三方工具(插件) ...

  3. JavaSE 基础知识(常识概念 + 基础语法)问答总结/面试题 —— 讲给应届生的 Java 开源知识项目

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  4. 应届生/社招面试最爱问的几道Java基础问题

    本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识)如果觉得不错 ...

  5. 我人生中的第一场Java面试

    1.说起我的第一次Java面试,我不禁回想起我大学时参加校园招聘的那段日子,那时候我还是本科生,由于不是科班出身,只学过一点点Java皮毛,所以那时候对于找Java工作并没有什么概念,只是以为上过Ja ...

  6. 突然心血来潮,想写写我在java面试中遇到的事。作为一个应届生,我觉得我的情况都与大部分应届生是差不多的,希望你们能在这上面得到一些有用的

    面试过程吧,怎么说呢?从一开始接触面试到现在成功了几家,这中间我确实收获了许多,那我就从我第一次面试开始讲吧. 第一次面试是有人介绍过来的,总之还是有一位贵人相助,所以第一次面试时,面试官很好没有怎么 ...

  7. 2019应届生,用python爬虫记录自己求职经历,分享求职中的一些坑

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...

  8. java第一次笔试+面试总结

    今天是自己第一次java笔试和面试,总体感觉比预期好一点. 笔试题第一面是问答题,主要考查java基础,一共有18题,我有6道题没有写出来.第二面主要是算法题,一共有8道题,我大概写出来4道题,第三面 ...

  9. 春节过后就是金三银四求职季,分享几个Java面试妙招,轻松搞定HR!

    春节过后就是金三银四,分享几个Java面试妙招,轻松搞定HR! 2020年了,先祝大家新年快乐! 今年IT职位依然相当热门,特别是Java开发岗位.软件开发人才在今年将有大量的就业机会.春节过后,金三 ...

随机推荐

  1. archlinux 装完系统连接 wifi 网络

    查看 IP 地址 ip a 注:没有看到 IP 地址,确认没有网络.或者也可以使用命令 ping www.baidu.com 测试是否有网络. 执行该指令: sudo systemctl start ...

  2. android -------- Hawk数据库

    Hawk 是一个非常便捷的数据库  . 操作数据库只需一行代码 , 能存任何数据类型 . github 地址: https://github.com/orhanobut/hawk 一.概念 Share ...

  3. laravel框架安装Curl扩展

    然后进入根目录执行命令     composer update 完毕.

  4. git 拉取远程代码

    git 拉取远程代码 || 利用vscode编辑器自带了git,可在ctrl+~打开控制台拉取代码,非常好用哦~在实际项目开发过程中,往往是已经存在远程项目了,我们定义的需求是只需要简单的操作git, ...

  5. mysql 查询正在执行的进程-亲试ok

    命令:show processlist 每一列的含义和用途: 第一列 id,不用说了吧,一个标识,你要kill一个语句的时候很有用. 第二列 user列,显示单前用户,如果不是root,这个命令就只显 ...

  6. C语言实现过滤ASCII在0~127范围内的字符,并去除重复的字符

    #include <stdio.h> #include <string.h> /* 1.以字符串作为参数 2.找出ASCII在1~127范围内的字符 3.去掉重复字符 */ i ...

  7. Vue项目本地run与build后样式不同,build后样式不生效

    今天老大,让我改一个按钮的样式,就是鼠标放在按钮上,改变字体的颜色.觉得小意思啦,不就是:hover吗? 啊...什么鬼?本地run可以,但是build之后并没有生效!!! 我们项目引入的第三方UI库 ...

  8. Introduction of Servlet Filter(介绍javaweb组件之一过滤器filter)

    javaweb的三大组件都需要交给web服务器运行,都需要在web.xml文件中配置. ①Servlet:javax.servlet.Servlet通过http协议接受客户端的请求,并作出响应的Jav ...

  9. 得到本地电脑IP4地址

    using System.Linq;using System.Net;using System.Net.Sockets; namespace winform_udp{ public class com ...

  10. Linux配置JDK、Tomcat和Mysql免安装版

    现在已有JDK.Tomcat和mysql的tar.gz压缩文件 1.解压文件 (1)解压tar.gz tar -zxvf 待解压文件名 -C 解压到目标文件目录 (2)解压zip unzip 待解压文 ...