财务人员面试笔试题

2024-05-05

财务人员面试笔试题(精选6篇)

篇1:财务人员面试笔试题

销售人员面试笔试题

发布时间:2010年08月17日 来源:应届毕业生求职网

公务员面试面试技巧终极面试面试自我介绍面试119

结构化面试面试问题面试题面试英语事业单位面试

一、基本题:

1、请您作一下自我介绍。

2、您来面试前有没有想过整个过程?说说您先前是如何打算应对这场面试的,包括各个阶段。

3、您的缺点或不足是什么?您的优点或特长是什么?

4、谈谈你工作中一次失败的经历,谈谈你工作中一次成功的经历。

5、你希望与什么样的上级共事?

6、上级下达了错误的指令,这个指令会造成公司一百多万的损失,你会不会执行?为什么?或者你将怎样处理?

7、当与上级意见不一时,你将怎么办?

8、你为什么离开原来的单位?

9、我们公司什么地方吸引你?

10、你以前具体的日常工作是什么?你做的怎么样?

11、你对这项工作有哪些可预见的困难?

12、没有工作经验,你如何能胜任这份工作?

13、如果公司录用了你,你将怎样开展工作?

14、你到我们公司工作的目的是什么?

15、你期望的工作环境和工作状态是什么?你希望公司给你什么样的支持?

16、你以前的薪酬怎样?你期望什么样的薪酬和待遇?

二、实务题:

1、王老板口头上同意经销我公司产品,并答应你三天内可以打款进货,但到第四天他还没有打款。当你打电话或上门拜访时,他又以种种原因推脱说这几天很忙再过几天就打款。请问你该如何让王老板尽快打款进货?

2、张老板是你的新客户,由于尚未建立相互信任度,张老板要求货到后再付款,但公司明文规定经销商必须先打款后发货。请问你该怎么办?

3、你认为张老板信用度比较高,并以自己的工资做担保向公司申请货到付款,但货到后,张老板又对产品挑三捡四,以种种理由要求只付货款的90%给你,剩余的10%作为换货保证金,否则他就让你把这些货拉回公司。请问你如何让张老板全额付款?

4、郭老板很想经销我公司产品,你也认为郭老板是我公司在t市最合适的经销商,但郭老板向你提出两个要求:第一,要求产品降价;第二,要求公司为其做一块户外广告牌,费用5000元。公司执行全国统一价,不会为个别市场降价,而且在郭老板尚未给公司创造出利润的前提下不支付5000元广告费。请你提出合理的解决方案让郭老板尽快打款进货。

5、李老板经销我公司产品已经三年了,3个月前他进的一批果汁还有200箱没有卖出去,李老板让你帮他把这200箱果汁退回公司,否则他就不进公司新上市的八宝粥产品,但公司规定产品无质量问题不准退货。请问你该如何让李老板尽快配合公司新品上市?

6、马经理是b公司在s市的经销商,经销b公司的所有产品,但他已经半年没从b公司进货了,而且还欠公司两万元货款,另外他还有500箱b公司的饮料没有销售。假如你是b公司的业务员,你得知s市的陈经理很愿意经销你的八宝粥产品,通过几次接触,陈经理表示如果你撤消马经理的经销权,他就从公司进货。你了解到马经理在当地社会关系复杂,如果处理不当会对公司市场造成负面影响,同时你又对陈经理的市场能量估计不足,而公司又催促你s市20天内必须进货。请问你该如何操作s市的市场。

7、在促销力度不强的情况下,你如何销售品牌知名度不高而价位又与知名品牌同类竞品相差无几的中高档新产品?

8、如果公司在市场上受到竞品、促销等方面的强力冲击,你该如何应对?

9、你认为在市场操作中终端(零售商)和中间商(经销商、二批商)孰重孰轻,为什么?

10、公司生产销售中高档、低档八宝粥、中高档、低档杏仁露、果汁、花生牛奶、核桃露和麻辣品等二十多个产品,假如给你一个空白区域,比如一个地区,让你在一个月内完成8万销售额,请问你具体该怎么做?

篇2:财务人员面试笔试题

姓名:日期:评分:

一、多项选择题(第1~6题)(每题2分)

1、下列说法中,属于服务“忌语”的是()。

(A)报刊部营业员:“如果您不买,就别看了!”

(B)服装店营业员:“您到底要哪种款式,想好了没有?”

(C)售楼处交易员:“您到后面排队等候。一个一个来。”

(D)酒店服务员:“这事我管不了。请您问别人吧!”

2、关于职业责任,下列说法中正确的是()。

(A)是否具有职业责任是从业人员道德水平高低的体现

(B)员工的物质生产单位与其履行职业责任的情况密切相关

(C)社会和企事业运用法律和纪律手段保障职业责任和义务的履行

(D)职业责任是个中性概念,并不涉及道德问题

3、以下关于诚实守信的说法中,正确的是()。

(A)诚实守信的人类在漫长交往实践中总结、凝练出来的(B)诚实守信是做人的基本准则

(C)坚持做到诚实守信对一个的成长十分重要

(D)诚实守信有时候重要,有时候不重要

4、企业形象包括()。

(A)企业环境(B)企业规章制度(C)企业目标(D)企业作风

5、关于从业人员办事公道的说法中,正确的是()。

(A)坚持真理是从业人员办事公道的内在要求

(B)办事公道特指有权人而言,一向从业人员不存在这一问题

(C)从业活动中关照亲友乃人之常情,与办事公道要求不矛盾

(D)办事公道涉及到服务对象的人格尊严和实际利益

6、从业人员关于遵纪守法的正确观念和态度是()。

(A)老老实实做人做事,不学法也能够做到守法(B)法律知识庞杂繁缛,从业人员无

法学习

(C)懂法人才能依法办事,维护正当权益(D)工作之前先签合同,是用法的具

体体现

二、职业道德个人表现部分(单项选择)(每题1分)

7、一顾客在某饭店用餐完毕,故意将一小虫放入菜中,借以蒙混赖帐。你认为服务

员最好的处理方式是()。

(A)让保安将顾客驱逐出去(B)耐心说明,若无效便交上司处理

(C)对顾客进行批评教育(D)拨打110,请警察处理

8、某用户反映公司新产品存在质量问题,公司派出四位质检员分别进行调查。他们

有以下四种不同表现,你最认可的做法是()。

(A)甲检查完毕后,写出产品所发生问题的部位

(B)乙检查完毕后,写出产品出现问题的原因

(C)丙检查完毕后,写出了用户不满发生牢骚时的情景

(D)丁检查完毕后,写出了产品的改进建议

9、上班时,小李十分焦急地赶往经理办公室汇报工作。当他路过传达室时,门卫老

张请他顺手把一封信带过去。小李一看,是办公室同事小张的信。如果你是小李,你会()。

(A)不管它,直奔经理办公室(B)带上信马上去见经理

(C)不管它,边走边说明原因(D)告诉老张自己现在有事,事后再取

10、对于那些总是按部就班做事的人,我()。

(A)喜欢与之共事(B)不喜欢,但能够合得来

(C)不理解他们为什么要这样做(D)没有什么感受

三、.基础业务素质(每题有一个或多个答案正确,错选、漏选、多选,均不得分)(每题2分)

11、公文结构的总体要求是()。

(A)自然(B)统一(C)严谨(D)完整

12、一般需加盖公章的文种是()。

(A)会议纪要(B)报告(C)函(D)批复

13、“市场调查报告”的主体部分应包括()。

(A)建议部分(B)情况部分(C)回顾部分(D)预测部分

14、“计划”应特别强调其()。

(A)简略性(B)严肃性(C)针对性(D)预见性

15、()运用了同义词和近义词略写法。

(A)桥梁---桥(B)改革---改(C)秘书---秘(D)精神---神

16、依照我国专利法,授予发明专利权的条件是()。

(A)要式性(B)实用性(C)新颖性(D)创造性

17、根据劳动法的规定,()的,用人单位可单方与其解除劳动合同。

(A)员工患病需治疗2年(B)员工与他人非法同居以致怀孕

(C)员工在生活过程中不慎致左手残废(D)员工与他人打架被判拘役

18、在涉外活动中,礼宾次序体现()。

(A)各国主权地位平等(B)各国经济地位平等

(C)各国综合国力(D)东道主对各国宾客的礼遇

19、能创造良好沟通氛围的基本要素有()。

(A)提出要求(B)适时赞美(C)善良幽默(D)及时提出批评

20、秘书涉外交往礼仪中,谈话的禁忌包括()。

(A)谈论政治问题(B)不给对方表达观点的机会

(C)询问女士的年龄(D)讨论宗教问题

21、实现有效提问应当注意的要素包括()。

(A)提问的态度与时机(B)提问的内容与形式

(C)提问的语速(D)提问的形式

22、按照西餐用餐的礼仪规范,()。

(A)使用刀时要按顺序由外向内拿取(B)用餐速度要与大家(同来者)保持一致

(C)用餐时也可以吸烟(D)用餐时不可高声交谈

23、与外国友人谈话时应事先对该国习俗有所了解,交谈中避免()。

(A)谈吐幽默(B)倾听其他人的发言

(C)询问私人物品的价格(D)询问对方的收入

24、喝咖啡时应避免()。

(A)用咖啡匙舀着喝(B)用嘴吹凉咖啡

(C)俯首就着咖啡杯喝(D)一手拿点心,一手端咖啡杯,边吃边喝

25、在处理冲突时,宜先观察情况,了解清楚后再针对问题采取相应的措施。这遵循

了处理冲突的()策略。

(A)铁令如山(B)拖延、缓和(C)按兵不动(D)弃子投降

26、当某种办公用品()时,秘书就需要添置该用品了。

(A)库存余额为零(B)库存余额达到再订购量

(C)库存余额降至一半(D)库存余额达最小库存量

27、要做好大型会议的组织和协调工作,就应()。

(A)尽量全面回答问题(B)尽量简短回答问题

(C)尽量使用专业术语,以保证内容的严谨(D)采取模糊语言回答记者的追问

28、作为团队会议的主持者,当会议成员发生激烈的争论时,应当()。

(A)明确支付正确的一方(B)静观其变

(C)提醒争论双方注意倾听对方的意见(D)注意维护会议民主和开放的氛围

29、会议的目标失控或跑题的主要原因是()。

(A)会议被少数强势发言者所控制(B)主持人失职

(C)与会部门较多(D)与会者的态度不积极

30、多议题会议中,应将需集中大家智慧拿出创意见解的议题排列在()。

(A)会议最后(B)会议中间(C)会议前半部分(D)会议间歇休息后

五、操作题

(一)、背景说明:你是粤泰信公司行政小刘,下面是行政经理需要你完成的几项任务。公司将于4月在惠州开设一家分公司,现分公司大楼已建成,准备举行竣工典礼。请你完成以下工作并交我审阅:

1.说明竣工典礼准备工作的要点;

2.设计一份请柬。

(二)请拟一份关于“五一”放假的通知。

面试题目

1、请你自我介绍一下自己好吗?

2、你觉得你个性上最大的优点是什么?

3、说说你最大的缺点?

4、你对加班的看法?

5、如果通过这次面试我们录用了你,但工作一段时间却发现你根本不适合这个职位,你怎么办?

6、谈谈你对跳槽的看法?

7、工作中难以和同事、上司相处,你该怎么办?

9、如果你面试迟到了?如果面试官迟到了?

10、最能概括你自己的三个词是什么?

11、你的业余爱好是什么?

12、作为被面试者给我打一下分?

13、你通常如何对待别人的批评?

14、怎样对待自己的失败?

15、如果录用了你,你将怎样开展工作?

16、你希望与什么样的上级共事?

17、与上级意见不一时,你将怎么办?

篇3:汉王面试笔试题

可能您的专业并不完全符合本试题所涉及的领域。因此,并非所有的问题都需要回答,您可以只回答你所熟悉和能够回答的问题。允许参考任意的资料,但请独立完成此试题,我们更欣赏您独立的思考和创新的精神。本试题并非我们录用或者不录用您的惟一依据。应聘高级研究人员者请回答这部分问题。

1.人工智能与模式识别的研究已有多年,但似乎公认的观点认为它仍然非常困难。试对你所熟悉的任一方向(如指纹识别、人像识别、语音识别、字符识别、自然语言理解等)的发展状况进行描述。并设想如果你将从事该方向的研究,你打算如何着手,以建立有效的识别理论和方法;或者你认为现在的理论和方法有何缺陷,有什么办法来进行改进?(500字以内即可,不要太长)

2.简述下面任一主题的主要理论框架或主要观点(500字以内即可,不要太长)

(1)David Marr的视觉计算理论框架

(2)格式塔(Gestalt)心理学派的主要观点

(3)Bayes决策理论

(4)人工神经网络中的BP网络、自组织网络和联想记忆网络的主要内容

(5)基因算法

(6)小波分析

(7)目前流行的有损静态图像压缩方法

3.设想你要设计一个算法,检测给定的图像中是否有矩形结构。所要检测的矩形可能有多种形态,试提出你的算法框架。要求你的算法至少能检测出样本中的矩形,而拒绝其他的任意非矩形结构。矩形的大小、位置和方向未知,要求你的算法能确定这些参数。

如果你认为这个问题太难而不能解决,请说明理由。

高级软件开发人员招聘试题

说明:

可能您的专业并不完全符合本试题所涉及的领域。因此,并非所有的问题都需要回答,您可以只回答你所熟悉和能够回答的问题。允许参考任意的资料,但请独立完成此试题,我们更欣赏您独立的思考和创新的精神。本试题并非我们录用或者不录用您的惟一依据。

应聘高级软件开发人员者请回答这部分问题。

1.数据的逻辑存储结构(如数组,队列,树等)对于软件开发具有十分重要的影响,试对你所了解的各种存储结构从运行速度、存储效率和适用场合等方面进行简要地分析。

2.数据库技术是计算机系统中一个非常重要的领域,几乎所有的计算机应用中都或多或少地用到了数据库。试简要地谈谈数据库设计中应当注意哪些问题,以及如何解决?给出两种你所熟悉的DBMS,要求一种适用于小型应用,另一种适用于大型应用,给出你做出选择的理由。

3.某公司的主要业务是提供WWW和E-mail服务,出于安全考虑,该公司要求我公司提供一套网络指纹登录系统,该系统要求能够利用指纹替代E-mail中常用的密码,并对所提供的部分网页通过指纹认证后才能访问,请利用你所学过的知识对该系统进行分析设计,你可以指定网络的配置(包括协议),但必须保证邮件用户既可通过网页(http方式)收取信件,也可通过Outlook收取信件。请分析该系统的可行性,可行时给出系统结构和主要的存储结构,指出系统中的难点和解决方法。(假设指纹识别的问题已经解决)

高级硬件开发人员招聘试题

说明:

可能您的专业并不完全符合本试题所涉及的领域。因此,并非所有的问题都需要回答,您可以只回答你所熟悉和能够回答的问题。允许参考任意的资料,但请独立完成此试题,我们更欣赏您独立的思考和创新的精神。本试题并非我们录用或者不录用您的惟一依据。

应聘高级硬件开发人员者请回答这部分问题。

1.下面是一些基本的数字电路知识问题,请简要回答:

(1)什么是Setup和Holdup时间?

(2)什么是竞争与冒险现象?怎样判断?如何消除?

(3)请画出用D触发器实现2倍分频的逻辑电路。

(4)什么是“线与”逻辑?要实现它,在硬件特性上有什么具体要求?

(5)什么是同步逻辑和异步逻辑?

(6)请画出微机接口电路中,典型的输入设备与微机接口逻辑示意图(数据接口、控制接口、所存器/缓冲器)。

(7)你知道哪些常用的逻辑电平?TTL与COMS电平可以直接互连吗?

2.可编程逻辑器件在现代电子设计中越来越重要,请问:

(1)你所知道的可编程逻辑器件有哪些?

(2)试用VHDL或Verilog,ABLE描述8位D触发器逻辑

3.设想你将设计完成一个电子电路方案。请简述用EDA软件(如PROTEL)进行设计(包括原理图和PCB图)到调试出样机的整个过程。在各个环节应注意哪些问题?

篇4:保利面试笔试题

面试给公司和应招者提供了进行双向交流的机会,能使公司和应招者之间相互了解,从而双方都可更准确做出聘用与否、受聘与否的决定。下面是保利面试笔试题,请参考!

保利地产笔试题目

题型一:(市场研究,广州)

10个行测题(3分/个) 基本分析题(40)

1、保利地产在某地要拿一块地,要先进行项目调研,假设你作为项目调研负责人,该如何安排你的计划?(20)

2、某10月房地产成交套数与推广费用的详单(见下,记不太清了)。然后给出11月份计划66套,50万推广费用,试分析。(20)

综合分析题(30)

材料1:xx年国家刺激计划, 放松信贷等,房地产迎来繁荣;国家“限购”、“ 限买“,房地产市场交易量萎缩。

材料2:房地产政策宏观微调,趋紧趋严

材料3:温家宝等人有关房地产政策的讲话

1、论述房地产市场走势与宏观经济形势的关系?

2、尝试对当前(还是未来,记不清了)房地产市场的前景进行研判

题型二:(营销,北京/上海)

名词解释 市场营销、4P,品牌定位,定价方法,SWOT,整合营销传播 材料分析

强生纸尿裤研发生产的营销案例:

1.从营销的角度分析

2.市场调查的意义、你对市场调研的看法论述品牌价值 举一个你最印象深刻的品牌营销案例,分析品牌形象、定位等:怎样进行品牌形象传播 创新题

1.中国好声音的营销

2.如果收视率下降,怎么提高

题型三:(土建类,武汉)

选择题(10题,每题2分) 第一题印象深刻,是压杆的临界力在什么杆端支承条件下最大。 简答题(5题,每题10分)

a、框架结构抗震构造措施

b、四控两管 一协调

后面三题都是写些关于对保利企业理念看法之类的,你进入保利要如何发展,优秀管理人员具备什么素质等等

案例分析(3题,共50分))

a、关于工期、费用补偿的(20分)

b、模板施工方案的,跟预留洞口有关,还有三宝、四口(20分)

c、构造柱的作用,和两个施工单位的比较,哪个合适?(10分)

题型四:(建筑岗,南京)

选择题 主要是规范类的 简答题(3道)

第一题是构造,差不多就是连线题

第二题谈谈对设计管理者和建筑设计师差别的理解

第三题为控制成本提高产品品质从技术层面给出建议

作图题(2道)

1. 画联排别墅的组合方式

2. 做一个18层住宅的典型平面图(给出三个指定户型要求)

题型五:(重庆)

题型六:(财务岗,2 hour)

选择题(22题,每题2分) 内容涉及会计和税法的基础知识 简答题 收入的确认;投资性房地产和自用房地产的区别;财务分析 分录 涉及收入确认费用结转和所得税会计 计算题

土地增值税;收入的计算;会计分录;财务比率计算

主营业务利润、营业利润、利润总额、净利润的计算

给出财务报表,进行简单的财务比率计算

递延所得税和所得税费用的计算

题型七:(保利商业)

题型八:(地产代理,广州)

简答题:

1.主管拿来一份前任做的表让你交给总经理,结果里面有错,被总经理批,你该怎么做。选择并解释为什么。(A.辩解;B.交给主管;C.拿回去核对)

2.最崇拜的人,与你的相似之处。如没有,请介绍你自己。

问答题:

3.影响商品房价格的因素。

4.对“高地价导致高房价”的看法。 写出6家保利商业在筹建的或者运营的酒店名字 影响五星级酒店客房价格的因素 如果你是西餐厅领班,在人手少、压力大的情况下,如何在个人素养、人际沟通等方面提升自己 预订的婚宴场所在婚礼前被政府安排用来开会,时间场地会有冲突,如果你是负责人要怎么解决 工程抗震结构有哪几种 4控,2管,1协调是什么 合格的项目管理者所有的素质 案例分析包括,工期、费用索赔

5.苹果的成功(技术集成与创新)对房地产企业的.启示。

6.详细描述怎样完成一个项目的前期调研。

材料题:

7.对国八条之一关键条款的看法。

8.对国家宏观调控政策的看法。

题型九:(营销类)

选择题(15道) 考营销一些基本知识和保利相关的 简答题:

1.买房者购房决策形成的过程

2.谈谈你对团购、通货膨胀和微博营销的看法和认识

题型十:(投资管理岗,上海,120min)

选择题(10题*2分)

考的与房地产相关的专业基础,一个算NPV,一个考价格弹性,一个考边际成本随规模的变化,一个考代表土地价格高低的是土地总价还是单价还是其他的,一个是考不同用途的土地使用年限,一个考IS—LM模型的,还有一个是考察实际利率与名义利率的关系

简单题(共四题*15分,每题不得少于200字)

1.你为什么选择房地产?你认为房地产是处于青年、壮年、中年还是老年?结合国家政策和房地产发展前景加以说明。

2.A描述一下人生中遇到的最大的挫折,自己是如何克服的?B你的职业规划是怎样的?3.房地产需求量可以计算吗,如果可以请给出算法。

4.房地产开发大概分哪几步?其中成本最高的是在哪几步?在房地产开发过程中,如何做到有效控制降低成本?

案例分析(20分)

一块土地,面积4万平,要开发房地产项目,容积率不高于0.5,建筑密度不高于20%,绿化率不低于30% 给出旁边四个楼盘,分别是独栋、联拼、多层和高层,它们的占地、容积率和售价以供参考 然后给出,独栋、联拼、多层和高层得建安成本(含除楼面地价和税费外的各种费用),并给出税费占

4.5%,银行利率6.5% 要求算出在盈亏平衡点时我司可接受的最高土地价格。

题型十一:(营销类,广州)

简答题(试卷上标明:不是名词解释,用流利清晰的话作答,6分一个)

1.市场定位

2.把房地产市场进行市场细分

3.家庭有哪些生命周期阶段,有什么消费特征,怎么根据不同的家庭生命周期制定营销策略。

4.苹果热销,为什么苹果的品牌如此有吸引力

5.说说你的理解和看法:非诚勿扰,胶囊公寓,世博会

案例分析(30分)

20xx年肯德基苏丹红事件:大致是肯德基如何转移视线的公关策略 材料分析:海底捞材料,然后问海底捞成功的原因;海底捞危机公关的策略是什么,有什么不足,怎么改进; 保利20周年一段材料,要求策划一个20周年庆典的活动方案,要求新颖、有条理逻辑 创新题:除了保利地产,你还觉得哪个校园招聘的房地产公司主题或者口号出彩,谈谈原因

1.根据材料写公关通稿

2.肯德基的危机公关策略是什么?媒体和政府在中间起了什么作用?它的危机公关有什么不足?

篇5:linux面试笔试题

A 传输控制协议 B 用户数据报协议 C 网际协议 D 网际控制报文协议

2. 在/etc/fstab文件中指定的文件系统加载参数中, D 参数一般用于CD-ROM等移动设备.

A defaults B sw C rw和ro D noauto

3. Linux文件权限一共10位长度,分成四段,第三段表示的内容是 C .

A 文件类型 B 文件所有者的权限

C 文件所有者所在组的权限 D 其他用户的权限

4. 终止一个前台进程可能用到的命令和操作 B .

A kill B 〈CTRL〉; C C shut down D halt

5.在使用mkdir命令创建新的目录时,在其父目录不存在时先创建父目录的选项是 D .

A -m B -d C -f D -p

6. 下面关于i节点描述错误的是 A .(inode是一种数据结构,vfs中描述文件的相关参数)

A i节点和文件是一一对应的

B i节点能描述文件占用的块数

C i节点描述了文件大小和指向数据块的指针

D 通过i节点实现文件的逻辑结构和物理结构的转换

7. 一个文件名字为rr.Z,可以用来解压缩的命令是: D .

A tar B gzip C compress D uncompress

8. 具有很多C语言的功能,又称过滤器的是 C .

A csh

B tcsh

C awk (awk详解)

D sed

9. 一台主机要实现通过局域网与另一个局域网通信,需要做的工作是 C .A 配置域名服务器

B 定义一条本机指向所在网络的路由

C 定义一条本机指向所在网络网关的路由

D 定义一条本机指向目标网络网关的路由

10. 建立动态路由需要用到的文件有 D .

A /etc/hosts B /etc/HOSTNAME C /etc/resolv.conf D /etc/gateways

11. 局域网的网络地址192.168.1.0/24,局域网络连接其它网络的网关地址是192.168.1.1.主机192.168.1.20访问172.16.1.0/24网络时,其路由设置正确的是 B .

A route add –net 192.168.1.0 gw 192.168.1.1 netmask 255.255.255.0 metric 1

B route add –net 172.16.1.0 gw 192.168.1.1 netmask 255.255.255.255 metric 1

C route add –net 172.16.1.0 gw 172.16.1.1 netmask 255.255.255.0 metric 1

D route add default 192.168.1.0 netmask 172.168.1.1 metric 1

12. 下列提法中,不属于ifconfig命令作用范围的是 D .

A 配置本地回环地址 B 配置网卡的IP地址

C 激活网络适配器 D 加载网卡到内核中

13. 下列关于链接描述,错误的是 B .

A 硬链接就是让链接文件的i节点号指向被链接文件的i节点

B 硬链接和符号连接都是产生一个新的i节点

C 链接分为硬链接和符号链接 D 硬连接不能链接目录文件

14. 在局域网络内的某台主机用ping命令测试网络连接时发现网络内部的主机都可以连同,而不能与公网连通,问题可能是 C.

A 主机IP设置有误

B 没有设置连接局域网的网关

C 局域网的网关或主机的网关设置有误

D 局域网DNS服务器设置有误

15. 下列文件中,包含了主机名到IP地址的映射关系的文件是: B .

A /etc/HOSTNAME B /etc/hosts C /etc/resolv.conf D /etc/networks

16. 不需要编译内核的情况是 D .

A 删除系统不用的设备驱动程序时 B 升级内核时

C 添加新硬件时 D 将网卡激活

17. 在shell中变量的赋值有四种方法,其中,采用name=12的方法称 A .

A 直接赋值 B使用read命令

C 使用命令行参数 D使用命令的输出

18. D 命令可以从文本文件的每一行中截取指定内容的数据.

A cp B dd C fmt D cut

19. 下列不是Linux系统进程类型的是 D .

A 交互进程 B 批处理进程 C 守护进程 D 就绪进程(进程状态)

20.配置Apache 1.3.19服务器需要修改的配置文件为___A______

A httpd.conf B access.conf C srm.conf D named.conf

21. 内核不包括的子系统是 D .

A 进程管理系统 B 内存管理系统 C I/O管理系统 D硬件管理系统

22. 在日常管理中,通常CPU会影响系统性能的情况是: A .

A CPU已满负荷地运转 B CPU的运行效率为30%

C CPU的运行效率为50% D CPU的运行效率为80%

23. 若一台计算机的内存为128MB,则交换分区的大小通常是 C .

A 64MB B 128MB C 256MB D 512MB

24. 在安装Linux的过程中的第五步是让用户选择安装方式,如果用户希望安装部分组件(软件程序),并在选择好后让系统自动安装,应该选择的选项是 D .

A full B expert C newbie D menu

25. Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用 C 命令.

A cat B more C less D menu

26. 下列信息是某系统用ps –ef命令列出的正在运行的进程, D 进程是运行Internet超级服务器,它负责监听Internet sockets上的连接,并调用合适的服务器来处理接收的信息.

A root 1 4.0 0.0 344 204? S 17:09 0:00 init

B root 2 0.0 0.1 2916 1520? S 17:09 0:00 /sbin/getty

C root 3 0.0 0.2 1364 632? S 17:09 0:00 /usr/sbin/syslogd

D root 4 0.0 1344 1204? S 17:09 0:10 /usr/sbin/inetd

27.在TCP/IP模型中,应用层包含了所有的高层协议,在下列的一些应用协议中, B 是能够实现本地与远程主机之间的文件传输工作.

A telnet B FTP C SNMP D NFS

28.当我们与某远程网络连接不上时,就需要跟踪路由查看,以便了解在网络的什么位置出现了问题,满足该目的的命令是 C .

A ping B ifconfig C traceroute D netstat

29.对名为fido的文件用chmod 551 fido 进行了修改,则它的许可权是 D .

A -rwxr-xr-x B -rwxr--r-- C -r--r--r-- D -r-xr-x-x

30. 在i节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第1块到第11块,则该文件共占有 B 块号.

A 256 B 266 C 11 D 256×10

31. 用ls –al 命令列出下面的文件列表, D 文件是符号连接文件.

A -rw-rw-rw- 2 hel-s users 56 Sep 09 11:05 hello

B -rwxrwxrwx 2 hel-s users 56 Sep 09 11:05 goodbey

C drwxr--r-- 1 hel users 1024 Sep 10 08:10 zhangD lrwxr--r-- 1 hel users 20xx Sep 12 08:12 cheng

32. DNS域名系统主要负责主机名和 A 之间的解析.

A IP地址 B MAC地址 C 网络地址 D 主机别名

33. WWW服务器是在Internet上使用最为广泛,它采用的是 B 结构.

A 服务器/工作站 B B/S C 集中式 D 分布式

34.Linux系统通过 C 命令给其他用户发消息.

A less B mesg y C write D echo to[ 注:mesg [y|n] 所有使用者 决定是否允许其他人传讯息到自己的终端机介面 ]

35.NFS是 C 系统.

A 文件 B 磁盘 C 网络文件 D 操作

36. B 命令可以在Linux的安全系统中完成文件向磁带备份的工作.

A cp B tr C dir D cpio[注:如果用 echo $PATH 或者 echo $LD_LIBRARY_PATH 等类似的命令来显示路径信息的话,我们看到的将会是一大堆用冒号连接在一起的路径, tr 命令可以把这些冒号转换为回车,这样,这些路径就具有很好的可读性了:

echo $PATH | tr “:” “ ”]

37.Linux文件系统的文件都按其作用分门别类地放在相关的目录中,对于外部设备文件,一般应将其放在 C 目录中.

A /bin B /etc C /dev D /lib

38.在重新启动Linux系统的同时把内存中的信息写入硬盘,应使用 D 命令实现.

A # reboot B # halt C # reboot D # shutdown –r now

39.网络管理具备以下几大功能:配置管理、 A 、性能管理、安全管理和计费管理等.

A 故障管理 B 日常备份管理 C 升级管理 D 发送邮件

40.关于代理服务器的论述,正确的是 A .

A 使用internet上已有的公开代理服务器,只需配置客户端.

B 代理服务器只能代理客户端http的请求.

C 设置好的代理服务器可以被网络上任何主机使用.

D 使用代理服务器的客户端没有自己的ip地址.

篇6:Java面试笔试题

Java面试笔试题

1) 什么是线程?

线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。欲了解更多详细信息请点击这里。

2) 线程和进程有什么区别?

线程是进程的子集,一个进程可以有很多线程,每条线程并行执行不同的任务。不同的进程使用不同的内存空间,而所有的线程共享一片相同的内存空间。别把它和栈内存搞混,每个线程都拥有单独的栈内存用来存储本地数据。更多详细信息请点击这里。

3) 如何在Java中实现线程?

在语言层面有两种方式。java.lang.Thread 类的实例就是一个线程但是它需要调用java.lang.Runnable接口来执行,由于线程类本身就是调用的Runnable接口所以你可以继承java.lang.Thread 类或者直接调用Runnable接口来重写run()方法实现线程。更多详细信息请点击这里.

4) 用Runnable还是Thread?

这个问题是上题的后续,大家都知道我们可以通过继承Thread类或者调用Runnable接口来实现线程,问题是,那个方法更好呢?什么情况下使用它?这个问题很容易回答,如果你知道Java不支持类的多重继承,但允许你调用多个接口。所以如果你要继承其他类,当然是调用Runnable接口好了。更多详细信息请点击这里。

6) Thread 类中的start() 和 run() 方法有什么区别?

这个问题经常被问到,但还是能从此区分出面试者对Java线程模型的理解程度。start()方法被用来启动新创建的线程,而且start()内部调用了run()方法,这和直接调用run()方法的效果不一样。当你调用run()方法的时候,只会是在原来的线程中调用,没有新的线程启动,start()方法才会启动新线程。更多讨论请点击这里

7) Java中Runnable和Callable有什么不同?

Runnable和Callable都代表那些要在不同的线程中执行的任务。Runnable从JDK1.0开始就有了,Callable是在JDK1.5增加的。它们的主要区别是Callable的 call() 方法可以返回值和抛出异常,而Runnable的run()方法没有这些功能。Callable可以返回装载有计算结果的Future对象。我的博客有更详细的说明。

8) Java中CyclicBarrier 和 CountDownLatch有什么不同?

CyclicBarrier 和 CountDownLatch 都可以用来让一组线程等待其它线程。与 CyclicBarrier 不同的是,CountdownLatch 不能重新使用。点此查看更多信息和示例代码。

9) Java内存模型是什么?

Java内存模型规定和指引Java程序在不同的内存架构、CPU和操作系统间有确定性地行为。它在多线程的情况下尤其重要。Java内存模型对一个线程所做的变动能被其它线程可见提供了保证,它们之间是先行发生关x。这个关系定义了一些规则让程序员在并发编程时思路更清晰。比如,先行发生关x确保了:

线程内的代码能够按先后顺序执行,这被称为程序次序规则。

对于同一个锁,一个解锁操作一定要发生在时间上后发生的另一个锁定操作之前,也叫做管程锁定规则。

前一个对volatile的写操作在后一个volatile的读操作之前,也叫volatile变量规则。

一个线程内的任何操作必需在这个线程的start()调用之后,也叫作线程启动规则。

一个线程的所有操作都会在线程终止之前,线程终止规则。

一个对象的终结操作必需在这个对象构造完成之后,也叫对象终结规则。

可传递性

我强烈建议大家阅读《Java并发编程实践》第十六章来加深对Java内存模型的理解。

10) Java中的volatile 变量是什么?

volatile是一个特殊的修饰符,只有成员变量才能使用它。在Java并发程序缺少同步类的情况下,多线程对成员变量的操作对其它线程是透明的。volatile变量可以保证下一个读取操作会在前一个写操作之后发生,就是上一题的volatile变量规则。点击这里查看更多volatile的相关内容。

11) 什么是线程安全?Vector是一个线程安全类吗? (详见这里)

如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的。一个线程安全的计数器类的同一个实例对象在被多个线程使用的情况下也不会出现计算失误。很显然你可以将集合类分成两组,线程安全和非线程安全的。Vector 是用同步方法来实现线程安全的, 而和它相似的ArrayList不是线程安全的。

12) Java中什么是竞态条件? 举个例子说明。

竞态条件会导致程序在并发情况下出现一些bugs。多线程对一些资源的竞争的时候就会产生竞态条件,如果首先要执行的程序竞争失败排到后面执行了,那么整个程序就会出现一些不确定的bugs。这种bugs很难发现而且会重复出现,因为线程间的随机竞争。一个例子就是无序处理,详见答案。

13) Java中如何停止一个线程?

Java提供了很丰富的API但没有为停止线程提供API。JDK 1.0本来有一些像stop(), suspend() 和 resume()的控制方法但是由于潜在的死锁威胁因此在后续的JDK版本中他们被弃用了,之后Java API的设计者就没有提供一个兼容且线程安全的方法来停止一个线程。当run() 或者 call() 方法执行完的时候线程会自动结束,如果要手动结束一个线程,你可以用volatile 布尔变量来退出run()方法的循环或者是取消任务来中断线程。点击这里查看示例代码。

14) 一个线程运行时发生异常会怎样?

这是我在一次面试中遇到的一个很刁钻的Java面试题, 简单的说,如果异常没有被捕获该线程将会停止执行。Thread.UncaughtExceptionHandler是用于处理未捕获异常造成线程突然中断情况的一个内嵌接口。当一个未捕获异常将造成线程中断的时候JVM会使用Thread.getUncaughtExceptionHandler()来查询线程的UncaughtExceptionHandler并将线程和异常作为参数传递给handler的uncaughtException()方法进行处理。

15) 如何在两个线程间共享数据?

你可以通过共享对象来实现这个目的,或者是使用像阻塞队列这样并发的数据结构。这篇教程《Java线程间通信》(涉及到在两个线程间共享对象)用wait和notify方法实现了生产者消费者模型。

16) Java中notify 和 notifyAll有什么区别?

这又是一个刁钻的问题,因为多线程可以等待单监控锁,Java API 的设计人员提供了一些方法当等待条件改变的时候通知它们,但是这些方法没有完全实现。notify()方法不能唤醒某个具体的线程,所以只有一个线程在等待的时候它才有用武之地。而notifyAll()唤醒所有线程并允许他们争夺锁确保了至少有一个线程能继续运行。我的博客有更详细的资料和示例代码。

17) 为什么wait, notify 和 notifyAll这些方法不在thread类里面?

这是个设计相关的问题,它考察的是面试者对现有系统和一些普遍存在但看起来不合理的事物的看法。回答这些问题的时候,你要说明为什么把这些方法放在Object类里是有意义的,还有不把它放在Thread类里的原因。一个很明显的原因是JAVA提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得。如果线程需要等待某些锁那么调用对象中的wait()方法就有意义了。如果wait()方法定义在Thread类中,线程正在等待的是哪个锁就不明显了。简单的说,由于wait,notify和notifyAll都是锁级别的操作,所以把他们定义在Object类中因为锁属于对象。你也可以查看这篇文章了解更多。

18) 什么是ThreadLocal变量?

ThreadLocal是Java里一种特殊的变量。每个线程都有一个ThreadLocal就是每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了。它是为创建代价高昂的对象获取线程安全的好方法,比如你可以用ThreadLocal让SimpleDateFormat变成线程安全的,因为那个类创建代价高昂且每次调用都需要创建不同的实例所以不值得在局部范围使用它,如果为每个线程提供一个自己独有的变量拷贝,将大大提高效率。首先,通过复用减少了代价高昂的对象的创建个数。其次,你在没有使用高代价的同步或者不变性的情况下获得了线程安全。线程局部变量的另一个不错的例子是ThreadLocalRandom类,它在多线程环境中减少了创建代价高昂的Random对象的个数。查看答案了解更多。

19) 什么是FutureTask?

在Java并发程序中FutureTask表示一个可以取消的异步运算。它有启动和取消运算、查询运算是否完成和取回运算结果等方法。只有当运算完成的时候结果才能取回,如果运算尚未完成get方法将会阻塞。一个FutureTask对象可以对调用了Callable和Runnable的对象进行包装,由于FutureTask也是调用了Runnable接口所以它可以提交给Executor来执行。

20) Java中interrupted 和 isInterruptedd方法的区别?

interrupted() 和 isInterrupted()的主要区别是前者会将中断状态清除而后者不会。Java多线程的中断机制是用内部标识来实现的,调用Thread.interrupt()来中断一个线程就会设置中断标识为true。当中断线程调用静态方法Thread.interrupted()来检查中断状态时,中断状态会被清零。而非静态方法isInterrupted()用来查询其它线程的中断状态且不会改变中断状态标识。简单的说就是任何抛出InterruptedException异常的方法都会将中断状态清零。无论如何,一个线程的中断状态有有可能被其它线程调用中断来改变。

21) 为什么wait和notify方法要在同步块中调用?

主要是因为Java API强制要求这样做,如果你不这么做,你的代码会抛出IllegalMonitorStateException异常。还有一个原因是为了避免wait和notify之间产生竞态条件。

22) 为什么你应该在循环中检查等待条件?

处于等待状态的线程可能会收到错误警报和伪唤醒,如果不在循环中检查等待条件,程序就会在没有满足结束条件的情况下退出。因此,当一个等待线程醒来时,不能认为它原来的等待状态仍然是有效的,在notify()方法调用之后和等待线程醒来之前这段时间它可能会改变。这就是在循环中使用wait()方法效果更好的原因,你可以在Eclipse中创建模板调用wait和notify试一试。如果你想了解更多关于这个问题的内容,我推荐你阅读《Effective Java》这本书中的线程和同步章节。

23) Java中的同步集合与并发集合有什么区别?

同步集合与并发集合都为多线程和并发提供了合适的线程安全的集合,不过并发集合的可扩展性更高。在Java1.5之前程序员们只有同步集合来用且在多线程并发的时候会导致争用,阻碍了系统的扩展性。Java5介绍了并发集合像ConcurrentHashMap,不仅提供线程安全还用锁分离和内部分区等现代技术提高了可扩展性。更多内容详见答案。

24) Java中堆和栈有什么不同?

为什么把这个问题归类在多线程和并发面试题里?因为栈是一块和线程紧密相关的内存区域。每个线程都有自己的栈内存,用于存储本地变量,方法参数和栈调用,一个线程中存储的变量对其它线程是不可见的。而堆是所有线程共享的一片公用内存区域。对象都在堆里创建,为了提升效率线程会从堆中弄一个缓存到自己的栈,如果多个线程使用该变量就可能引发问题,这时volatile 变量就可以发挥作用了,它要求线程从主存中读取变量的值。

25) 什么是线程池? 为什么要使用它?

创建线程要花费昂贵的资源和时间,如果任务来了才创建线程那么响应时间会变长,而且一个进程能创建的线程数有限。为了避免这些问题,在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程。从JDK1.5开始,Java API提供了Executor框架让你可以创建不同的线程池。比如单线程池,每次处理一个任务;数目固定的线程池或者是缓存线程池(一个适合很多生存期短的任务的程序的可扩展线程池)。更多内容详见这篇文章。

26) 如何写代码来解决生产者消费者问题?

在现实中你解决的许多线程问题都属于生产者消费者模型,就是一个线程生产任务供其它线程进行消费,你必须知道怎么进行线程间通信来解决这个问题。比较低级的办法是用wait和notify来解决这个问题,比较赞的办法是用Semaphore 或者 BlockingQueue来实现生产者消费者模型,这篇教程有实现它。

27) 如何避免死锁?

Java多线程中的死锁

死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。这是一个严重的问题,因为死锁会让你的程序挂起无法完成任务,死锁的发生必须满足以下四个条件:

互斥条件:一个资源每次只能被一个进程使用。

请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。

不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。

循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。

避免死锁最简单的方法就是阻止循环等待条件,将系统中所有的资源设置标志位、排序,规定所有的进程申请资源必须以一定的顺序(升序或降序)做操作来避免死锁。这篇教程有代码示例和避免死锁的讨论细节。

28) Java中活锁和死锁有什么区别?

这是上题的扩展,活锁和死锁类似,不同之处在于处于活锁的线程或进程的状态是不断改变的,活锁可以认为是一种特殊的饥饿。一个现实的活锁例子是两个人在狭小的走廊碰到,两个人都试着避让对方好让彼此通过,但是因为避让的方向都一样导致最后谁都不能通过走廊。简单的说就是,活锁和死锁的`主要区别是前者进程的状态可以改变但是却不能继续执行。

29) 怎么检测一个线程是否拥有锁?

我一直不知道我们竟然可以检测一个线程是否拥有锁,直到我参加了一次电话面试。在java.lang.Thread中有一个方法叫holdsLock(),它返回true如果当且仅当当前线程拥有某个具体对象的锁。你可以查看这篇文章了解更多。

30) 你如何在Java中获取线程堆栈?

对于不同的操作系统,有多种方法来获得Java进程的线程堆栈。当你获取线程堆栈时,JVM会把所有线程的状态存到日志文件或者输出到控制台。在Windows你可以使用Ctrl + Break组合键来获取线程堆栈,Linux下用kill -3命令。你也可以用jstack这个工具来获取,它对线程id进行操作,你可以用jps这个工具找到id。

31) JVM中哪个参数是用来控制线程的栈堆栈小的

这个问题很简单, -Xss参数用来控制线程的堆栈大小。你可以查看JVM配置列表来了解这个参数的更多信息。

32) Java中synchronized 和 ReentrantLock 有什么不同?

Java在过去很长一段时间只能通过synchronized关键字来实现互斥,它有一些缺点。比如你不能扩展锁之外的方法或者块边界,尝试获取锁时不能中途取消等。Java 5 通过Lock接口提供了更复杂的控制来解决这些问题。 ReentrantLock 类实现了 Lock,它拥有与 synchronized 相同的并发性和内存语义且它还具有可扩展性。你可以查看这篇文章了解更多

33) 有三个线程T1,T2,T3,怎么确保它们按顺序执行?

在多线程中有多种方法让线程按特定顺序执行,你可以用线程类的join()方法在一个线程中启动另一个线程,另外一个线程完成该线程继续执行。为了确保三个线程的顺序你应该先启动最后一个(T3调用T2,T2调用T1),这样T1就会先完成而T3最后完成。你可以查看这篇文章了解更多。

34) Thread类中的yield方法有什么作用?

Yield方法可以暂停当前正在执行的线程对象,让其它有相同优先级的线程执行。它是一个静态方法而且只保证当前线程放弃CPU占用而不能保证使其它线程一定能占用CPU,执行yield()的线程有可能在进入到暂停状态后马上又被执行。点击这里查看更多yield方法的相关内容。

35) Java中ConcurrentHashMap的并发度是什么?

ConcurrentHashMap把实际map划分成若干部分来实现它的可扩展性和线程安全。这种划分是使用并发度获得的,它是ConcurrentHashMap类构造函数的一个可选参数,默认值为16,这样在多线程情况下就能避免争用。欲了解更多并发度和内部大小调整请阅读我的文章How ConcurrentHashMap works in Java。

36) Java中Semaphore是什么?

Java中的Semaphore是一种新的同步类,它是一个计数信号。从概念上讲,从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release()添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore只对可用许可的号码进行计数,并采取相应的行动。信号量常常用于多线程的代码中,比如数据库连接池。更多详细信息请点击这里。

37)如果你提交任务时,线程池队列已满。会时发会生什么?

这个问题问得很狡猾,许多程序员会认为该任务会阻塞直到线程池队列有空位。事实上如果一个任务不能被调度执行那么ThreadPoolExecutor’s submit()方法将会抛出一个RejectedExecutionException异常。

38) Java线程池中submit() 和 execute()方法有什么区别?

两个方法都可以向线程池提交任务,execute()方法的返回类型是void,它定义在Executor接口中, 而submit()方法可以返回持有计算结果的Future对象,它定义在ExecutorService接口中,它扩展了Executor接口,其它线程池类像ThreadPoolExecutor和ScheduledThreadPoolExecutor都有这些方法。更多详细信息请点击这里。

39) 什么是阻塞式方法?

阻塞式方法是指程序会一直等待该方法完成期间不做其他事情,ServerSocket的accept()方法就是一直等待客户端连接。这里的阻塞是指调用结果返回之前,当前线程会被挂起,直到得到结果之后才会返回。此外,还有异步和非阻塞式方法在任务完成前就返回。更多详细信息请点击这里。

40) Swing是线程安全的吗? 为什么?

你可以很肯定的给出回答,Swing不是线程安全的,但是你应该解释这么回答的原因即便面试官没有问你为什么。当我们说swing不是线程安全的常常提到它的组件,这些组件不能在多线程中进行修改,所有对GUI组件的更新都要在AWT线程中完成,而Swing提供了同步和异步两种回调方法来进行更新。点击这里查看更多swing和线程安全的相关内容。

41) Java中invokeAndWait 和 invokeLater有什么区别?

这两个方法是Swing API 提供给Java开发者用来从当前线程而不是事件派发线程更新GUI组件用的。InvokeAndWait()同步更新GUI组件,比如一个进度条,一旦进度更新了,进度条也要做出相应改变。如果进度被多个线程跟踪,那么就调用invokeAndWait()方法请求事件派发线程对组件进行相应更新。而invokeLater()方法是异步调用更新组件的。更多详细信息请点击这里。

42) Swing API中那些方法是线程安全的?

这个问题又提到了swing和线程安全,虽然组件不是线程安全的但是有一些方法是可以被多线程安全调用的,比如repaint(), revalidate()。 JTextComponent的setText()方法和JTextArea的() 和 append() 方法也是线程安全的。

43) 如何在Java中创建Immutable对象?

这个问题看起来和多线程没什么关系, 但不变性有助于简化已经很复杂的并发程序。Immutable对象可以在没有同步的情况下共享,降低了对该对象进行并发访问时的同步化开销。可是Java没有@Immutable这个注解符,要创建不可变类,要实现下面几个步骤:通过构造方法初始化所有成员、对变量不要提供setter方法、将所有的成员声明为私有的,这样就不允许直接访问这些成员、在getter方法中,不要直接返回对象本身,而是克隆对象,并返回对象的拷贝。我的文章how to make an object Immutable in Java有详细的教程,看完你可以充满自信。

44) Java中的ReadWriteLock是什么?

一般而言,读写锁是用来提升并发程序性能的锁分离技术的成果。Java中的ReadWriteLock是Java 5 中新增的一个接口,一个ReadWriteLock维护一对关联的锁,一个用于只读操作一个用于写。在没有写线程的情况下一个读锁可能会同时被多个读线程持有。写锁是独占的,你可以使用JDK中的ReentrantReadWriteLock来实现这个规则,它最多支持65535个写锁和65535个读锁。

45) 多线程中的忙循环是什么?

忙循环就是程序员用循环让一个线程等待,不像传统方法wait(), sleep() 或 yield() 它们都放弃了CPU控制,而忙循环不会放弃CPU,它就是在运行一个空循环。这么做的目的是为了保留CPU缓存,在多核系统中,一个等待线程醒来的时候可能会在另一个内核运行,这样会重建缓存。为了避免重建缓存和减少等待重建的时间就可以使用它了。你可以查看这篇文章获得更多信息。

46)volatile 变量和 atomic 变量有什么不同?

这是个有趣的问题。首先,volatile 变量和 atomic 变量看起来很像,但功能却不一样。Volatile变量可以确保先行关系,即写操作会发生在后续的读操作之前, 但它并不能保证原子性。例如用volatile修饰count变量那么 count++ 操作就不是原子性的。而AtomicInteger类提供的atomic方法可以让这种操作具有原子性如getAndIncrement()方法会原子性的进行增量操作把当前值加一,其它数据类型和引用变量也可以进行相似操作。

47) 如果同步块内的线程抛出异常会发生什么?

这个问题坑了很多Java程序员,若你能想到锁是否释放这条线索来回答还有点希望答对。无论你的同步块是正常还是异常退出的,里面的线程都会释放锁,所以对比锁接口我更喜欢同步块,因为它不用我花费精力去释放锁,该功能可以在finally block里释放锁实现。

48) 单例模式的双检锁是什么?

这个问题在Java面试中经常被问到,但是面试官对回答此问题的满意度仅为50%。一半的人写不出双检锁还有一半的人说不出它的隐患和Java1.5是如何对它修正的。它其实是一个用来创建线程安全的单例的老方法,当单例实例第一次被创建时它试图用单个锁进行性能优化,但是由于太过于复杂在JDK1.4中它是失败的,我个人也不喜欢它。无论如何,即便你也不喜欢它但是还是要了解一下,因为它经常被问到。你可以查看how double checked locking on Singleton works这篇文章获得更多信息。

49) 如何在Java中创建线程安全的Singleton?

这是上面那个问题的后续,如果你不喜欢双检锁而面试官问了创建Singleton类的替代方法,你可以利用JVM的类加载和静态变量初始化特征来创建Singleton实例,或者是利用枚举类型来创建Singleton,我很喜欢用这种方法。你可以查看这篇文章获得更多信息。

50) 写出3条你遵循的多线程最佳实践

这种问题我最喜欢了,我相信你在写并发代码来提升性能的时候也会遵循某些最佳实践。以下三条最佳实践我觉得大多数Java程序员都应该遵循:

给你的线程起个有意义的名字。

这样可以方便找bug或追踪。OrderProcessor, QuoteProcessor or TradeProcessor 这种名字比 Thread-1. Thread-2 and Thread-3 好多了,给线程起一个和它要完成的任务相关的名字,所有的主要框架甚至JDK都遵循这个最佳实践。

避免锁定和缩小同步的范围

锁花费的代价高昂且上下文切换更耗费时间空间,试试最低限度的使用同步和锁,缩小临界区。因此相对于同步方法我更喜欢同步块,它给我拥有对锁的绝对控制权。

多用同步类少用wait 和 notify

首先,CountDownLatch, Semaphore, CyclicBarrier 和 Exchanger 这些同步类简化了编码操作,而用wait和notify很难实现对复杂控制流的控制。其次,这些类是由最好的企业编写和维护在后续的JDK中它们还会不断优化和完善,使用这些更高等级的同步工具你的程序可以不费吹灰之力获得优化。

多用并发集合少用同步集合

这是另外一个容易遵循且受益巨大的最佳实践,并发集合比同步集合的可扩展性更好,所以在并发编程时使用并发集合效果更好。如果下一次你需要用到map,你应该首先想到用ConcurrentHashMap。我的文章Java并发集合有更详细的说明。

51) 如何强制启动一个线程?

这个问题就像是如何强制进行Java垃圾回收,目前还没有觉得方法,虽然你可以使用System.gc()来进行垃圾回收,但是不保证能成功。在Java里面没有办法强制启动一个线程,它是被线程调度器控制着且Java没有公布相关的API。

52) Java中的fork join框架是什么?

fork join框架是JDK7中出现的一款高效的工具,Java开发人员可以通过它充分利用现代服务器上的多处理器。它是专门为了那些可以递归划分成许多子模块设计的,目的是将所有可用的处理能力用来提升程序的性能。fork join框架一个巨大的优势是它使用了工作窃取算法,可以完成更多任务的工作线程可以从其它线程中窃取任务来执行。你可以查看这篇文章获得更多信息。

53) Java多线程中调用wait() 和 sleep()方法有什么不同?

上一篇:销售部薪酬考核制度下一篇:电工作业管理规定