面试复盘

1
angularjs1使用了mvc进行web开发,其中控制层一般用什么语言来定义 正确答案 A
A javascript
B html
C css
D jquery
2
AngularJS1中指定控制器的是哪个指令? 正确答案 D
A ng-route
B ng-template
C ng-model
D ng-controller
3
以下为一段浏览器中可运行的Javascript 代码,则运行该段Javascript代码的 页面弹出框中显示的结果是:() 正确答案 21
var obj = {“key”:“1”,“value”:“2”};
var newObj = obj;
newObj.value += obj.key;
alert(obj.value);
4
@SuppressWarnings(“deprecation”)的功能是什么? A
A 屏蔽不赞同使用的类和方法的警告
B 屏蔽在强制类型转换的时候编译器给出的警告
C 关闭所有警告信息
D 当在可序列化的类上缺少serialVersionUID定义的警告
解析:本题考查注解编程,对java三大注解是否了解:
@SuppressWarnings这是java三大注解之一,主要功能是屏蔽相应的警告。
里面的deprecation修饰符则是对java中已经过时或者废弃方法的警告。
@SuppressWarnings(“deprecation”)的功能是屏蔽不赞同(就是过时废弃的意思)使用的类和方法的警告
5
下列选项中,不属于CSS3样式选择器的是( )正确答案 D
A empty选择器
B root 选择器
C target选择器
D ID选择器
解析 这题应该问的是 CSS3中的样式选择器 其他三个都不是样式选择器
6
HTML里的哪一部分Javascript 会在页面加载的时候被执行()//答案 D
A : 文件头部
B : 文件尾
C : 标签部分
D : 标签部分
解析:JS有可能会修改DOM,最为经典的document.write,这意味着,在JS执行完成前,后续所有资源的下载可能是没有必要的,这是js阻塞后续资源下载的根本原因。当浏览器加载html文件并解析到时,页面也就是并没有被解析,浏览器会等到中的js执行完再加载页面。
7

在 myjsp.jsp 中,关于下面的代码说法错误的是: ( ) //正确答案 A
<%@ page language=“java” import=“java.util.*” errorPage=“error.jsp” isErrorPage=“false” %>
A 该页面可以使用 exception 对象
B 该页面发生异常会转向 error.jsp
C 存在 errorPage 属性时,isErrorPage 是默认为 false
D error.jsp 页面一定要有isErrorPage 属性且值为 true
解析:exception是JSP九大内置对象之一,其实例代表其他页面的异常和错误。只有当页面是错误处理页面时,即isErroePage为 true时,该对象才可以使用。对于C项,errorPage的实质就是JSP的异常处理机制,发生异常时才会跳转到 errorPage指定的页面,没必要给errorPage再设置一个errorPage。所以当errorPage属性存在时, isErrorPage属性值为false
8
如何规避javascript多人开发函数重名问题? //正确答案A B
A 可以通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀
B 每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性
C 以上答案都不正确
解析:首先是通过命名规范,比如根据不同的开发人员实现的功能,在函数名加前缀,虽然函数名看起来复杂,发布的时候还是可以替换,从而优化。
还有一种办法是,每个开发人员都把自己的函数封装到类中,然后调用的时候即使函数名相同,但是因为是要类.函数名来调用,所以也减少了重复的可能性。
9
下列哪些是块级元素()//正确答案 B D E
A input
B ul
C hr
D li
E div
F form
解析:
1)行内元素有:a b span img input select strong
(2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p
10
下面描述属于java虚拟机功能的是? //正确答案 A B C D
A 通过 ClassLoader 寻找和装载 class 文件
B 解释字节码成为指令并执行,提供 class 文件的运行环境
C 进行运行期间垃圾回收
D 提供与硬件交互的平台
11
某下对this对象的理解哪些是正确的 () // 正确答案 A B D
A this总是指向函数的直接调用者(而非间接调用者);
B 如果有new关键字,this指向new出来的那个对象;
C 在事件中,this总是指向触发这个事件的对象;
D this是函数运行时自动生成的一个内部对象,只能在函数内部使用;
解析:在事件中,this指向触发这个事件的对象, 特殊的是,IE中的attachEvent中的this总是指向全局对象Window;
12
关于Java中的ClassLoader下面的哪些描述是错误的:( )//正确答案 B D F
A 默认情况下,Java应用启动过程涉及三个ClassLoader: Boostrap, Extension, System
B 一般的情况不同ClassLoader装载的类是不相同的,但接口类例外,对于同一接口所有类装载器装载所获得的类是相同的
C 类装载器需要保证类装载过程的线程安全
D ClassLoader的loadClass在装载一个类时,如果该类不存在它将返回null
E ClassLoader的父子结构中,默认装载采用了父优先
F 所有ClassLoader装载的类都来自CLASSPATH环境指定的路径

解析:A、java中类的加载有5个过程,加载、验证、准备、解析、初始化;这便是类加载的5个过程,而类加载器的任务是根据一个类的全限定名来读取此类的二进制字节流到JVM中,然后转换为一个与目标类对应的java.lang.Class对象实例,在虚拟机提供了3种类加载器,引导(Bootstrap)类加载器、扩展(Extension)类加载器、系统(System)类加载器(也称应用类加载器)。A正确
B、一个类,由不同的类加载器实例加载的话,会在方法区产生两个不同的类,彼此不可见,并且在堆中生成不同Class实例。所以B前面部分是正确的,后面接口的部分真的没有尝试过,等一个大佬的讲解吧;
C、类加载器是肯定要保证线程安全的;C正确
D、装载一个不存在的类的时候,因为采用的双亲加载模式,所以强制加载会直接报错,D错误
java.lang.SecurityException: Prohibited package name: java.lang
E、双亲委派模式是在Java 1.2后引入的,其工作原理的是,如果一个类加载器收到了类加载请求,它并不会自己先去加载,而是把这个请求委托给父类的加载器去执行,如果父类加载器还存在其父类加载器,则进一步向上委托,依次递归,请求最终将到达顶层的启动类加载器,如果父类加载器可以完成类加载任务,就成功返回,倘若父类加载器无法完成此加载任务,子加载器才会尝试自己去加载,这就是双亲委派模式,即每个儿子都很懒,每次有活就丢给父亲去干,直到父亲说这件事我也干不了时,儿子自己想办法去完成,所以默认是父装载,E正确
F、自定义类加载器实现 继承ClassLoader后重写了findClass方法加载指定路径上的class,F错误
13
请问在javascript程序中,alert(undefined==null)的输出结果是 //正确答案 C
A null
B undefined
C true
D false
E 以上答案都不正确
解析:==仅判断值是否相同,undefined值和null是相同的,故true
===在判断值是否相同的同时还判断类型是否相同,undefined类型为undefined,null类型为object,因此为false
14
下面有关HTML的Doctype和严格模式与混杂模式的描述,错误的是?//正确答案 C
A 声明位于文档中的最前面,处于标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档
B 在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示
C DOCTYPE不存在或格式不正确会导致文档以标准模式呈现
D 浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法
解析:1. 声明位于文档中的最前面,处于 标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档。
2.严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
3.DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
15
以下哪个不能用来处理线程安全 //正确答案 D
A synchronized关键字
B volatile关键字
C Lock类
D transient关键字
解析:transient,变量修饰符,如果用transient声明一个实例变量,当对象存储时,它的值不需要维持。当一个变量不希望被持久化的时候,比如说一些账号密码,就可以用transient关键字来表示该变量不参与序列化过程。
16
以下属于JS基本数据类型的选项是 () //正确答案 A B D
A undefined
B number
C interface
D symbol
解析: JavaScript 语言的6种原始数据类型:undefined、null、布尔值(boolean)、字符串(string)、数值(number)、symbol
引用数据类型:对象(object)
由于js的bug, typeof null 为 ‘object’。 除了null以外,其余原始数据类型均可用typeof判断,针对引用数据类型,可以用instanceof进行判断
17
修改以下哪些CSS属性会导致回流(reflow)?//正确答案 B C D
A color
B width
C display
D font-size
解析:浏览器使用流式布局模型 (Flow Based Layout)。
浏览器会把HTML解析成DOM,把CSS解析成CSSOM,DOM和CSSOM合并就产生了Render Tree。
有了RenderTree,我们就知道了所有节点的样式,然后计算他们在页面上的大小和位置,最后把节点绘制到页面上。
由于浏览器使用流式布局,对Render Tree的计算通常只需要遍历一次就可以完成,但table及其内部元素除外,他们可能需要多次计算,通常要花3倍于同等元素的时间,这也是为什么要避免使用table布局的原因之一。
一句话:回流必将引起重绘,重绘不一定会引起回流。
18
在 Applet 中,方法执行的顺序是 ?( )//正确答案 A
init(), start(), paint(),stop(),destroy().
init(),paint(),start(),stop(),destroy().
paint(),start(),stop(),destroy().
init(), start(),stop(),destroy(),paint().
解析:init 初始化,start启动运行,paint 窗口最小化等时候需要暂停,stop 停止,destory 销毁;
19
命令javac-d参数的用途是?()A
指定编译后类层次的根目录
指定编译时需要依赖类的路径
指定编译时的编码
没有这一个参数
解析:-d destination 目的地
-s source 起源地
javac -d 指定放置生成的类文件的位置
javac -s 指定放置生成的源文件的位置
20
以下关于内存泄漏说法正确的是() C
A 内存泄漏是操作系统内存管理出错导致的问题
B 单线程程序不可能内存泄漏
C 如果一个进程在运行过程中占用的内存无限制上升,那么该进程有内存泄漏
D 只要进程在退出之前释放了所有分配的内存,那么就不会内存泄漏
内存泄漏是仅仅出现在C/C++程序的问题,Java程序不会内存泄漏
解析:
A,内存泄露是程序设计的bug,不是操作系统的问题
B,内存泄露跟线程数无关
C,内存泄露是进程申请了内存却没有释放。导致占用内存无限上升
D,进程退出之前释放申请的内存,不代表进程运行过程中没有内存泄***r /> E,java是自动管理内存的,但是也会有内存泄露,比如加入HashMap的对象hash值改变了就无法从HashMap中remove,这就造成了内存泄露

你可能感兴趣的:(面试题)