四海汉得Web前端开发工程师线上笔试——解析21~40

21.常用的关系数据库管理系统主要有:Oracle,MS SQL Server,IBM DB2,Sybase等。


22.ng-service。server 是指人,“服务员,服务生”的意思,而service是“服务”,名词。一个指人这个实体,一个指服务这项事物。


23.RDBMS即关系数据库管理系统(Relational Database Management System),是将数据组织为相关的行和列的系统,而管理关系数据库的计算机软件就是关系数据库管理系统,常用的数据库软件有Oracle、SQL Server等。


24.方法可以和class同名。constructor在一个对象被new时执行


25.关于JavaScript中的运算符问题。由于示例代码中的“ ? : ”运算符优先级远小于“+”运算符的优先级,因此代码应该解读为:
['Value is ' + (val != '0')] ? 'define' : 'undefine' ,很显然,“?”前面的一部分包含字符串,布尔值一定为true,因此此段代码运行的结果就是 C选项 define。


26. a class can implement more than one interface


27.d。sql语句本质上就好比一个java文件,都是要经历先解析编译后,处理优化,最后执行返回结果的过程


28.程序通过编译,输出结果为:x=103


29.A:人工管理阶段

30.

31.C 为字符串。 由两个字符组成  'a'  '\0' 。因为他用双引号引起来了


32.手机端屏幕是小于768px的,bootstrap col-xs代表屏幕小于768px,所以在手机端隐藏是hidden-xs。


33.Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。不能实现无缝瀑布流布局


34.UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。GBK是汉字编码,是双字节码,可表示繁体字和简体字。


35.D:HashMap 把 Hashtable 的 contains 方法去掉了 ,改成 containsvalue 和 containsKey 。因为 contains 方法容易让人引起误解。
HashMap和Hashtable都实现了Map接口
HashMap的线程不安全,而Hashtable的线程安全
HashMap允许null键和null值存在,Hashtable不允许null键或null值存在,否则会报空指针异常
HashMap中没有contains方法,只有containsKey()和containsValue()方法,Hashtable中有contains()方法,用于判断映射表中是否存在与指定值关联的键


36.ACD 在java中,子类构造器会默认调用super()(无论构造器中是否写有super()),用于初始化父类成员,同时当父类中存在有参构造器时,必须提供无参构造器,子类构造器中并不会自动继承有参构造器,仍然默认调用super(),使用无参构造器。因此,一个类想要被继承必须提供无参构造器。    PS:方法没有继承一说,只有重载和重写
子类可以获得父类的全部Field和方法,但是不能获得父类的构造器。


37.

38.ABCD JAVA反射机制概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
ava反射机制主要提供了以下功能:
在运行时判断任意一个对象所属的类;
在运行时构造任意一个类的对象;
在运行时判断任意一个类所具有的成员变量和方法;
在运行时调用任意一个对象的方法;
生成动态代理。


39.b选项说反了。线程方面,Struts1 Action是单例模式并且必须是线程安全的,因为只有Action的一个实例来处理所有请求。要求线程必须是安全的。
Struts2 Action对象为每一个请求创建一个独立的对象实例,因此不存在线程安全的问题。

特点

struts1

struts2

Action 类分析

Struts1要求Action类继承一个抽象基类而不是使用接口;

Struts2的Action类可以实现一个Action接口,也可以实现其他接口。使可选和定制的服务成为可能。Struts2提供一个ActionSupport基类去实现常用的接口。Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。

Servlet 依赖分析

Struts1 Action 依赖于Servlet API,因为当一个Action被调用时HttpServletRequest 和 HttpServletResponse被传递给execute方法。

Struts 2 Action不依赖于容器,允许Action脱离容器单独被测试。如果需要,Struts2 Action仍然可以访问初始的request和response。但是,其他的元素减少或者消除了直接访问HttpServetRequest 和 HttpServletResponse的必要性。

实例模式

Struts1 Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。单例策略限制了Struts1 Action能作的事,并且要在开发时特别小心。Action资源必须是线程安全的或同步的。

Struts2 Action对象为每一个请求产生一个实例,因此没有线程安全问题。(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)

表达式语言

Struts1整合了JSTL,因此使用JSTL EL。这种EL有基本对象图遍历,但是对集合和索引属性的支持很弱。

Struts2可以使用JSTL,但是也支持一个更强大和灵活的表达式语言-- "Object Graph Notation Language" (OGNL).

捕获输入

Struts1使用ActionForm对象捕获输入。所有的ActionForm必须继承一个基类。因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。动态Bean(DynaBeans)可以作为创建传统ActionForm的选择,但是,开发者可能是在重新描述(创建)已经存 在的JavaBean(仍然会导致有冗余的javabean)。

Struts 2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。输入属性可能是有自己(子)属性的rich对象类型。Action属性能够通过web页面上的taglibs访问。Struts2也支持ActionForm模式。rich对象类型,包括业务对象,能够用作输入/输出对象。这种ModelDriven特性简化了taglib对POJO输入对象的引用。

可测性

测试Struts1 Action的一个主要问题是execute方法暴露了servlet API(这使得测试要依赖于容器)。一个第三方扩展--Struts TestCase--提供了一套Struts1的模拟对象(来进行测试)。

Struts 2 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。



40.答案:A。
解析:
1. 并发:在 操作系统 中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个 处理机 上运行。其中两种并发关系分别是同步和互斥
2. 互斥:进程间相互排斥的使用临界资源的现象,就叫互斥。
3. 同步: 进程之间的关系不是相互排斥临界资源的关系,而是相互依赖的关系。进一步的说明:就是前一个进程的输出作为后一个进程的输入,当第一个进程没有输出时第二个进程必须等待。具有同步关系的一组并发进程相互发送的信息称为消息或事件。
  其中并发又有伪并发和真并发,伪并发是指单核处理器的并发,真并发是指多核处理器的并发。 
4. 并行:在单处理器中多道程序设计系统中,进程被交替执行,表现出一种并发的外部特种;在多处理器系统中,进程不仅可以交替执行,而且可以重叠执行。在多处 理器上的程序才可实现并行处理。从而可知,并行是针对多处理器而言的。并行是同时发生的多个并发事件,具有并发的含义,但并发不一定并行,也亦是说并发事 件之间不一定要同一时刻发生。
5. 多线程:多线程是程序设计的逻辑层概念,它是进程中并发运行的一段代码。多线程可以实现线程间的切换执行。
6. 异步:异步和同步是相对的,同步就是顺序执行,执行完一个再执行下一个,需要等待、协调运行。异步就是彼此独立,在等待某事件的过程中继续做自己的事,不 需要等待这一事件完成后再工作。线程就是实现异步的一个方式。异步是让调用方法的主线程不需要同步等待另一线程的完成,从而可以让主线程干其它的事情。
  异步和多线程并不是一个同等关系,异步是最终目的,多线程只是我们实现异步的一种手段。异步是当一个调用请求发送给被调用者,而调用者不用等待其结果的返回而可以做其它的事情。实现异步可以采用多线程技术或则交给另外的进程来处理。



职位要求:

1.属性HTML/JavaScript/CSS等Web开发技术。

2.熟悉常用JavaScript语言,AngularJS,Recact,Vuejs框架的设计思想和实现方法。

3.属性Sass,Bootstrap等CSS框架。

4.属性使用Git等版本控制工具。

5.了解Java后端技术和框架的实现方式。



新加评论 评论标题: