华为JAVA编程要求规范重要试题
华为高级java面试题
华为高级java面试题一. 概述Java作为一门广泛应用的编程语言,具有很高的灵活性和可扩展性,因此在软件开发领域中扮演着重要的角色。
华为作为全球知名的通信技术解决方案提供商,对Java开发人员的技术水平要求也较高。
本文将针对华为高级Java面试题进行详细解析。
二. 题目1:Java多线程基础1. 请简要介绍Java中的线程和进程的概念,并说明它们的区别和联系。
答:Java中的线程是指程序中独立执行的一组代码,可以并发地执行。
而进程是系统中正在运行的一个程序实例。
线程是进程的一部分,一个进程可以包含多个线程,各个线程共享该进程的堆和方法区资源。
线程之间可以通过共享内存进行通信,而进程之间需要通过进程间通信(IPC)来实现。
2. 请简述Java中如何创建线程的两种方式,并比较它们的优缺点。
答:Java中创建线程的两种方式包括继承Thread类和实现Runnable接口。
继承Thread类的方式简单,但由于Java不支持多重继承,所以无法继承其他类。
而实现Runnable接口的方式避免了单继承的限制,并且可以更好地实现代码的解耦和重用。
3. 请解释Java中的同步和异步的概念,并举例说明它们的使用场景。
答:同步指的是多个线程按照一定的顺序来访问共享资源,可以有效避免数据的冲突和不一致。
Java中可以通过synchronized关键字来实现同步。
异步指的是多个线程独立执行,彼此之间不受制约,执行结果由操作系统时间片分配决定。
Java中可以通过多线程的方式实现异步操作,例如使用Future和CompletableFuture来获取异步任务的执行结果。
三. 题目2:Java集合框架1. 请简述Java集合框架的体系结构,并说明List和Set的特点和使用场景。
答:Java集合框架主要包含了Collection接口和Map接口,其中Collection接口又分为List和Set两个子接口。
List是有序的集合,允许存储重复元素,可以通过索引位置来访问和修改集合中的元素。
华为java笔试题v2.0
二月份049
三月份038
1)选择(部门为“02的所有记录”):
2)插入(mon为“四月份”,dep为“04”,yj为7):
3)删除(mon为“四月份”,dep为“04”的所有记录):
4)更新(dep为“04”的记录,yj更新为8):
5)模糊查询(所有mon里包含“二月”两个字的所有记录):
如下图所示:
请用javascript实现此功能。(提示:可以根据单击事件(event)拿到事件源对象即被单击的复选框)(5分)
<script language="javascript">
//全选操作
function checkAll(){
}
//子条目选中操作(需要完成功能:只要有一个以上的子条目未被选中,“全选\全不选”复//选框就未选中,如果所有子条目均被选中,“全选\全不选”就为选中状态)
insert into T select * from T1;
--(Assume T1 exists)
B.insert into T select distinct from T
C. insert into T1 select distinct * from T;
delete from T;
insert into T select * from T1;
--(Assume T1 exists)
D.delete from T having count(id) > 1
二、编程题:
1、题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
请补充完整test方法体。n为输入的参数,结果返回类似“90=2*3*3*5”的字符串。(5分)
java华为可信考试题库及答案
java华为可信考试题库及答案1. Java中,哪个关键字用于声明一个类?A. classB. publicC. privateD. void答案:A2. 在Java中,下列哪个选项不是合法的变量名?A. _variableNameB. variableNameC. 2variableNameD. $variableName答案:C3. Java中,如何声明一个整型变量并初始化为10?A. int number = 10;B. int number = "10";C. int number = 10.0;D. int number = '10';答案:A4. Java中,下列哪个选项是正确的数组声明方式?A. int[] myArray;B. int myArray[];C. int[] myArray = {1, 2, 3};D. All of the above答案:D5. 在Java中,哪个关键字用于捕获异常?A. tryB. catchC. finallyD. throw答案:B6. Java中,下列哪个选项是正确的继承方式?A. public class Derived extends Base {}B. public class Derived implements Base {}C. Both A and BD. None of the above答案:A7. Java中,下列哪个选项是正确的接口实现方式?A. public interface MyInterface {}B. public class MyClass implements MyInterface {}C. Both A and BD. None of the above答案:C8. 在Java中,下列哪个选项是正确的方法重载声明?A. public void display(int number);B. public int display(int number);C. Both A and BD. None of the above答案:C9. Java中,下列哪个选项是正确的方法覆盖声明?A. public void display() {}B. public void display() throws Exception {}C. Both A and BD. None of the above答案:A10. 在Java中,下列哪个选项是正确的泛型类声明?A. public class Box<T> {}B. public class Box {}C. Both A and BD. None of the above答案:A11. Java中,下列哪个选项是正确的泛型方法声明?A. public <T> void show(T t) {}B. public void show(T t) {}C. Both A and BD. None of the above答案:A12. 在Java中,下列哪个选项是正确的匿名内部类声明?A. new Thread() {public void run() {System.out.println("Thread is running"); }};B. new Thread() {public void run() {System.out.print("Thread is running");}};C. Both A and BD. None of the above答案:C13. Java中,下列哪个选项是正确的线程启动方式?A. Thread t = new Thread();B. Thread t = new Thread();t.start();C. Both A and BD. None of the above答案:B14. 在Java中,下列哪个选项是正确的线程同步方式?A. synchronized methodB. synchronized blockC. Both A and BD. None of the above答案:C15. Java中,下列哪个选项是正确的集合框架类?A. ListB. SetC. MapD. All of the above答案:D。
华为编程规范考试机试试题
D (规则6.3禁止引用已经释放的存空间。
)—、国选题/每题仅有一个正莊的因页.2. 选择出:E確的址义A. #d^fine RECT_AREA( a, b) (a* b )0. #deflne RECT_AREA( a, b ) ( a ) + { b )C. #define RECT_AREA( a(b)((a)*(b))D. ^define RECTJkREA( b ) a * b呼嗣毎越慣肓—KE確葩起九3, 下列黄耳头文件或呪町待曲昔1列H足乩驾一世扫一牛辰注」】丈件,月二芝蜩柔雲对中呛尹旺挫Tl r辰対</.h丈伫茎止忸咅冃疋劉的头丈日.3R丄世吳立中口卫人卫“「疔耳可詁谆戸阿旳七音二,曲寸停呢芒弋舞「的严朮心寻宣L1逆卅勿札护列叱A. b.CB. aJiC・ axfCa.hD a cffibx5.关一程序效率的现范姜求,踐一项1S述主信误的“ A.应该把执行ftt率较K旳分支肢在if else判祈后面处理3.格循豕=与循环无关不是每次循汗强昵按作‘移至饌IT外詢k行C. 创律呂原克(线程池、内存池}.以减少分配对冬的开铠D•椅多次被谖用的M屈ST改为inline函数或倉烹实现6・关于翁£正诡33昱A. ^define EXAMPLEJ)JEST.初efine £XAMPLE_1_TES\B. 代码文件命召建汶统一采用首宇母大写具余宇僚<1等的形式命名丁C. int error.number; intnurnber_of_completed_co n nection;D. DWORD GetJlnthengMulu( DWORD BufferLengtlx LPTSTR Buffer);7.以下舜种措施不可以進免内存損作趣界A. 数组的大小要考轟大情况,匱免数須分配空间不够B. 字轩宦考虔最后的、(T ,碓保斫有字苻串是次、0'结束C. 指针乃口咸操作时,考專指脅类型长度7 D•通过手工计算结构/字轩串长度&下面说法错误的是A. 程序中妾及时清除存储在可复用资游中的敏感信息B. 硼除或修改没有效果的代码C. 硼除或修改没肓使用到的变量或值7 D.非动态申请的内存也可以使用free手动释放9. ¥干5门吐的摘讳曲肯宗::A. const intA-1 ;龙文了屯星A ,值为1”在任何时候值都不可变B. const char * A="ab亡*摘铲AJ旨巨的内客不可变C. char d const 腊针AJB向的内宿不可塞D. const char * con^t A='abc r:Jg?-A^播向的闷容都不可变iC T如疙沏的是血一些挣枉的代码Eft丸表这比,即怯古删石启.也车士时代加B果魄ft堀的曲产生任何曲珈,馬尽可収不用理舍V乩在便却勵忧皿邙皿streps stmepy. sicinlV. sprinttD L mpHntt(j*Ocrtflmbs{)区祥的團52时”旳涼趙邸炮址£目C耳.碍桔总切0亚润 < 可”\3*毗古司酸窃丽Jtz/V力潜蛊忆才巧翱旳Y怕D.兰吉匹与苯宦監可二確用ma oc rallcca a ora11对于字弟吿Ttxd前ghi(T使用李大字符啟爼进行存睹最尢合逵A, 10.0氏11.0C. 12.0D. 20.012 C応下列关于1図卿祚正■旳是;I M理斫弭包有捋勿B< * UMT*衣示J2位商1号曹as, [NIBS际E位桶彌R)V A IMT32 FuncCUnT32 nil UINT32uiZ U1NTJ24nel) {if:NULL ■ ret〕[Trturn ERROR. I if((UIN.T_MAX - ulU < ui?) { return ZFiROR; ] el«■' 'ret= ulL* ui2:' return OK; iB. INH2 Fun<(IhlTJ2 wl INB2 $iZ INT32*ret) (if ( NULL ■■ net) {retum ERftOR;} *rv\■ lil * 5i2, return OK 卜C. 1NT32 Func(UH4T22 ui [NV ' rel) {Iff NUlt ==陨】{ return EFtROR;卜f rtt = dNTffiut return tOKJc}&. •def ins BULSIZE ID int mainfirit argc, chwr argv[D [in* length thar buf [BLfF^SEE]; if [argc !■ 3) I return -1) len 9th =日toi[ar^¥【]]l:If nsngtfi < BUF.SIZE] { memcp>\biif, argvfJt length); printfT Data copl ed\r*); \ flsef prlntff^TD o 耐i〕丫禹姑打门;}]14.如具函数foo仅在ac内可见f则应当如下声明A.在d.c的头部声明int foo(void);V B.在a.c的头部声明static int foo(void);C. 在a.h的头部芦明static int foo(void);D. 在d.c的头部声明extern int foo(void);15•以下煞于虫全编码的说法f倚谓冇昙A. 无论是明文□令还是密文□令,都应该亲止俣存在日志文'牛中B. 硼涂或修改一些即使执行后、也不会有任何效果的代码C. 程亭在运行时应该只分配能完成具任务的层小权限丁D.程序执行® 完毕时r应该気快收回冥仅限.对于权限旳畝钧耐可以不月考底16.下主代码示怠片段•从安全性宦岌赛个符台农危1)charbuff[MAX_BUFF_SIZEl;char f cdltor ■ getewf EDITOR*);if (editor != NULL)($rrcpy(buff, editor):}2)char buf[BUF.SIZE + 1]:if (faets(buf, $izeof(bufXfp) -- NULL)(r handle error •/}buf[$tren(buf)・ 11 = \0":3)unsigned int ength;C磁丘度减去FSMZ)长劇/llength -二3RLEN;4)void check_pa^^ordlch«u chAf *pd沼IWK D{If (strcrripijM 55 word (user), pi5$ward;!■ 0)(cidr *msg - ma laLfstikn」ser;+ 100'■ (Imstf{/' hdridle error LW ditiu p i'/}iprintftrnsg, “彩password Incorrect*, u&er];fprinlf(sttfeii, %: u^er);$vs I cg(LO(j JN FO/ ' msg )■他如妙;}A. 1)B. 2)C. 3)D17.割収IM走曲内权划v的越朝a站台妊性校脸.星园为:ora ffWsyBS有走站.鸟w白穴罰返回盯HA对旳令弓IF不可JSC疲不肖曲却宣现的问誉;比僧用亡囲厨齐申却卿,鱼ar令警当威「柩丸的倉5”®,从弔司茲匡斗海匚与SF5豆飯畑“匚卩毂対D. 1,2帮不对18. T列耶种方式产生的随札數星不安全、容易被预测的V A.匸99的randOB. Unix/Linux下读S/dev/randomi;<+C Win dowsfe用墮叽斂生成函数〔ryptGenRandomOD ■以上选萌都不对19.打对函数的设计的说法,下面鄭个罡王碓的A.应尽量设计多用途面面俱到的因数;函数的参数个数可以超过5个V B.在源文件范围内声明和定义的所有函数,除非外舀可见,百则应该增加static关键字C. 设计高扇入,台理扇勺(小于7 )的函数;新壇函数的代码块嵌妻不超过5层O D.函数中的冗余代码只要不彩他函数的效牽,不熹要删除20. T®哪个算法是禁止使用的弱加密算法© A. SHA2Q B, RSA© C. DSA# D. DES21.以下说法简昊的有]A.必须对播走曰请内存大小的整数值进行合法性校验B. 禁止重复釋放内荐“ C-堆汗存釋放不可以再访问,桂穴存释放启可以再访问W D.为了便用方便,建议使用dlloca函数耳请卞存22.如国肛只对外斥(HYvold barCffIK作为接口.充barSWifg反都分君要使用b cdBOvoid fooOSJR r以下法年晴比足>f A 在b.co^^extern void fooO .在atG走殴xtem void fooOB.在b.h中芦明extern void fooQ 在a.c43=醍extern void fooQ_ C.在b.h中芦明exiern void fooO ,住肛中^Include b.hD. 包b.hU芦联xtem void fooO , Jra.h^irKlude b.hA.若全局苓屋(7斤单个C 文件口访问 刖瓦以将这个百至iS 改为静龙全忌右星,以隆低耐间曲程台脣3.若全与煙仅三单个矽灼可.龙可以桦这个妾呈改龙该画敌询芒局苗進,以逵任唉块可工琨台夏C.设计阳使用为何泌仝局*、0态全扈主呈、函数科•丢要走痔重入辽题D ・IS 敌内莽走义的弓动亏斬K .可韭纟导若堆茂•谥出A.异童生口处哙亘内存.走吐器/文件匀權/Socket/队列/倍号量/GUI 等资澹是否缶释戒 C. 使和8铲数组时r 确斥西如组时 数爼中的毎勺元矛括卜是否前滾轻板了 D. 進免重复分配内抒 25.如换不便用驾更,亘洽在握序中JH 尼敢亨丈宇茅显.將令口8E 些炉煩4 A.fe?的习険性(可連解性}变基.程寺厨口三“记卵空取字“令雷是L 么玄患,进泸人呂则更1U 不矩它G 从4険瑕 去 示ft 么 7 PQ 奧站驱败字或宇刁毘,划会左牢冬如改已r SE 翊又密县土宗丁 C.在程序茄霑参宅方坳入同样的飯手或宁三岳■军好不丈生书写商吴司D. 3无X 译26•对于舫止头文件琏宣包含“ A.多史包含一个矢文件环41认真ffj 设计.7免・A :翼W 故旦这一怎•虫港妾乘沁t 头文件内昏釀勾含多于一决的厂血 7 B.防lrSHSJ^JifiS 手股呆•为壬个立舛配盘一个京 弓宜文UM —决皎切他就主义这个宏・并在X 件派再:丁勺品快 用E 刘Mt 文件穴密“ C.保?emi 旖衿曼淮一 不*三史7 D.柚在史止壬含的保夕思外郃取舌代需27. 下列走义中正磷的是A. c har *a = "abed";B. c har a[] = "abed";C.char a[4]= r abcd r ; D. char a[]=“N 24. B.训険S 构播针时.必须从底层向上层II 龄刖徐28. 以下说法正确的育A.在引用丙存n前需妾注急是否该内荐已•被成功初妇化丫氐在访问匹捋前需墓注意该內存是否有效r是否已在其怕地方被释改过V U放応存时是要注意是E是已释放过的毛存F注君不要重复释取"D.障啟内存时壽宴注意不更释故菲动态申请的氏存29. 关于兰局支星朗连釋.囂些摘逑是上诵的丫A,兰局鉴量妾肓较任细的汪释丁B.对些变量注释r可旬借功自区取值范匡1萋L c.全局变量应该是本厦块内tt用的r用法目己自然墨知道的r可以不加注释V D.对全局变量注释需包括艮寸懐全局变量等取时的注意事项零30. 以下嘟空谕入不可信输入工A.用户攏盘圖入□ E.配晋文炷输入V U环境变量丁D网络散值ABCD51.对于舷溢出闻迦r下面说法正昵的是< A.无符寻数运算时”要保证结畢不能出现反转N &有符号葩运算时■要保证结卑不能生现隘出7匚整型希擾时贬出5C戡断卮遗D,雀数浇=—般只2导缺逻辑错俣「兀会产生宝兰问蕙32. 常铝时应:该使屈下画耽空画数*全运行鼻呈字A. popenO 氐systemQ7 C. execfl^列團数“ D. Cre^ieProc&s^O33, 室仝轿呈规范中,实全用逮的随兀寥产主E「淫琴的有V A. UniMLinu)(下采取建逗读取/d巳卯阳ndom文件来获取真随机歆B. Win doM性荐便用随叽数生成画数匸ryptGenRd n domQC. 具他平台可以厘用srandomO+random0的方弍D. 托荐粗件叩盯卸或卑为吕主封装的iPS闻件ABD34. 多竣程、多泾程设计中,什么IW况下必须加费保护7 A.访问全局变量比调用13憩7 :访冋静态变量V D•操作共享匹存3S荐HMLE更円a«S申的血百郎潯股匕王桂上打创一观匕二昵测底冋咖户如攻击•换C呛工冋.E.±RJSGSMeTJT豆..1;q:.i2H-.5;p Hit■ = ziSfR^ .〒岂屋-:」下几WA W f 2亦)G. * ( heap }7 C- C seflrrf nr)V l>.茨更主站锂匸氓弓ABCD36 KEtS的阿挣劳观忑蚯超忤恿:删1W圧,:下■说述正嘴旳勺比金烷刊三骯在刃存^蝉旳存储区就,言“丄握文件也屯馆啟“ B獎些畫虽存孟左匹专的碁态与诗区域’曰口^的立件咛宵式CEV5層芒占屋“竝内厅的氏区.只在走.交它加画•&店骂岳,只星埠张叔海一少匹存回其逅冋产r懐右医孑台谓賞*Z LJ,昼三绘皇殍.立芒还牛的挨厶芒逹匚甘王垒憩內鬥艾■伫読曲签逋目是盛>7.下习弋讹-所軒登不刁白咬曲码五艾亘母# A»wiigned im «dd(undgned im A, um^ned int b). unsigned ini mm su*n - * + b; return ,unv}B- int fcKJ^char' str] [ size.t Imr = strlen^ir); (len >= MAX_BUF_SIZE -1) { return -1:}char d buf = (char'ynalloctlen -I): if (buf ■ MU ID (relum -1: J shncpyObut Mr, i^nj;bufl ml ■'中;戶时buf 的??Stt 環7 frnfbuf) buf ■ NUL L }C. Int rWe.opJtchir* nie_ndmel \ FTLE 叮店fp - , *丁If ftp ■ ■ NULL) ( return -h J 严XUbttS 7 if (ftl use1中i ! = Q) {re:urr -] } if 丁EE口,e{fi ] !- 0) {rettim -±} t^tuE 瞬\D intio genD f enum (len ■ 12}; char Idfen]; Fnt r Int num; r ■ randO:flian > tnprfrnKHleix ID% d'广:广生JJID */?些性亡理'/ :氷丈件I/O安全中「以下郵些星王碓的做法丫A.便用in供型来援收芋裕输M辙出画数的返回117 区创建文件时r指走了合适的访问陨限7 C•文件名称使用白名单字硏杜第出现M厂之芙的目录跨歸号V D.访冋时始终使用文f阳代酉文用百述芍,収遊免竟笋羽牛39. 七语句过快且不能拆分时,应该换行r捉行时应蔘考的规则有“ A.損行时,新行要增加一昶缩遊r侵代码可读哇更好J B.低此先痢舅作将处划分新行;换行时操作符不应该赦下来(放揑吁屋Q C.换行时应该按照单词换行「在最接近一行的边界处换行/ D,接行昱圜义一个完整的语匀放在一行「不要艰橱宇乌数断行40. 以下关于宴全编码的:兑法,王捲的蹇“ A.无论是明文□令还是巴文□令,都应该窯止保存在日志文件中7 B.程序在运行时应该只分配能完成其任务芒最小权限C.程序执行任务完三时,应该尽快收回其权限,又口于权眼釣載策I祝序可以不用考魔N D.如耒没毎充分考處字石吕的'\0紹束符,则很可昵令导或缓冲区溢边等安全漏洞41. 龜入校验中如具没有特殊要求,应当首先考康采用"白名单”校验形式丫正礁42. sizeofCabcdef3的输出值星7 , strlenCabcdef')的揄出澄翼6Q辭43. 内存释放后,JG指针宣尢NULL ;快用内存指针前进行壬空判断©赵44. 允许返回函数中定义的局部7S针去虽正推45. 阴肓的if ... else i倚构应该白加好勻结束;switch语勻必浜有default分支O歸46•全局蔓磁JSR 3J莎05正境7 fSi?47. il讯过程中懊用的结构「必烦注意字节序V正确o險48,使用stgy令有愛口区葢出的风瞳,使毎巾口匚內就^返免旅凤险正覇49*胆出耳NEt 再了唏而传诵敲3:.应潼讯勺曲正磷M.可二冃er =10西建产牛帀干亏令甲暉矿盘!乩把逛农达式tt载擁■宜为T■更P題之前名质审建8更相理对它世行祠BV ZEiftjffiS52-恪吿师岀函散旳傭弍化审哉祗丈斷艮豐必涣匹配V正砸52.访冋时始缮愎用文-'牛省吒昔哀鬥苗谨芍.J裁竞争糸件7正誌错误込对于肖部使用巧谯一営文旺亶矍瑚孔可哄在代码詔圉晌曲阴注释’也可涯义J那o佗烷鱼V正怖56. U至人却血皿匡电共字兰:书,则必沏鱼过耳=3 (矣中哥、U匚虽)对旦:IU朗y正确f«Vr57产品吋浊用MD5身法兀口令进行加密「京医是MD5旦法呈対卷加岂宜云1BB▽ ・;・亍了一一二一•.二二M 可安M\OM宋门三方唱亍三二已―了二匡"二1'「工.■「二=1许丸丁一_ U59. 一个变量只育一个功能r不能把一个变量用作多种臣途丁2E滩60.位操作符(〜、>>、《、&、- |)应该只用于无*整型操作数4■弓尸。
华为Java认证题
Java認證考古題第二部份Answer= AB假定:11. switch (x) {12. default :13. System.out.println (“Hello”);14. }下列那兩項是x可以接受的形態?(選兩項)A. byteB. charC. longD. LongE. floatF. Short解:整數型態32位元以下都可以,int/short/char/byteAnswer= C假定:11. int x = 3;12. int y = 1;13. if (x = y) {14. Systm.out.println (“x = “ + x);15. }結果為何?A. x = 1B. x = 3C. 編譯失敗。
D. 程式執行後未產生輸出。
E. 在執行時期丟出一個例外。
解:if(?)括弧內必須是boolean值,行13中x=y是int型態,x==y結果才是boolean型態Answer= E假定:11. Float f = new Float (“12”);12. switch (f) {13. case 12 : System.out.println(“Twelve”);14. case 0 : System.out.println(“Zero”);15. default : System.out.println (“Default”);16. }結果為何?A. ZeroB. TwelveC. DefaultD. TwelveZeroDefaultE. 編譯失敗Answer= E假定:11. for (int i = 0; i<3 ; i++ ) {12. switch (i) {13. case 0 : break;14. case 1 : System.out.print (“one”);15. case 2 : System.out.print (“two”);16. case 3 : System.out.print (“three”);17. }18. }19. System.out.println (“done”);結果為何?A. doneB. one two doneC. 編譯失敗D. one two three doneE. one two three two three done解:沒有break;敘述中斷底下的會被執行…Answer= A假定:11. public void test (int x ) {12. int odd = x % 2;13. if (odd) {14. System.out.println (“odd”);15. }else {16. System.out.println (“even”);17. }18. }下列何項陳述是正確的?A. 編譯失敗。
JAVA编码规范考试题答案
A. 含有集合意义的属性命名,尽量包含其复数的意义B. 集合中的数据不需要释放,垃圾回收器会自动回收C. 集合必须指定模板类型D. 使用集合类时要设置初始化容量A. 新起一个线程,都要使用Thread.setNam e( “…〞)设置线程名B. 在JDK1.5 或者更新的版本中,假设字符串拼接发生在单线程环境,使用StringBufferC. 对多线程访问的变量、方法,必须加锁保护,防止浮现多线程并发访问引起的问题D.线程使用时,要在代码框架中使用线程池,防止创立不可复用的线程;制止在循环中创立新线程,否则会引起JVM 资源耗尽A. DESB. AESC. SHAD. RSAA. 程序中的一些状态多直接用数字表示,如函数执行成功return 1B. 对于表示函数执行错误,多用约定的错误码来标识C. 用故意义的静态变量或者枚举来代替数字型的程序状态,如函数执行成功 return SUCCESSD. 程序中的魔鬼数字并不可怕,需要所有开辟人员努力理解这些数字的含义A. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序构造来确定,并且异常和错误码不应该混合使用,推荐使用异常B. 一个方法不应抛出太多类型的异常。
throws/e*ception 子句标明的异常最好不要超过三个C. 异常捕获尽量不要直接 catch (E*ception e*),应该把异常细分处理D. 程序抛出的异常本身就可说明异常的类型、抛出条件,可不填写详细的描述信息。
捕获异常后用 e*ception.toString()取到详细信息后保存A. 属性名使用意义完整的英文描述,第一个单词的字母使用小写,剩余单词首字母大写其余字母小写的大小写混合法。
属性名不能与方法名一样B. 方法名使用类意义完整的英文描述:第一个单词的字母使用小写、剩余单词首字母大写其余字母小写的大小写混合法C. 方法中,存取属性的方法采用 setter 和 getter 方法,动作方法采用动词和动宾构造D. 常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用 static 修饰[y1]A. 挑战算法中的随机数生成B. 验证码的随机数生成C. 随机选取路由D. Web 应用会话标识符public RandomAccessFile o penFile(java.io.File f){[1]java.io.File c opy=n ew j ava.io.File(f.getPath());askUserPermission(copy.getPath());//...return(RandomAccessFile)AccessController.doPrivileged(new P rivilegedAction(){publicObject r un(){return new RandomAccessFile(copy, copy.getPath());}});}A.f inalB.s taticC.v olatileD.p rivateA. 对外部输入发展校验B. 制止不受信任的代码直接终止JVMC. 创立文件时指定合理的访问权限D. 记录日志时可以抛异常A. 提示用户输入B. 由环境变量获取:System.getenv("USER")C. 由JVM 属性获取:System.getProperty("")D. 启动程序的时候由程序参数传入A. 尽量使用Java 5.0 新循环写法B. 判断一个变量是否等于 null、或者一个常量,应把变量放在操作符的左边C. 方法参数不能超过 7 个D. 用“==〞比拟两个字符串容相等A. 序列化传输敏感数据B. 无 SSL 传输通道或者代价太高C. 敏感数据需要持久化长久保存D. 同一信任域组件间传递ng.System.load()B.j ng.Runtime.e*ec()C.j ng.Thread.start()D.j ng.Process.waitFor()A. 除了构建器外,不要使用和类名一样的方法名B. 使用 equals() 比拟两个类的值是否一样C. 不要使用嵌套赋值,即在一个表达式中使用多个 =D. 重载 equals() 方法时,不必要重载 hashCode() 方法A.数据库、 IO 操作等需要使用完毕 close()的对象必须在 try-catch-finally 的 finally 中 close()B.数组声明的时候使用 int[] inde* ,而不要使用 int inde*[]C. 所有的类必须重载 toString()方法,返回该类故意义的容D. 自己抛出的异常必须要填写详细的描述信息public class PasswordManager{public final O bject l ock=n ew O bject();public v oid c hangePassword() throws FileNotFoundE*ception{synchronized(lock){//...}}}A. changePassword()方法中应该包含安全管理器检查,以确认调用代码是否具有该操作权限B. 应该将 lock 成员变量的可见性声明为privateC.可以省去 changePassword() 方法中的同步块,直接将 changePassword() 方法声明为 synchronized 修饰的同步方法D. changePassword()方法不应该抛出 FileNotFoundE*ception 异常A. 限制外部输入的长度B. 使用存储过程C. 使用预编译语句D. 对外部输入发展转义A.P olicyB. AuthPermissionC.P rivateCredentialPermissionD. LoginConte*tA. 逗号、分号只在后面加空格; 比拟操作符, 赋值操作符"="、 "+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的先后加空格; "!"、"~"、"++"、 "--"、"&" 〔地址运算符〕等单目操作符先后不加空格B. 如果语句已足够清晰则括号侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java 语言中括号已是最清晰的标志了C. 较长的语句、表达式或者参数〔>80 字符〕要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要发展适当的缩进,使排版整齐,语句可读D.if, for, do, while 等语句的执行语句如果惟独一行的话,不需要要加括号{}A. 公有和保护方法注释容:列出方法的一句话功能简述、功能详细描述、输入参数、输出参数、返回值、异常等B. 对重载父类的方法必须发展 Override 声明C. 对关键变量的定义必须编写注释,分支语句〔条件分支、循环语句等〕,可以根据实际情况,可以增加注释,也可以不加,根据注释量确定D. 对于方法部用 throw 语句抛出的异常,必须在方法的注释中标明,对于所调用的其他方法所抛出的异常,选择主要的在注释中说明。
华为java面试题集第3部分编程题
1.现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,,提供reset答案(1) public static String[] splitStringByComma(String source){ if(source==null||source.trim().equals(""))return null;StringTokenizer commaToker = new StringTokenizer(source,",");String[] result = new String[commaToker.countTokens()];int i=0;while(commaToker.hasMoreTokens()){result[i] = commaToker.nextToken();i++;}return result;}循环遍历String数组Integer.parseInt(String s)变成int类型组成int数组Arrays.sort(int[] a),a数组升序降序可以从尾部开始输出2.金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。
3、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 答:父类:package test;public class FatherClass{public FatherClass(){System.out.println("FatherClass Create");}}子类:package test;import test.FatherClass;public class ChildClass extends FatherClass{public ChildClass()System.out.println("ChildClass Create"); }public static void main(String[] args) {FatherClass fc = new FatherClass(); ChildClass cc = new ChildClass();}}输出结果:C:>java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create4、内部类的实现方式?答:示例代码如下:package test;public class OuterClass{** class InterClass{public InterClass(){System.out.println("InterClass Create"); }}public OuterClass(){InterClass ic = new InterClass(); System.out.println("OuterClass Create"); }public static void main(String[] args) {OuterClass oc = new OuterClass();}}输出结果:C:>java test/OuterClassInterClass CreateOuterClass Create再一个例题:public class OuterClass {** double d1 = 1.0;//insert code here}You need to insert an inner class declaration at line 3. Which two inner class declarations arevalid?(Choose two.)A. class InnerOne{public static double methoda() {return d1;}}B. public class InnerOne{static double methoda() {return d1;}}C. ** class InnerOne{double methoda() {return d1;}}D. static class InnerOne{protected double methoda() {return d1;}}E. abstract class InnerOne{public abstract double methoda();}说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。
华为Java笔试题一(2)
华为Java笔试题⼀(2)华为Java笔试题⼀D.Servlet 2.下列说法正确的有() A.环境变量可在编译source code时指定 B.在编译程序时,所能指定的环境变量不包括class path C. javac⼀次可同时编译数个Java源⽂件 D. javac.exe能指定编译结果要置于哪个⽬录(directory) 答案:BCD 3.下列标识符不合法的有() A.newB.$UsdollarsC.1234D.car.taxi 答案:ACD 4.下列说法错误的有() A.数组是⼀种对象 B.数组属于⼀种原⽣类 C. int number=[]={31,23,33,43,35,63} D.数组的⼤⼩可以任意改变 答案:BCD 5.不能⽤来修饰interface的有() A.privateB.publicC.protectedD.static 答案:ACD 6.下列正确的有() A. call by value不会改变实际参数的数值 B. call by reference能改变实际参数的参考地址 C. call by reference不能改变实际参数的参考地址 D. call by reference能改变实际参数的内容 答案:ACD 7.下列说法错误的有() A.在类⽅法中可⽤this来调⽤本类的类⽅法 B.在类⽅法中调⽤本类的类⽅法时可直接调⽤ C.在类⽅法中只能调⽤本类中的类⽅法 D.在类⽅法中绝对不能调⽤实例⽅法 答案:ACD 8.下列说法错误的有() A. Java⾯向对象语⾔容许单独的过程与函数存在 B. Java⾯向对象语⾔容许单独的⽅法存在 C. Java语⾔中的⽅法属于类中的成员(member) D. Java语⾔中的⽅法必定⾪属于某⼀类(对象),调⽤⽅法与过程或函数相同 答案:ABC 9.下列说法错误的有() A.能被java.exe成功运⾏的java class⽂件必须有main()⽅法 B. J2SDK就是Java API C. Appletviewer.exe可利⽤jar选项运⾏.jar⽂件 D.能被Appletviewer成功运⾏的java class⽂件必须有main()⽅法 答案:BCD 三、判断题 1.Java程序中的起始类名称必须与存放该类的⽂件名相同。
华为JAVA编程规范试题-推荐下载
第 2 页, 共 16 页
2、下面说法或者语句不符合公司编程规范的排版要求的是:
A.逗号、分号只在后面加空格; 比较操作符, 赋值操作符"="、 "+=",算术操
作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符
的前后加空格; "!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符
C. if ( writeToFile ) { writeFileThread.interrupt(); }
D. if (a >= b && c > d) { //program code }
E. 在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局 部不加空格。给操作符留空格时不要连续留两个以上空格
文档密级:
JAVA 编程规范试题
一、判断题(每题 2 分,共 28 分)
1、if, for, do, while, case, switch, default 等语句自占一行,且 if, for, do, while, switch, case 等语句的执行语句无论多少都要加括号{}。
2、包的注释内容要求包括:简述本包的作用、详细描述本包的内容、产品模块
性。不再有用的注释不要删除,使用@deprecated 表示此注释无效。
B.避免在注释中使用缩写,特别是不常用缩写;但是,注释也是可使用缩写,
java华为试题
JAVA方面1 面向对象的特征有哪些方面封装:将对象的数据和方法相结合,通过方法将对象的数据和实现细节保护起来。
实现数据的隐藏。
继承:子类继承父类的变量和方法,实现代码的重用,具有传递性。
多态:对外一个接口,内部多种实现。
使程序就有良好的可扩展性,已与编写和维护。
2 String是最基本的数据类型吗?不是的。
ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。
为了提高效率节省空间,我们应该用StringBuffer类3 int 和 Integer 有什么区别Int 是java 的原始数据类型,Integer是java 为int 提供的封装类。
Java 为每个原始类型提供了封装类。
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。
引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。
对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。
4 String 和StringBuffer的区别String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去. String 是final类,即不能被继承.StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象它只能通过构造函数来建立,5运行时异常与一般异常有何异同?异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。
java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。
6 说出一些常用的类,包,接口,请各举5个类:ng.Objectng.Stringng.System4.java.io.file5.java.io.FileInputStream包:ng包2.java.io包3.java.swt包4.java.util包5.java.sql包接口:1.java.util.List<E>2.java.util.Map<E>3.java.util.Iterator<E>4.java.sql.CallableStatementparable<T>7 说出ArrayList,Vector, ArrayLlinkedListd的存储性能和特性ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。
华为Java上机考试题
华为Java上机考试题华为Java上机考试题Java是面向对象语言,Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。
下面yjbys店铺为大家提供的是Java上机考试题及答案,希望对大家有所帮助!1.程序实现目标:输入一个字符串,将其各个字符对应的ASCII 值加5后,输出结果。
程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。
[java] view plain?package com.xcbeyond;/*** @author xcbeyond* 2015-5-7下午10:37:43* 1.程序实现目标:输入一个字符串,将其各个字符对应的ASCII 值加5后,输出结果。
* 程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。
*/public class StringParseASCII {public static void main(String[] args) {System.out.print(stringParseASCII("abx"));}public static String stringParseASCII(String str){StringBuffer result = new StringBuffer();char tmp;for(int i = 0;itmp = (char)(str.charAt(i)+5);if(tmp > 'z') {result.append('a');}else {result.append(tmp);}}return result.toString();}}2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。
程序要求:输入:整型数组中的元素个数及各个元素。
Java编程规范试题
JAVA编程规范--试题姓名:工号:部门:成绩:一. 判断题(共15题,每题2分,直接在括号内打“√”或“×”)1、任何时候都不要使接口可以序列化。
x2、相对独立的程序块之间、变量说明之后必须加空行。
√3、当程序需要释放对象的时候,应该手工调用finalize方法以释放对象。
x4、公司的规范要求注释率是20%以上,并且必须有助于对程序的阅读理解。
x5、为了程序更加简洁,我们应该尽量使用下面的方式来赋值:a = b = 1 。
x6、每个类都需要定义构建器。
x7、类名、方法名、属性名的命名,都应该使用意义完整的英文描述。
√8、main() 方法的定义是public static void main(String args[])。
x9、常量名应该使用全大写,英文单词之间用下划线或者-分隔开。
并且,常量应该使用final static修饰。
x10、公有方法参数名可以和属性名相同,但局部变量不能和属性名相同。
√11、一两行代码就能完成的功能没有必要编写方法实现。
x12、对于模块间接口方法的参数的合法性检查,调用者和被调用者都应该对参数进行合法性检查。
x13、运行期异常使用RuntimeException的子类来表示,必须在方法声明上加throws子句。
x非运行期异常是从Exception继承而来的,不用在可能抛出异常的方法声明上加throws 子句。
x14、使用ObjectStream 的方法后,调用release() ,释放对象。
X15、减小单个方法的复杂度,使用的 if, while, for, switch 语句要在10个以内。
√二、单项选择题(共23题,每题2分)( c )1、排版时,代码缩进应该采用的方式是:(A)Tab缩进(B)2个空格缩进(C)4个空格缩进(D)8个空格缩进( c )2、下面哪条语句是不符合规范的:(A)int count = 0;int num = 0;....;//program codeif (count == num){....;}(B)long count = 0L;long num = 0L;....;//program codeif (count == num){....;}(C)float count = 0f;float num = 0f;....;//program codeif (count == num){....;}(D)以上语句都符合规范( b )3、对命名规范描述错误的是:(A)、包名单词的首字母应该大写。
华为java笔试题目(2)
华为java笔试题目(2)三、判断题1.Java程序中的起始类名称必须与存放该类的文件名相同。
( ) 答案:正确2.Unicode是用16位来表示一个字的。
( ) 答案:正确3.原生类中的数据类型均可任意转换。
( ) 答案:错误1、给定如下JAVA 程序片断: class A{ public A(){ system.out.println(“A”); } } class B extends A{ public B(){System.out.println(“B”);} public static void main(String[] args){ B b=new B();} } 上述程序将( ).(选择一项)A、不能通过编译B、通过编译,输出为: A BC、通过编译,输出为: BD、通过编译,输出为: A2、某一java程序中有如下代码:Datalnputstream din=newDataInputstream(new BufferedInputstream (new FileInputstream(“employee.dat”) )); 假设在employee.dat文件中只有如下一段字符:abcdefg。
则:System.out.println(din)在屏幕上打印().(选择一项)A、AB、BC、97D、983、给定java代码片段,如下:int i=0,j=-1; switch(i){ case 0,1:j=1; case 2:j=2; } System.out.print( j= +j); 编译运行,正确的是()。
(选择一项)A、程序编译出错B、j=1C、j=2D、j=04、在Java中,下面关于构造函数的描述正确的是()。
(选择一项)A、类必须有显式构造函数B、它的返回类型是voidC、它和类有相同的名称,但它不能带任何参数D、以上皆非5、在JAVA编程中,Swing包中的组件处理事件时,下面()是正确的。
华为JAVA编程要求规范重要试题
华为JAVA编程要求规范重要试题JAVA编程规试题一、判断题(每题2分,共28分)1、if, for, do, while, case, switch, default 等语句自占一行,且if, for,do, while, switch, case等语句的执行语句无论多少都要加括号{}。
2、包的注释容要求包括:简述本包的作用、详细描述本包的容、产品模块名称和版本、公司、生成日期等。
3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者、新版本号和当天的日期,since 表示从那个版本开始就有这个类或者接口,deprecated 表示不建议使用该类或者接口。
4、对于方法部用throw语句抛出的异常,必须在方法的注释中标明;对于所调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
6、.huawei.四级部门名称.项目名称,符合包命名规。
7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。
8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样化。
9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异常根据分类组织成继承关系。
10、switch 语句中的case 关键字要和后面的常量保持一个空格;如果有特殊的需要要在switch语句中定义case以外的标签,需要在注释中说明。
11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。
12、简单的类可以通过名字比较两个对象的类,推荐使用getClass()或者instanceof()。
13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。
JAVA面试题( 华为)(答案)
软件开发应试人员考试试题(Java)姓名:___________ 电话:___________以下信息有工作经验人员如实填写,应届毕业不填(时间从毕业参加工作算起)从事Java开发时间____月熟悉JavaScrip时间____月熟悉EXT开发时间____月熟悉PDM开发时间____月熟悉的数据库及时间(如SQLServer 3个月,可多填)___________________一、JAVA基础1、简述你所知道的JA V A修饰符及各自的使用机制?(public、abstract、final、synchronized、super…)public :允许所有客户访问protected:只能在本包内被该类的子类所使用private:只允许在本类内使用abstract:没有提供实现,需要子类提供static:与整个类相关,与单个对象无关final:你只能定义一个实体一次,以后不能改变它或继承它。
一个final修饰的类不能被子类化,一个final 修饰的方法不能被重写,一个final修饰的变量不能改变其初始值synchronized:方法获得对对象监控的访问权;如果该方法是static类型的,获得是对类本身的访问权。
super:构造器和方法,都用关键字super指向超类,但是用的方法不一样。
方法用这个关键字去执行被重载的超类中的方法。
2. String、StringBuffer与StringBuilder之间区别?别简述各自的执行效率?区别:String 类型和StringBuffer 类型的主要性能区别其实在于String 是不可变的对象, 因此在每次对String 类型进行改变的时候其实都等同于生成了一个新的String 对象,然后将指针指向新的String 对象,所以经常改变内容的字符串最好不要用String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后,JVM 的GC 就会开始工作,那速度是一定会相当慢的,执行速度:三者在执行速度方面的比较:StringBuilder > StringBuffer > String使用场景:1.如果要操作少量的数据用= String2.单线程操作字符串缓冲区下操作大量数据= StringBuilder3.多线程操作字符串缓冲区下操作大量数据= StringBuffer2、静态变量和实例变量的区别?能在静态方法中调用非静态变量吗?静态变量属于类,该类不生产对象,通过类名就可以调用静态变量。
华为java笔试题目(3)
华为java笔试题目(3)21、39.给定一个Java程序代码,如下:运行编译后,输出结果是(). (选择一项) pubilc class Test{ int count = 9; pubilc void count1(){ int count = 10; SYstem.out.println( count1 +count); } pubilc void count2(){ SYstem.out.println( count2 +count); } pubilc static void main(String args[]){ Test t =new Twst(); t.count1(); t.count2(); } }A、count1=9 count2=9B、count1=10 count2=9C、count1=10 count2=10D、count1=9 count2=1022、37.给定java代码如下:要使用这段代码能够编译成功,横线处可以填入().(选择两项) pubilc int count(char c,int i,double d){ return______; }A、c*iB、c*(int)dC、(int)c*dD、i*d23、在JAVA编程中,Java编译器会将Java程序转换为()。
(选择一项)A、字节码B、可执行代码C、机器代码D、以上所有选项都不正确24、在J2EE中,下列元素经过排序的集合类是()。
(选择一项)A、LinkedListB、StackC、HashtableD、TreeSet25、9) 分析下面的Java程序:public class yy { public static void main(String[] ards) throws Exception { try { throw new Exception(); }catch(Exception e){ System.out.println( Caught in main() } System.out.println( nothing } } 输出结果为()。
华为机试题库及答案
华为机试题库及答案华为是全球领先的信息与通信技术(ICT)解决方案提供商。
作为一家创新型企业,华为一直重视人才培养和招聘,为了筛选出最优秀的人才,华为设立了机试题库。
以下是华为机试题库的一些题目及其答案供参考。
一、Java基础1. 输出"Hello, Huawei!"的Java代码如下:```javapublic class HelloWorld {public static void main(String[] args) {System.out.println("Hello, Huawei!");}}```2. 计算1到100的和的Java代码如下:```javapublic class SumOfNumbers {public static void main(String[] args) {int sum = 0;for (int i = 1; i <= 100; i++) {sum += i;}System.out.println("Sum of numbers from 1 to 100: " + sum); }}```3. 实现斐波那契数列的Java代码如下:```javapublic class FibonacciSeries {public static void main(String[] args) {int n = 10;int first = 0;int second = 1;System.out.print("Fibonacci series of " + n + " terms: ");for (int i = 1; i <= n; i++) {System.out.print(first + " ");int next = first + second;first = second;second = next;}}}```二、数据结构和算法1. 实现冒泡排序的Java代码如下:```javapublic class BubbleSort {public static void main(String[] args) { int[] array = {5, 2, 8, 3, 1};int n = array.length;for (int i = 0; i < n - 1; i++) {for (int j = 0; j < n - 1 - i; j++) { if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}System.out.print("Sorted array: "); for (int i = 0; i < n; i++) {System.out.print(array[i] + " "); }}}```2. 实现二分查找的Java代码如下:```javapublic class BinarySearch {public static void main(String[] args) { int[] array = {1, 3, 5, 7, 9};int target = 5;int low = 0;int high = array.length - 1;while (low <= high) {int mid = (low + high) / 2;if (array[mid] == target) {System.out.println("Target found at index: " + mid); break;} else if (array[mid] < target) {low = mid + 1;} else {high = mid - 1;}}if (low > high) {System.out.println("Target not found in the array."); }}}```三、网络和操作系统1. 解释TCP和UDP的区别:TCP(传输控制协议)提供可靠的、面向连接的数据传输服务,确保数据的完整性和有序性,适用于对数据传输要求较高的场景,如文件传输、网页加载。
编程规范试题及答案
编程规范试题及答案1. 以下哪项是命名变量时应该遵循的规范?A. 使用数字开头B. 使用下划线开头C. 使用驼峰命名法D. 使用中文字符答案:C2. 在编写函数时,以下哪项不是一个好的实践?A. 函数应该有明确的输入和输出B. 函数应该避免副作用C. 函数应该尽可能长D. 函数应该只做一件事情答案:C3. 以下关于代码注释的描述中,哪项是不正确的?A. 注释应该简洁明了B. 注释应该解释代码的目的和功能C. 注释应该用来代替代码D. 注释应该避免使用行尾注释答案:C4. 在团队协作中,以下哪项不是代码审查的目的?A. 确保代码符合项目规范B. 识别潜在的错误C. 提高代码的可读性D. 减少团队成员之间的沟通答案:D5. 在版本控制系统中,以下哪项不是提交代码时应该遵循的准则?A. 提交信息应该清晰描述变更内容B. 应该避免提交未完成的代码C. 应该频繁提交以保持代码的更新D. 提交前应该进行代码审查答案:C6. 以下关于代码格式化的描述中,哪项是错误的?A. 代码应该遵循一致的缩进规则B. 代码应该避免使用过多的空格C. 代码应该遵循项目约定的样式指南D. 代码格式化是个人偏好,不需要统一答案:D7. 在编写条件语句时,以下哪项不是一个好的实践?A. 使用清晰的条件表达式B. 避免使用嵌套的条件语句C. 条件语句应该尽可能短D. 条件语句应该包含多个条件答案:D8. 在编写循环语句时,以下哪项不是一个好的实践?A. 循环应该有一个明确的终止条件B. 循环体中应该避免修改循环变量C. 循环应该尽可能长D. 循环应该避免不必要的计算答案:C9. 在处理异常时,以下哪项不是一个好的实践?A. 捕获预期的异常B. 记录异常信息C. 忽略异常D. 处理异常后恢复程序的正常流程答案:C10. 在使用日志记录时,以下哪项不是一个好的实践?A. 使用日志级别来区分信息的重要性B. 记录关键操作的执行结果C. 在日志中记录敏感信息D. 定期清理旧的日志文件答案:C。
java基础题华为Java面试题集编题
Java经典试题及答案第一,谈谈final, finally, finalize的区别。
final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。
因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载。
finally-再异常处理时提供 finally 块来执行任何清除操作.如果抛出一个异常,那么相匹配的catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。
finalize—方法名。
Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作.这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的.它是在Object 类中定义的,因此所有的类都继承了它。
子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。
finalize()方法是在垃圾收集器删除对象之前对这个对象调用的.第二,Anonymous Inner Class (匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?匿名的内部类是没有名字的内部类。
不能extends(继承)其它类,但一个内部类可以作为一个接口,由另一个内部类实现.第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
Nested Class (一般是C++的说法),Inner Class (一般是JAVA的说法)。
Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。
具体可见http: //www.frontfree。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA编程规试题一、判断题(每题2分,共28分)1、if, for, do, while, case, switch, default 等语句自占一行,且if, for,do, while, switch, case等语句的执行语句无论多少都要加括号{}。
2、包的注释容要求包括:简述本包的作用、详细描述本包的容、产品模块名称和版本、公司、生成日期等。
3、类注释部分,描述部分说明该类或者接口的功能、作用、使用方法和注意事项,每次修改后增加作者、新版本号和当天的日期,since 表示从那个版本开始就有这个类或者接口,deprecated 表示不建议使用该类或者接口。
4、对于方法部用throw语句抛出的异常,必须在方法的注释中标明;对于所调用的其他方法所抛出的异常,在注释中要求说明所有的异常;对于非RuntimeException,即throws子句声明会抛出的异常,必须在方法的注释中标明。
5、类名和接口使用完整的英文单词描述,每个英文单词的首字母使用大写、其余字母使用小写的大小写混合法。
6、.huawei.四级部门名称.项目名称,符合包命名规。
7、不能用异常来做一般流程处理的方式,不要过多地使用异常,异常的处理效率比条件分支低,而且异常的跳转流程难以预测。
8、划分类的时候,应该尽量把逻辑处理、数据和显示分离,实现类功能的多样化。
9、一个方法不应抛出太多类型的异常,如果程序中需要分类处理异常,则将异常根据分类组织成继承关系。
10、switch 语句中的 case 关键字要和后面的常量保持一个空格;如果有特殊的需要要在switch语句中定义case以外的标签,需要在注释中说明。
11、没有被覆盖的友好方法和没有子类的友好类应该定义成final。
12、简单的类可以通过名字比较两个对象的类,推荐使用 getClass()或者instanceof()。
13、不要调用 Thread 类的 resume(), suspend(),sleep(), stop() 方法。
14、判断方法是否是重载,只关注方法名、参数个数、参数类型,不关注方法返回值;二、单选题(每题2分,共36分)1、下面的选项与公司的排版规不相符的是A.如果语句已足够清晰则括号侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在Java语言中括号已是最清晰的标志了。
B.DatabaseKey servicekey = null;key = getServiceKey();currentEventsCount = getCurrentEventsCount();if (currentEventsCount > 0 ){//...program code}C.if ( writeToFile ){writeFileThread.interrupt();}D.if (a >= b && c > d){//program code}E.在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。
给操作符留空格时不要连续留两个以上空格2、下面说法或者语句不符合公司编程规的排版要求的是:A.逗号、分号只在后面加空格; 比较操作符, 赋值操作符"="、 "+=",算术操作符"+"、"%",逻辑操作符"&&"、"&",位域操作符"<<"、"^"等双目操作符的前后加空格; "!"、"~"、"++"、"--"、"&"(地址运算符)等单目操作符前后不加空格;B.a *= 2;C.x = y&z;D. key--;3、有关各种注释容,描述错误的是:A.成员变量注释容:成员变量的意义、目的、功能,可能被用到的地方。
B.公有和保护方法注释容:列出方法的一句话功能简述、功能详细描述、作者、输入参数、输出参数、返回值、违例等。
C.类和接口的注释容:类的注释主要是一句话功能简述、功能详细描述,可根据需要列出:版本号、生成日期、作者、容、功能、与其它类的关系等。
如果一个类存在Bug,请如实说明这些Bug。
D.文件注释容有:文件名、说明、描述信息、生成日期、修改历史。
E.包的注释容:简述本包的作用、详细描述本包的容、产品模块名称和版本、公司。
4、下面说确的是:A.编写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。
不再有用的注释不要删除,使用deprecated 表示此注释无效。
B.避免在注释中使用缩写,特别是不常用缩写;但是,注释也是可使用缩写,在使用缩写时或之前,应对缩写进行必要的说明。
C.在程序块的结束行下方加注释标记,以表明某程序块的结束。
D.注释应考虑程序易读及外观排版的因素,使用的语言若是中、英兼有的,根据公司国际化的趋势,建议多使用英文。
5、下面说法错误的是:A.一些复杂的代码需要注释说明。
B.顺序实现流程的说明使用1、2、3、4在每个实现步骤部分的代码前面进行注释。
C.注释尽量使用中文注释和中文标点。
方法和类描述的第一句话尽量使用简洁明了的话概括一下功能,然后加以句号。
接下来的部分可以详细描述。
D.方法的单行注释使用“//”或使用”/*…… */”。
6、下面语句或者描述不符合编程规命名要求的是:A.OrderInformation, CustomerList, LogManager, LogConfig, SmpTransaction 符合类的命名规。
B.Bean 类型的,建议命名以Bean 结尾——DataAccessBeanC.常量名使用全大写的英文描述,英文单词之间用下划线分隔开,并且使用static 修饰。
D. private List properties;7、下面的说确的是:A.非运行期异常是由外界运行环境决定异常抛出条件的异常,需要调用者明确考虑该异常出现时该如何处理方法,因此在做运行时异常体系设计时要根据错误的性质合理选择JAVA已定义的异常继承关系。
B.异常捕获后,如果不对该异常进行处理,则应该纪录日志或者ex.printStackTrace(),当然,若有特殊原因必须用注释加以说明。
C.文件名为空的时候,在方法抛出的异常:if ( null = = fileName ){throw new Exception( “exception!!!” );}D.应用程序可以捕获Error这种异常,但不要定义 Error的子类。
8、下列不符合编码规的是:A. 数据库操作、IO操作等需要使用结束close()的对象必须在try-catch-finally 的finally中close()。
B. 数组声明的时候使用 int[] index ,而不要使用 int index[] 。
C. 所有的类必须重载toString() 方法,返回该类有意义的容。
D. 自己抛出的异常必须要填写详细的描述信息。
9、下列错误使用异常的做法是()A. 在程序中使用异常处理还是使用错误返回码处理,根据是否有利于程序结构来确定,并且异常和错误码不应该混合使用,推荐使用异常。
B. 一个方法不应抛出太多类型的异常。
throws/exception子句标明的异常最好不要超过三个。
C. 异常捕获尽量不要直接 catch (Exception ex),应该把异常细分处理。
D. 程序抛出的异常本身就可说明异常的类型、抛出条件,可不填写详细的描述信息。
捕获异常后用exception.toString()取到详细信息后保存。
10、下列说法错误的是:A. 段代码各语句之间有实质性关联并且是完成同一件功能的,那么可考虑把此段代码构造成一个新的方法。
B. 源程序中关系较为紧密的代码应尽可能相邻。
C. 程序中可同时使用错误码和异常进行处理,推荐使用异常。
D. 方法参数建议不超过5个。
11、下面关于构建器的说法中不符合编程规的是()A.不要在构建器中使用非 final 方法。
B.不要在抽象类的构建器中调用抽象方法。
C.在可能的情况下,总是为类定义一个缺省的构建器。
D.工具类(Utility)可定义私有构建器。
E.不要给保护类类定义 public 构建器。
12、下面的程序片断符合JTest规的是()A.for(int i = 0; i < MAX_INDEX; i++ ){Apple apple = array[i];}B. public interface ServiceConst{int MAX_BLACK_SIZE = 100;}C.for(int i = 0; i < MAX_INDEX; i++ ){list.add(FruitFactory.getInstance().createApple());}D. String log = message + “Y”;13、下列说法错误的是()A. 尽可能的使用局部变量进行运算。
B. 不要使用静态集合,其存占用增长没有边界。
C. 一个只有abstract方法、final static 属性的类应该定义成接口。
D. 使用 while(), sleep()代替 wait(), notify()。
14、下面说法错误的是()A.属性名不能与方法名相同。
B.方法重载的时候,一定要注意方法名相同。
C.方法的参数名不要和类中的方法名相同。
D.使用 equals() 比较两个类是否相同。
15、关于说确的是:A.使用StringBuffer的时候设置初始容量,推荐设置为1024。
B.使用 StringBuffer代替StringC.在国际化相关的处理逻辑,不要使用String。
D.不要通过名字比较两个对象的类,应该使用 instanceof()E.类调用方法的最大规模建议不超过20个。
16、下列关于finalize()的描述错误的有:A.在 finalize() 方法中一定要调用 super.finalize() 方法B.在 finalize() 方法中的 finally 中调用 super.finalize() 方法;C.不要在 finalize() 方法中删除监听器(Listeners);D.可以在finalize() 方法中删除监听器(Listeners);17、下列描述中不符合编程规的有:A.不要使用空的for 、if 、while 语句;B.在 clone() 方法中应该而且必须使用 new一个父类的对象。
C.方法重载的时候,一定要注意方法名相同,避免类中使用两个非常相似的方法名;D.不要在 for 循环体中对计数器的赋值。