IT面试笔试题目参考_第1页
IT面试笔试题目参考_第2页
IT面试笔试题目参考_第3页
IT面试笔试题目参考_第4页
IT面试笔试题目参考_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本文格式为Word版,下载可任意编辑——IT面试笔试题目参考最新IT面试笔试题目参考

IT面试笔试题目难吗?求职面试时,面试官一般都会问你一些问题,也可能是通过问卷的形式提问,怎么回复才是最好的呢?这里给大家共享一些IT面试笔试题目,梦想对大家有所扶助。

Java多线程面试题:线程并发面试题

1、Sleep()、suspend()和wait()之间有什么识别?

Thread.sleep()使当前线程在指定的时间处于“非运行”(NotRunnable)状态。线程一向持有对象的监视器。譬如一个线程当前在一个同步块或同步方法中,其它线程不能进入该块或方法中。假设另一线程调用了interrupt()方法,它将唤醒那个“睡眠的”线程。

留神:sleep()是一个静态方法。这意味着只对当前线程有效,一个常见的错误是调用t.sleep(),(这里的t是一个不同于当前线程的线程)。即便是执行t.sleep(),也是当前线程进入睡眠,而不是t线程。t.suspend()是过时的方法,使用suspend()导致线程进入停滞状态,该线程会一向持有对象的监视器,suspend()轻易引起死锁问题。

object.wait()使当前线程出于“不成运行”状态,和sleep()不同的是wait是object的方法而不是thread。调用object.wait()时,线程先要获取这个对象的对象锁,当前线程务必在锁对象保持同步,把当前线程添加到等待队列中,随后另一线程可以同步同一个对象锁来调用object.notify(),这样将唤醒原来等待中的线程,然后释放该锁。根本上wait()/notify()与sleep()/interrupt()类似,只是前者需要获取对象锁。

2、什么是线程饿死,什么是活锁?

当全体线程阻塞,或者由于需要的资源无效而不能处理,不存在非阻塞线程使资源可用。JavaAPI中线程活锁可能发生在以下情形:

当全体线程在程序中执行Object.wait(0),参数为0的wait方法。程序将发生活锁直到在相应的对象上有线程调用Object.notify()或者Object.notifyAll()。

当全体线程卡在无限循环中。

3、什么是JavaTimer类?如何创造一个有特定时间间隔的任务?

java.util.Timer是一个工具类,可以用于安置一个线程在未来的某个特定时间执行。Timer类可以用安置一次性任务或者周期任务。

java.util.TimerTask是一个实现了Runnable接口的抽象类,我们需要去继承这个类来创造我们自己的定时任务并使用Timer去安置它的执行。

4、Java中的同步集合与并发集合有什么识别?

同步集合与并发集合都为多线程和并发供给了适合的线程安好的集合,不过并发集合的可扩展性更高。

在Java1.5之前程序员们只有同步集合来用且在多线程并发的时候会导致争用,阻碍了系统的扩展性。

Java5介绍了并发集合像ConcurrentHashMap,不仅供给线程安好还用锁分开和内片面区等现代技术提高了可扩展性。

5、同步方法和同步块,哪个是更好的选择?

同步块是更好的选择,由于它不会锁住整个对象(当然你也可以让它锁住整个对象)。同步方法会锁住整个对象,哪怕这个类中有多个不相关联的同步块,这通常会导致他们中断执行并需要等待获得这个对象上的锁。

6、什么是线程池?为什么要使用它?

创造线程要花费昂贵的资源和时间,假设任务来了才创造线程那么响应时间会变长,而且一个进程能创造的线程数有限。

为了制止这些问题,在程序启动的时候就创造若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。

从JDK1.5开头,JavaAPI供给了Executor框架让你可以创造不同的线程池。譬如单线程池,每次处理一个任务;数目固定的线程池或者是缓存线程池(一个适合好多生存期短的任务的程序的可扩展线程池)。

7、Java中invokeAndWait和invokeLater有什么识别?

这两个方法是SwingAPI供给给Java开发者用来从当前线程而不是事情派发线程更新GUI组件用的。InvokeAndWait()同步更新GUI组件,譬如一个进度条,一旦进度更新了,进度条也要做出相应变更。

假设进度被多个线程跟踪,那么就调用invokeAndWait()方法苦求事情派发线程对组件举行相应更新。而invokeLater()方法是异步调用更新组件的。

8、多线程中的忙循环是什么?

忙循环就是程序员用循环让一个线程等待,不像传统方法wait(),sleep()或yield()它们都放弃了CPU操纵,而忙循环不会放弃CPU,它就是在运行一个空循环。这么做的目的是为了留存CPU缓存。

在多核系统中,一个等待线程醒来的时候可能会在另一个内核运行,这样会重建缓存。为了制止重建缓存和裁减等待重建的时间就可以使用它了。

Angular面试题汇总及答案

1、什么是Angular?

Angular是基于typescript编程语言的,开源的网络应用开发框架。是由谷歌倡导开发和维护的。它使用简朴,功能强大,可以快速搭建前端网络应用。

它供给了好多分外优秀的功能,譬如说声明性的模板,凭借注入,端到端的工具,等等可以为网络应用开发供给便利。

2、解释Angular2应用程序的生命周期hooks是什么?

Angular2组件/指令具有生命周期事情,是由@angular/core管理的。@angular/core会创造组件,渲染它,创造并呈现它的后代。

当@angular/core的数据绑定属性更改时,处理就会更改,在从DOM中删除其模板之前,就会销毁掉它。Angular供给了一组生命周期hooks(特殊事情),可以被分接到生命周期中,并在需要时执行操作。

构造函数会在全体生命周期事情之前执行。每个接口都有一个前缀为ng的hook方法。例如,ngOnint界面的OnInit方法,这个方法务必在组件中实现。

3、事情放射器如何在Angular2中工作的?

Angular2不具有双向digestcycle,这是与Angular1不同的。在Angular2中,组件中发生的任何变更总是从当前组件传播到其全体子组件中。假设一个子组件的更改需要反映到其父组件的层次布局中,我们可以通过使用事情放射器api来发出事情。

简而言之,EventEmitter是在@angular/core模块中定义的类,由组件和指令使用,用来发出自定义事情。

4、如何优化Angular2应用程序来获得更好的性能?

优化取决于应用程序的类型和大小以及大量其他因素。一般来说,在优化Angular2应用程序时要考虑以下几点:

1)考虑AOT编译。

2)确保应用程序已经经过了捆绑,uglify和treeshaking。

3)确保应用程序不存在不必要的import语句。

4)确保应用中已经移除了不使用的第三方库。

5)全体dependencies和dev-dependencies都是明确分开的。

6)假设应用程序较大时,我会考虑延迟加载而不是完全捆绑的应用程序。

5、什么是ShadowDOM?它如何扶助Angular2更好地执行?

ShadowDOM是HTML模范的一片面,它允许开发人员封装自己的HTML标记,CSS样式和JavaScript。ShadowDOM以及其它一些技术,使开发人员能够像标签一样构建自己的一级标签,Web组件和API。总的来说,这些新的标签和API被称为Web组件。ShadowDOM通过供给了更好的关注分开,通过其它的HTMLDOM元素实现了更少的样式与脚本的冲突。

由于shadowDOM本质上是静态的,同时也是开发人员无法访问的,所以它是一个很好的候选对象。由于它缓存的DOM将在欣赏器中呈现得更快,并供给更好的性能。

此外,还可以相对很好地管理shadowDOM,同时检测Angular2应用的变更,并且可以有效地管理视图的重新绘制。

6、service怎么使用?

AngularJS中你可以创造自己的服务,或使用内建服务。

使用Module的provider方法;

使用Module的factory方法;

使用Module的service方法;

三种方法的对比:

需要在config中举行全局配置的话,只能选择provider方法,factory和service是使用对比频繁的创造服务的方法。

它们之间的唯一识别是:service方法用于注入的结果通常是new出来的对象,factory方法注入的结果通常是一系列的functions;

provider是创造服务最为繁杂的方法,除非你需要创造一个可以复用的代码段并且需要举行全局配置,才需要使用provider创造;

全体具有特定性目的的对象都是通过factory方法去创造。

7、Angular和Angularjs的识别是什么?

Angularjs支持的是mvc设计模型。Angular是基于组件和directives的。

Angular支持凭借注入,Angularjs不支持。

Angularjs的ngdirective需要image,属性和一个事情,angular只需要括号和方括号来绑定数据属性和事情就可以了。

Angularjs不支持移动设备的开发。Angular支持手机开发。

Angularjs的首推语言是JavaScript。Angular的首推语言是typescript.

路径设置上,angularjs使用的是routeprovider。Angular使用的是routeconfig.

在开发速度上,Angular要快于Angularjs。

在运行速度上,angular也要快于angularjs。

Angular的整个程序的架构比angularjs更明显,更简朴,更轻易维护。

目前Angularjs已经没有官方的维护和更新支持了。Angular官方维护和更新都做得很好。

8、Angular的核心部件有哪些?

共有9个,一个是components,另外一个是databinding,再一个是dependencyinjection,然后是directives,再就是metadata,然后是modules,再就是routing,还有services,结果一个是template。

9、什么是数据绑定?在Angular中有几种方式?

连接程序中的数据跟视图的方式称为数据绑定。

一共有三种方式。一种是事情绑定,这种方式使得应用程序可以对用户的输入做出回响。另一种是属性绑定。这种方式是从应用数据向html传递数据。结果一种方式是双向绑定。这种绑定可以支持用程序数据的修改影响视图,同时视图上数据的改动也会影响到应用程序的数据。

10、Angular中有哪些事情?

click,copy,cut,dbclick,keydown,keypress,keyup,mousedown,mouseenter,mouseleave,mousemove,mouseover,mouseup,blur.

史上最全Database工程师题库

1、查询Student表中的全体记录的Sname、Ssex和Class列。

2、查询教师全体的单位即不重复的Depart列。

3、查询Student表的全体记录。

4、查询Score表中劳绩在60到80之间的全体记录。

5、查询Score表中劳绩为85,86或88的记录。

6、查询Student表中“95031”班或性别为“女”的同学记录。

7、以Class降序查询Student表的全体记录。

8、以Cno升序、Degree降序查询Score表的全体记录。

9、查询“95031”班的学生人数。

10、查询Score表中的最高分的学生学号和课程号。

11、查询‘3-105’号课程的平均分。

12、查询Score表中至少有5名学生选修的并以3开头的课程的平均分数。

13、查询最低分大于70,最高分小于90的Sno列。

14、查询全体学生的Sname、Cno和Degree列。

15、查询全体学生的Sno、Cname和Degree列。

16、查询全体学生的Sname、Cname和Degree列。

17、查询“95033”班所选课程的平均分。

18、假设使用如下命令建立了一个grade表:

createtablegrade(lownumber(3,0),uppnumber(3),rankchar(1));

intogradevalues(90,100,’A’);

intogradevalues(80,89,’B’);

in

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论