【面试题解析】-- 20200408Java软件开发工程师面试题解析

1. 什么是线程池?

线程池,其实质上就是一个存放对象池,为了提高程序的效率,在程序初始化初期就创建了一定数量的线程对象,保存到线程池中,之后要使用多线程,直接从线程池中取出一个线程对象即可。

2. 你是否用过nosql?为什么要使用?

NoSQL(Not Only SQL,不仅仅是SQL),即非关系型数据库,常见的有Redis、Memcache、ES等,使用缓存的目的是为了提高程序的效率,减轻数据库服务器的压力,因为非关系型数据库是直接操作缓存的,效率比较高。

3. 请谈谈jsp的执行过程

如果jsp被第一次访问,那么首先会将jsp代码翻译成java代码,然后在把翻译过后的java代码,编译成.class结尾的字节码,最后有jvm执行字节码。
如果jsp非首次被访问,那么直接执行之前就已经编译好的.class结尾的字节码。

4. jsp与servlet有什么区别?

  • jsp就是servlet,但是servlet不一定是jsp。
  • jsp是由html与java代码共同构成的,以.jsp后缀结尾的文件,而servlet是一个纯粹的java文件。
  • jsp侧重于页面的展示,servlet侧重于业务逻辑的处理。

5. mybatis与hibernate之间的区别是什么?

  • mybatis是非全自动的对象关系映射,hibernate是全自动的对象关系映射框架。
  • mybatis需要手动编写SQL,hibernate可以根据实体类自动生成SQL语句。
  • mybatis的灵活性比较好,hibernate数据库可移植性比较好。
发布了141 篇原创文章 · 获赞 75 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_43199016/article/details/105402321