【校招】面试_中移在线服务有限公司_开发工程师

1 面试信息

面试形式:视频面试
面试时间:2020-03-18 15:30
面试时长:15分钟
面试职位:开发工程师(java开发)

2 面试问题

1.Servlet和JSP有什么区别
2.JSP有哪些内置对象
3.cookie和session的不同之处
4.Spring中的IoC是什么
5.MySQL的引擎有哪些
6.介绍MySQL的事务以及索引
7.介绍HashMap
8.Java的抽象类和接口有什么区别
9.GC(垃圾回收)原理
10.GC算法有什么
11.Linux的top命令在什么情况下使用


* 面试问题答案整理

1.答:Servlet是一种服务器端的Java应用程序,负责处理客户端请求,由Web容器加载和管理,用于生成动态Web内容。JSP是Servlet的扩展,本质上还是Servlet,每个JSP页面就是一个Servlet实例,JSP页面会被Web容器编译成Servlet,Servlet再负责响应用户请求。Servlet适合动态输出Web数据和业务逻辑处理,对于html页面内容的修改非常不方便;JSP是在html代码中嵌入Java代码,适合页面的显示。

2.答:JSP共有以下9个内置对象:
(1)pageContext:表示页容器,作用是取得任何范围的参数。
(2)request:服务器端取得客户端的信息,如获取头信息 、Cookie、请求参数等。
(3)response:服务器端回应客户端信息,如重定向、添加Cookie,设置头标。
(4)session:标识用户,记录会话期数据信息。
(5)application:表示整个服务器,是多客户端共享对象。
(6)config:取得初始化参数。
(7)exception:表示错误页的处理操作,page指令的isErrorPage属性值为true时生效。
(8)page:代表JSP页面自身。
(9)out:向web浏览器内输出各种数据类型的内容,并且管理应用服务器上的输出缓冲器,缓冲器默认值为8KB。

3.答:区别:
(1)数据存储位置:cookie数据存放在用户浏览器上,session数据存放在服务器上。
(2)安全性:cookie不安全,本地存放的cookie可以被解析并进行cookie欺骗,考虑到安全应当使用session。
(3)服务器性能:session会在一定时间内保存在服务器上。若要减轻服务器性能,应当使用cookie。
(4)数据大小:单个cookie保存的数据不能超过4K。
(5)信息重要程度:重要信息考虑用session保存,其余的可以放在cookie中。

4.答:IoC全称为Inversion of Control,翻译为 “控制反转”,它还有一个别名为DI(Dependency Injection),即依赖注入。所谓IoC ,就是由Spring IOC容器来负责对象的生命周期和对象之间的关系。

5.答:
(1)InnoDB:MySQL默认的事务型引擎,也是最重要、最广泛的存储引擎,用来处理大量短期事务。
(2)MyISAM:没有提供对数据库事务的支持,也不支持行级锁和外键。
(3)Memroy:支持Hash索引,因此查找操作非常快。
(4)Merge:MyISAM引擎的一个变种。Merge表是由多个MyISAM表合并而来的虚拟表。

6.答:
事务:主要用于处理操作量大,复杂度高的数据。在MySQL中只有使用了InnoDB数据库引擎的数据库或表才支持事务。事务处理可以用来维护数据库的完整性,保证成批的SQL语句要么全部执行,要么全部不执行。事务用来管理Insert,Update,Delete语句。
事务满足四个条件(ACID):
(1)原子性(Atomicity,或称不可分割性):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
(2)一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
(3)隔离性(Isolation,又称独立性):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。
(4)持久性(Durability):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

索引:是一张保存了主键与索引字段,并指向实体表记录的表。索引分单列索引和组合索引。

7.答:哈希表以数组为主干,将查找元素的关键字通过哈希函数映射到数组具体位置,实现O(1)的时间复杂度。不同的元素通过哈希函数可能得到同样的地址,这就产生了哈希冲突,或称哈希碰撞,解决冲突的方案有:开放定址法,再散列函数法,链地址法。HashMap即采用了链地址法,即数组加链表的形式,将产生冲突的元素用链表保存起来。

8.答:
抽象类:
(1)abstract修饰符修饰;
(2)不能被实例化;
(3)含有抽象方法(abstract修饰,无方法体)的类必须定义为抽象类;
(4)抽象类可以没有抽象方法,也可以含有具体方法;
(5)子类必须实现抽象父类中所有的抽象方法,否则子类也必须被定义为抽象类;
(6)不能有抽象的构造方法或抽象的静态方法。
接口:
(1)interface修饰符修饰;
(2)不能被实例化;
(3)接口中的所有方法都必须是抽象的,接口中的方法默认被定义为public abstract;
(4)接口中的所有属性默认被定义为public static final。

区别:
(1)抽象类里可以有构造方法,而接口内不能有构造方法;
(2)抽象类中可以有普通成员变量,而接口中不能有普通成员变量;
(3)抽象类中可以包含非抽象的普通方法,而接口中所有的方法必须是抽象的;
(4)抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型;
(5)抽象类中可以包含静态方法,接口内不能包含静态方法;
(6)抽象类中的静态成员变量的访问类型可以任意,但接口中的变量只能是public static类型;
(7)一个类只能继承一个类,但可以实现多个接口。

9.答:对于Java对象来讲,如果说这个对象没有被其他对象所引用,该对象就是无用的,被称为垃圾,其占用的内存也就要被销毁。Java中标记垃圾的算法主要有两种:引用计数法和可达性分析算法。

10.答:Java中存在着四种垃圾回收算法:标记清除算法、复制算法、标记整理算法以及分代回收算法。

11.答:top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值