01 iOS笔试题总结

01 iOS笔试题总结
01 iOS笔试题总结

iOS ?面试题!

!

!

1.OC语?言的基本特点!

OC语?言是C语?言的?一个超集,只是在C的基础之上加上了?面向对象(oo)的特性;!

OC与Java语?言相同都是单继承,这?一点与C++语?言不同(多重继承);!

OC不?支持命名空间机制,取?而代之的是在类名之前添加前缀,以此来区分。!

!

2.#include与#import的区别、#import与@class的区别! (1) #include与#import的区别:#include和#import其效果相同,只是后者不会引起交叉编译,确保头?文件只会被导?入?一次。!

(2) #import与@class的区别: import会包含这个类的所有信息,包括实体变量和?方法,?而

@class只是告诉编译器,其后?面声明的名称是类的名称,?至于这些类是如何定义的,暂时

不?用考虑,后?面会再告诉你。使?用#import编译效率?高,防?止相互包含的编译错误!!

!

3.简述类??目优点和缺点,如果覆盖本类或者?父类的?方法,会出现什么问题?!

(1)优点:不需要通过增加?子类?而增加现有类的?行为(?方法),且类??目中的?方法与原始类?方法基本没有区别!

(2)缺点:?无法向类??目添加实例变量。覆盖原始类?方法后,原始类的?方法没办法调?用!

!

!

4.简述内存管理基本原则!

如果使?用alloc、copy(mutableCopy)或者retian?一个对象时,你就有义务,向它发送?一条release或者autorelease消息。其他?方法创建的对象,不需要由你来管理内存。!

!

!

5.什么是ARC技术?与GC是否相同?!

ARC是Automatic Reference Counting的简称,我们称之为?自动引?用计数,是iOS5.0之后推出的内存管理的新特性。本质上还是使?用引?用计数来管理对象,只是我们在编写代码时,不需要向对象发送release或者autorelease?方法,也不可以调?用delloc?方法,编译器会在合适的位置?自动给?用户?生成release消息(autorelease)。GC的全称是garbage collection,内存垃圾回收机制,ARC?比GC性能好!!

!

6.iOS中是否?支持垃圾回收机制!

iOS开发只?支持?手动内存管理与ARC,Mac开发?支持GC垃圾回收机制,10.8之后弃?用了GC,推荐使?用ARC。!

!

7.深、浅复制的基本概念以及他们的区别!

浅复制:只复制对象本?身,不对?里?面的属性复制!

深复制:不仅复制对象本?身,对象持有的属性对象也做复制!

8.内存中的堆区和栈区的差别!

栈区(stack)由编译器?自动分配释放,存放?方法(函数)的参数值,局部变量的值等,堆区(heap)?一般由程序员分配与释放,若程序员不释放,则内存溢出!

!

9.?用户?自定义了?一个对象,如何实现拷?贝(可变和不可变拷?贝)!

必须实现copying和mutableCopying协议,表?示返回?一个不可变和可变的对象。否则,程序将会出现异常。!

- (id)copyWithZone:(NSZone *)zone!

{!

!Person *person = [[self Class] allocWithZone:zone];!

!person ->age = self.age;!

!person ->name = https://www.360docs.net/doc/e95553537.html,;!

!return person;!

}!

- (id)mutableCopyWithZone(NSZone *)zone;!

!

10.定义属性时,什么时候?用assign、retain、copy、nonatomic!

(1)assign:普通赋值,?一般常?用于基本数据类型,常?见委托设计模式,以此来防?止循环引?用。!

(2)retain:保留计数,获得到了对象的所有权。引?用计数在原有基础上加1。!

(3)?用来复制对象,?一般字符串使?用copy,Foundation中的不可变对象使?用copy效果相当于retain, 只是引?用计数+1!

(4) nonatomic,?非原?子性访问,不加同步,多线程并发访问会提?高性能!

!

11. strong与weak,_unsafe_unretained与weak的区别! (1)strong叫强引?用,weak叫弱引?用,在ARC中,使?用strong告诉编译器帮助我们?自动插?入retain,weak是普通赋值相当于?手动管理内存的assign,!

(2)_unsafe_unretained与weak功能?一致,区别在于当指向的对象销毁后,weak会将变量置

为nil,防?止调?用野指针。!

!

!

12.ARC存在内存泄露吗!

ARC中如果内存管理不当的话,同样会存在内存泄露,例如:ARC中也会循环引?用导致内

存泄露,OC对象与CoreFoundation类之间桥接时,管理不当也会产?生内存泄露!

!

!

13.当我们释放对象时,为什么需要调?用[super dealloc]?方法?!

因为,?子类是继承?自?父类,那么?子类中有?一些实例变量(对象),是继承?子?父类的,因此,我们需要调?用?父类?方法,将?父类所拥有的实例进?行释放。!

14.?自动释放池是什么,如何?工作!

?自动释放池是NSAutorelease类的?一个实例,当向?一个对象发送autorelease消息时,该对象

会?自动?入池,待池销毁时,将会向池中所有对象发送?一条release消息,释放对象!

!

15.为什么delegate(代理)属性都是assign?而不是retain 的?!

防?止循环引?用,以?至对象?无法得到正确的释放!

!

16.iOS开发中数据持久性,有哪?几种!

plist?文件写?入、对象归档、sqlite3数据库、coredata!

!

17.什么是KVC和KVO?以及它们之间的关系是什么!

(1)KVC(键值编码)是?一种间接访问对象实例变量的机制,该机制可以不通过存取?方法就可以访问对象的实例变量!

(2)KVO(键值观察)是?一种能使得对象获取到其他对象属性变化的通知机制。!

(3)实现KVO键值观察模式,被观察的对象必须使?用KVC键值编码来修改它的实例变量,这样才能被观察者观察到。因此,KVC是KVO的基础或者说KVO的实现是建?立在KVC的基础之上的。!

!

18.简述常?见的设计模式!

单例设计、代理设计、观察者(通知)、?工?厂?方法、模版?方法、!

!

!

19.内存管理在dealloc放发中?用release?方法号还是?用

self.xxx = nil 好;!

使?用self.xxx=nil更好,因为先调?用了release?方法,?而且还将变量设置为nil,这样就更安全的释放对象,防?止野指针调?用!

!

20.线程与进程的区别和联系? !

?一般的应?用程序是单个进程,也有多进程(?谷歌浏览器),进程是个静态的容器,?里?面容纳了很多个线程,线程是?一系列?方法的线性执?行路径。!

!

21.OC语?言的优缺点!

(1)优点:类??目、动态识别、?支持C语?言、OC与C++可以混编!

(2)缺点:不?支持命名空间、不?支持运算符重载、不?支持多重继承!

!

22.代理delegate与通知Noti?cation、block的使?用区别! delegate与block?一般是?用于两个对象1对1之间的通信交互,delegate需要定义协议?方法,代理对象实现协议?方法,并且需要建?立代理关系才可以实现通信。block更加简洁,不需要定义繁琐的协议?方法,但是如果通信事件?比较多的话,建议使?用delegate。Noti?cation主要?用

于1对多情况下通信,?而且,通信对象之家不需要建?立关系!但是使?用通知,代码可读性差! !

23.控制器ViewController 的 loadView, viewDidLoad, ! viewDidUnload 分别是在什么时候调?用的?!

(1)loadView调?用:当控制器的根视图view为空,且此view被访问时则调?用!

(2)loadView调?用之后调?用viewDidLoad!

(3)iOS6.0之前,当内存警告时,先卸载视图,再调?用viewDidUnload来释放内存!

!

24.@synthesize与@dynamic的区别!

(1)@synthesize 是系统?自动?生成getter和setter属性声明!

(2)@dynamic的意思是告诉编译器,属性的获取与赋值?方法由?用户?自?己实现, 不?自动?生成。! !

25.事件响应者链的概念!

响应者链表?示?一系列的响应者对象。事件被交由第?一响应者对象处理,如果第?一响应者不处理,事件被沿着响应者链向上传递,交给下?一个响应者(next responder)。?一般来说,第?一响应者是个视图对象或者其?子类对象,当其被触摸后事件被交由它处理,如果它不处理,事件就会被传递给它的视图控制器对象(如果存在),然后是它的?父视图(superview)对象(如果存在),以此类推,直到顶层视图。接下来会沿着顶层视图(top view)到窗?口(UIWindow对象)再到程序(UIApplication对象)。如果整个过程都没有响应这个事件,该事件就被丢弃。?一般情况下,在响应者链中只要由对象处理事件,事件就停?止传递。但有时候可以在视图的响应?方法中根据?一些条件判断来决定是否需要继续传递事件。!

!

26.线程与进程的区别!

27.C语?言中static变量和static函数有什么作?用!

(1)表?示变量是静态存储变量,表?示变量存放在静态存储区!

(2)加在函数前?面的时候表?示该函数是内部连接,只在本?文件中有效,别的?文件中不能应?用该函数.!

!

28.指针题!

a) int a; // ?一个数值!

b) int *a; // ?一个指向数值的指针!

c) int **a; // ?一个指向指针的指针!

d) int a[10]; //?一个有10个指针的数组,该指针是指向?一个整型数的。!

e) int *a[10]; //?一个有10个指针的数组,该指针是指向?一个整型数的。!

f) int (*a)[10]; //?一个指向有10个整型数数组的指针!

g) int (*a)(int); //?一个指向函数的指针,该函数有?一个整型参数并返回?一个整型数。!

h) int (*a[10])(int); //?一个有10个指针的数组,该指针指向?一个函数,该函数有?一个整型参数

并返回?一个整型数。!

!

29.写?一个NSString类的实现!

+ (id)initWithCString:(const char *)nullTerminatedCString encoding: (NSStringEncoding)encoding{!

!NSString *obj;!

!obj = [self allocWithZone: NSDefaultMallocZone()];!

!obj = [obj initWIthCString: nullTerminatedCString encoding: encoding];!

!return AUTORELEASE(obj);!

}!!

30.c和obj-c如何混?用,C++和obj-c呢!

实现?文件的扩展名.m改成.mm即可!但cpp?文件必须只能?用c/c++代码,?而且cpp?文件include 的头?文件中,也不能出现obj-c的代码,因为cpp只能写C++的代码!

!

31.obj-c中有私有?方法、私有变量吗?!

(1)使?用private修饰的全局变量是私有的变量!

(2)obj-c在语法上没有设计私有的?方法,不过可以通过延展在实现?文件?里定义?方法作为私有的?方法。但不是真正意义上的私有?方法,也是可以调?用的,只是外部不可?见?而已。!

!

32.下?面关键字const有什么含意?!

const int a;

int const a;

const int *a;

int * const a; !

(1)前两个的作?用是?一样,a是?一个常整型数!

(2)第三个意味着a是?一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)!

(3)第四个意思a是?一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)!

!

33.C语?言中 extern的作?用, extern c的作?用?!

(1)extern可以置于变量或者函数前,以标?示变量或者函数的定义在别的?文件中,提?示编译器遇到此变量和函数时在其他模块中寻找其定义!

(2)C++语?言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来?生成?一个中间的函数名称,?而C语?言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要?用extern “C”进?行链接指定,这告诉编译器,请保持我的名称,不要给我?生成?用于链接的中间函数名!

!

34.obj-c是如何管理内存的?!

OC语?言使?用引?用计数来管理?一个对象的?生命周期,当对象被其他“?人”使?用的时候引?用计数+1,不使?用时-1,当此对象的引?用计数为0时,则对象被系统回收。!

!

35.什么是动态绑定(多态)?!

动态绑定是?面向对象特性之?一多态的体现,声明的?一个变量,在运?行的时候可以绑定不同的对象,?比如在?方法的参数中声明这样?一个变量UIView *view, 运?行的时候,我们可以根据不同的应?用场景给view变量传?入不同的对象,可以传递?一个UIButton对象,也可以传?入UIImageView对象。!

!

36.你是如何理解delegate!

delegate ,?又称为委托或代理,它是?一种设计模式。delegate主要?用于两个对象之间的通信交互,并且解除两个通信对象的耦合性,iOS中?大量使?用了delegate设计,主要?用于视图与使?用对象之间的通信交互。!

37.block与函数有何异同,block有何优点!

(1)block类似于C?里?面的函数指针,都可以作为参数进?行传递,?用于回调。但是block的实现可以定义在?方法中,函数则不可以。!

(2)block语法简洁,可以在?方法中定义实现,这样可以访问?方法中的局部变量,使代码更加的紧凑,结构化!!

!

38.为什么标准头?文件都有类似以下的结构?

#ifndef __INCvxWorksh

#de?ne __INCvxWorksh

#ifdef __cplusplus

extern "C" {

#endif

/*...*/

#ifdef __cplusplus

}

#endif

#endif /* __INCvxWorksh */ !

!

显然,头?文件中的编译宏“#ifndef __INCvxWorksh、#de?ne __INCvxWorksh、#endif” 的作

?用是防?止该头?文件被重复引?用。!

!

39.cocoa touch框架!

UIKit、Foundation、CoreGraphic、CoreAnimation!

(1)?音频和视频

!Core Audio

!OpenAL

!Media Library

!AV Foundation !

(2)数据管理

!Core Data

!SQLite !

(3)图形和动画

!Core Animation

!OpenGL ES

!Quartz 2D!

!Core Graphic !

(4)?用户应?用!

!Address Book

!Core Location

!Map Kit

!Store Kit !

!

40.栈结构与队列的区别?!

栈(Stack)是限定只能在表的?一端进?行插?入和删除操作的线性表。!

队列(Queue)是限定只能在表的?一端进?行插?入和在另?一端进?行删除操作的线性表。!

1.队列先进先出,栈先进后出。!

2. 对插?入和删除操作的"限定"。栈是限定只能在表的?一端进?行插?入和删除操作的线性表。队列是限定只能在表的?一端进?行插?入和在另?一端进?行删除操作的线性表。!

3.遍历数据速度不同。队列遍历数据的速度要快得多。!

!

41.OC中有?无多重继承,如何实现多重继承!

(1)没有多重继承。!

(2)cocoa中所有的类都是NSObject的?子类,多继承在这?里是?用protocl委托代理来实现的!

(3)?面向对象语?言?大部分都是单继承,如:java、c#!

(4)c++是?支持多继承的!

!

42.static全局变量与普通的区别,局部变量呢?函数呢?! (1)static全局变量与普通的全局变量有什么区别:static全局变量只初使化?一次,防?止在其他?文件单元中被引?用;

(2)static局部变量和普通局部变量有什么区别:static局部变量只被初始化?一次,下?一次依据上?一次结果值;

(3)static函数与普通函数有什么区别:static函数在内存中只有?一份,普通函数在每个被调?用中维持?一份拷?贝!

!

42. static,volatile区别,含义?!

参考:https://www.360docs.net/doc/e95553537.html,/BLOG_ARTICLE_115375.HTM!

!

43.什么是类??目与延展?!

(1)类??目:为已知的类增加新的?方法!

(2)延展:通知在本类的定义?里使?用类??目来声明私有?方法!

!

44. OC中的协议和java中的接?口区别?!

(1)协议定义的?方法,可以设置可选实现、必须实现,java中的接?口则必须全都实现!

!

!

45.在?一个对象的?方法?里?面:https://www.360docs.net/doc/e95553537.html, = “object”;和name =”object”有什么不同吗?!

前者调?用的是设置器?方法,后者是普通赋值!

!

46.单例设计模式的实现,为什么使?用单例设计!为什么使?用单例设计?!

1.单例设计是?用来限制?一个类只能创建?一个对象,那么此对象中的属性可以存储全局共享的数据,所有的类都可以访问、设置此单例对象中的属性数据!

2.如果?一个类创建的时候?非常的耗费性能,那么此类可以设置为单例节约性能,如果能满?足需求。!!47.id 类型、nil 类型是什么? id 与void * 是?一样吗?!

48.noti?cation 是同步还是异步? kvo 是同步还是异步?noti?cation 是全进程空间的通知吗?kvo 呢?!

49.常?见的object-c 的数据类型有那些, 和C 的基本数据类型有什么区别?如:NSInteger 和int !

50.objective - c 的内存管理?方式,NSAutoreleasePool 的作?用?!

51.说说OC 中的反射机制!

52.在?一个对象释放前.如果他被加到了noti?cationCenter 中.不在noti?cationcenter 中remove 这个对象可能会出现什么问题?!

53.什么是序列化或者Acrchiving,可以?用来做什么,怎样与copy 结合,原理是什么?!!

static File *instance = nil ;!!@implementation File !!//获取单例的?方法!

+ (id )shareInstance {!

@synchronized (self ) {!

if (instance == nil ) {!

instance = [[File alloc ] init ];!

}!

}!

return instance ;!

}!!//覆写allocWithZone 、copyWithZone 、retain 、release 、

autorelease ?方法,??目的是限制这个类只创建?一个对象

54.分别叙述strong weak retain release alloc 的?用法 !

55.KVO在objc中是怎么实现的?!

56.KVC和KVO有什么特性!

57.通知和协议的不同之处!

58.代理的作?用?!

代理的??目的是改变或传递控制链。允许?一个类在某些特定时刻通知到其他类,?而不需要获取到那些类的指针。可以减少框架复杂度。

另外?一点,代理可以理解为java中的回调监听机制的?一种类似。!

59.objective - c中是如何实现线程同步的?!

60.Object C中创建线程的?方法是什么?如果在主线程中执?行代码,?方法是什么?如果想延时执?行代码、?方法?又是什么?!

60.!

!

!

!

!

!

iPhone UI笔试!

!

!

1.层CALayer和UIView的区别是什么!

两者最?大的区别是,图层不会直接渲染到屏幕上,UIView是iOS系统中界?面元素的基础,所有的界?面元素都是继承?自它。它本?身完全是由CoreAnimation来实现的。它真正的绘图部分,是由?一个CALayer类来管理。UIView本?身更像是?一个CALayer的管理器。?一个UIView上可以有n个CALayer,每个layer显?示?一种东?西,增强UIView的展现能?力。!

!

2.什么是GCD!

GCD是Apple开发的?一个多核编程的较新的解决?方法。在Mac OS X 10.6雪豹中?首次推出,并在最近引?入到了iOS4.0。GCD是?一个替代诸如NSThread等技术的很?高效和强?大的技术。GCD完全可以处理诸如数据锁定和资源泄漏等复杂的异步编程问题。!

!

3.TCP/UDP区别联系!

(1)TCP的全称为传输控制协议。这种协议可以提供?面向连接的、可靠的、点到点的通信。!

(2)UDP的全称为?用户数据报协议,它可以提供?非连接的不可靠的点到多点的通信。!

(3)?用TCP还是UDP,那要看你的程序注重哪?一个?方?面?可靠还是快速?!

!

4.socket连接和http连接的区别!

(1)http连接:http连接就是所谓的短连接,即客户端向服务器端发送?一次请求,服务器端响应后连接即会断掉;!

(2) socket连接:socket连接就是所谓的?长连接,理论上客户端和服务器端?一旦建?立起连接将不会主动断掉!

!

5.什么是TCP连接的三次握?手!

(1)第?一次握?手:客户端发送syn包(syn=j)到服务器,并进?入SYN_SEND状态,等待服务器确认;

(2)第?二次握?手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时?自?己也发送?一个SYN包(syn=k),即SYN+ACK包,此时服务器进?入SYN_RECV状态;

(3)第三次握?手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进?入ESTABLISHED状态,完成三次握?手。!

!

!

6.frame与bounds的区别!

(1) Frame指的是:该view在?父view坐标系统中的位置和?大?小(参照点是?父视图的坐标系统)!

(2)Bounds指的是:该view在本?身坐标系统中的位置和?大?小(参照点是本?身的坐标系统)! !

7.如何理解MVC设计模式!

MVC是?一种架构设计,M表?示数据模型、V表?示视图、C表?示控制器。!

(1)数据模型:负责存储、定义、操作数据!

(2)视图:?用来展?示数据给?用户,和?用户进?行操作交互!

(3)控制器是M与V的协调者,控制器获取数据,将数据交给视图去展?示!

!

8.控制器的loadView?方法是什么时候调?用的,viewWillApear什么时候调?用的!

(1)loadView调?用:当控制器的根视图view为空,且此view被访问时则调?用!

(2)viewWillApear:当控制器根视图view被添加到?父视图上时调?用!

!

9.控制器的xib是怎么加载的!

当UIViewController的loadView被调?用时,在此?方法中,通过NSBundle加载xib,先通过控制器的类名作为xib的?文件名加载此xib?文件。如果找到此xib?文件,则加载为view对象作为控制器的根视图,如果没有xib?文件,则通过alloc创建?一个view对象作为根视图。!

!

10.内存不?足,系统会发出警告,此时控制器应该如何处理!内存不?足时,系统会调?用控制器的 didReceiveMemoryWarning ?方法通知控制器内存不?足。iOS6.0与6.0之前的处理?方式不?一样。!

(1)6.0之前,调?用 didReceiveMemoryWarning后,将self.view设置为nil,并且再调?用viewDidUnload?方法,在此?方法中我们应该释放?子视图!!

(2)6.0之后,调?用didReceiveMemoryWarning后,不再调?用viewDidUnload?方法,则应该在didReceiveMemoryWarning?方法中?手动将self.view=nil,并且释放?子视图!!

!

11.如何监听View的触摸事件,事件是如何传递的、视图的响应者链是什么!

(1)覆写View类的touchBegin、touchMove、touchEnd系列?方法监听视图的触摸。!

(2)事件传递:当触摸?一个视图时,?首先系统会捕捉此事件,并为此事件创建?一个UIEvent对象,将此对象加?入当前应?用程序的事件队列中,然后由UIApplication对象从队列中,?一个?一

个取出来进?行分发,?首先分发给UIWindow对象,然后由UIWindow对象分发给触摸的视图对象,也就是第?一响应者对象。!

(3)响应者链:事件被交由第?一响应者对象处理,如果第?一响应者不处理,事件被沿着响应者链向上传递,交给下?一个响应者(next responder)。?一般来说,第?一响应者是个视图对象或者其?子类对象,当其被触摸后事件被交由它处理,如果它不处理,事件就会被传递给它的视图控制器对象(如果存在),然后是它的?父视图(superview)对象(如果存在),以此类推,直到顶层视图。接下来会沿着顶层视图(top view)到窗?口(UIWindow对象)再到程序(UIApplication对象)。如果整个过程都没有响应这个事件,该事件就被丢弃。?一般情况下,在响应者链中只要由对象处理事件,事件就停?止传递。但有时候可以在视图的响应?方法中根据?一些条件判断来决定是否需要继续传递事件。!

!

!

12. iOS中对象之间有哪些通信?方式!

代理delegate、block、通知、KVO!

!

13.block在内存管理上的特点、需要注意循环引?用,如何解决循环引?用!

(1)block块中使?用了局部对象,则会将此对象retain,引?用了当前对象的属性或者?方法,则会将当前对象retain!

(2)解决循环引?用:将当前对象赋给?一个局部变量,并且使?用__block关键字修饰该局部变量,使?用该变量访问当前对象的属性和?方法!

!

Cup *cup = [[Cup alloc] init];

@try {

//有可能出错的代码,例如数组越界

[cup fill];

} @catch (NSException *exception) {

//出错后执?行的代码,没出错不执?行

NSLog(@"main: Caught %@: %@", [exception name], [exception reason]);

} @finally {

[cup release];

}

15.OC中有线程池(线程队列)吗,NSOperationQueue是如何管理线程的。!

(1)NSOperationQueue是OC中的线程池,线程池中可以存放多个线程!

(2)NSOperationQueue可以管理线程的并发数,还可以管理线程之间的优先级!

!

16.timer的间隔周期准吗?为什么?怎样实现?一个精准的timer?!

定时器time?一般都是准确的,但是当主线程有些时候难免会出现堵塞情况,这样就有可能导致定时器time会延迟从?而不准确。我们可以开?一个多线程,在此多线程上运?行定时器,这样多线程只运?行定时器,不会因堵塞?而导致误差。!

!

17.Http协议的特点,GET请求与POST请求的区别, 什么是https协议!

(1)http协议是短链接,都是客户端主动发送请求,服务器做出响应,服务器响应之后,链接则断开。GET请求没有请求体,POST含有请求体,请求参数可以放?入请求体中,所以POST可以提交?大量的数据给服务器。!

(2)什么是HTTPS: HTTPS(Secure Hypertext Transfer Protocol)安全超?文本传输协议它是?一个安全通信通道,它基于HTTP开发,?用于在客户计算机和服务器之间交换信息。它使?用安全套接字层(SSL)进?行信息交换,简单来说它是HTTP的安全版!

!

18.xml数据的解析?方式,各有什么不同, json解析有哪些框架!

(1)xml数据解析有两种解析?方式:DOM解析与SAX解析!

(2)DOM解析必须先完成DOM树的构造,在处理规模较?大的XML?文档时就很耗内存,占?用资源较多!

(3)与DOM不同的是,它是?用事件驱动模型,解析XMl?文档时每遇到?一个开始或者结束标签、或者属性、或者?一条指令时,程序就产?生?一个事件来进?行相应的处理,因此,SAX相对于DOM来说更适合操作?大的XML?文档!

(4)json解析现在性能?比较好的主要是第三?方的JSONKIT和iOS?自带的json解析类,?自带的json解析性能是最?高的,但是只能是iOS5之后才可以使?用!

!

19.?用过哪些开源??网络框架,各有什么特点!

(1)ASIHTTPRequest!

!优点:出来?比较早、功能强?大、?文档丰富(??目前很多应?用还在使?用)!

!缺点:已经停?止更新、新特性少、厚重且对ios5以上?支持不够完善。!

(2)AFNetWorking!

!优点:?支持?比较新的特性、简单易?用!

!缺点:?文档数??目?一般、功能少、忽略了?一些扩展功能(如:没有同步请求)!

(3)MKNetworkKit(建议使?用)!

!优点:?支持ARC、?一个印度?大卡写的。有 ASIHTTPRequest的功能,AFNetWorking 的轻便!

!缺点:?文档数??目最少(?几乎没有)!

!

20.iOS中有哪些数据持久化的?方式,各有什么特点,iOS平台怎么做数据的持久化?CoreData和sqlite有?无必然联系?CoreData是?一个关系型数据库吗?!

(1)主要有四种持久化?方式:属性列表、对象归档、SQLite数据库、CoreData!

(2)CoreData不是?一个数据库,不过可以使?用SQLite数据库来保持数据,也可以使?用其他的?方式来存储数据,例如:XML!!

(3)属性列表、对象归档适合?小数据量存储和查询操作!

(4)SQLite、CoreData适合?大数据量存储和查询操作!

!

21.iPhone5如何适配!

(1)添加启动图?片, Default-568h@2x.png 分辨率640 * 1136 pixels!

(2)在编码时,尽量不要写死480x320的尺?寸,使?用 UIScreen获取硬件的物理尺?寸!

(3)通过设置 autosizing 来适应在?父视图中的frame!

!

22.iOS中如何捕捉异常!

@try{}!

@catch{}!

!

23.?用过单元测试吗!

iOS?自带了?一个单元测试框架 OCUnit,但??目前最好?用的测试框架应该是 GHUnit!

!

24.OC有多继承吗,有什么替代?方案!

OC语?言没有多继承,可以通过实现协议替代。OC是单继承,所有的类全都继承于NSObject。?大部分?面向对象语?言都是单继承,C++是多继承!

!

25.苹果APP的上架流程、什么情况下会被打回!

(1)访问私有API!

(2)APP有严重的BUG!

(3)给苹果审核的测试账号?无法登陆,或者境外?无法访问国内服务器!

(4)APP描述中带“Beta”字样,或是其他表明APP还未开发完成的信息!

(5)APP加载时间过?长,iOS APP的最?长启动时间不得超过15秒!

(6)给出外部购买链接!

(7)APP描述中提到了iOS之外的其他?支持平台!

......!

!

26.tableView是如何复?用的!

如果屏幕上能显?示10个单元格,则tableView只会创建11个单元格,也就是n+1,当滑到第12个单元格时就会复?用第1个单元格对象。tableView中有个单元格池的这么?一个概念,tableView调?用协议?方法获取单元格时,先从池?子中查找是否有可复?用的单元格,如果有则复?用,如果没有则创建?一个单元格对象!

!

27.如何优化tableView的滑动速度!

(1)复?用单元格!

(2)使?用不透明的视图,单元格中尽量少使?用动画!

(3)图?片加载使?用异步加载,并且设置图?片加载的并发数!

(4)滑动时不加载图?片,停?止滑动开始加载!

(5)?文字、图?片可以直接drawInRect绘制!

(6)如?非必要,减少 reloadData 全部 cell,只 reloadRowsAtIndexPaths!

(7)如果 cell 是动态?行?高,计算出?高度后缓存!

(8)cell ?高度固定的话直接?用 cell.rowHeight 设置?高度!

!

28.ASI??网络框架有哪些功能!

(1)ASI是款极其强劲的HTTP访问开源框架。!

(2)功能:异步请求、队列请求、GZIP压缩、缓存、断点续传、进度跟踪、上传?文件、HTTP认证!

!

29.了解Socket的通信?方式吗!

Socket的通信是通过TCP/IP协议,实现客户端与服务器端之间的通信?方式。客户端通过3次握?手与服务器建?立可靠的连接,然后进?行数据传输。!

!

!

30.objective-c中对象之间是如何通信(交互)的?!

对象之间的通信可以通过代理delegate、block、通知、KVO!

!

31.如何将产品进?行多语?言发布,做国际化开发!

(1)新建String File?文件,命名为 Localizable.strings, 往?里?面添加你想要的语?言?支持!

(2)在不同语?言的 Localizable.strings?文件中添加对应的?文本!

(3)XIB?文件国际化!

(4)程序名称国际化!

参考:https://www.360docs.net/doc/e95553537.html,/yunhuaikong/item/d8e8e2e4be13a8088c3ea829!

!

!

32.控制器loadView, viewDidLoad, viewDidUnload、didReceiveMemoryWarning 分别是在什么时候调?用的!

(1)loadView: 根视图view为空时,且view被访问时调?用!

(2)viewDidLoad: loadView调?用完之后调?用!

(3)viewDidUnload: iOS6.0之前,内存警告时调?用!

(4)didReceiveMemoryWarning:内存警告时调?用!

!

33.内存警告,iOS6与iOS6之前的版本处理?方式的区别!

(1)iOS6之前是在 viewDidUnload中,释放?子视图!

(2)iOS6之后在 didReceiveMemoryWarning ?方法中释放?子视图!

!

34.谈谈对Runloop的理解!

Run loops是线程相关的的基础框架的?一部分。?一个 run loop 就是?一个事件处理的循环,?用来不停的调度?工作以及处理输?入事件。使?用 run loop 的??目的是让你的线程在有?工作的时候忙

于?工作,?而没?工作的时候处于休眠状态!

!

35.如何调?用drawRect?方法与layoutSubView?方法,这两个?方法的作?用?!

(1)通过setNeedsLayout?方法异步调?用layoutSubView?方法!

(2)通过setNeedsDisplay?方法异步调?用drawRect?方法!

(3)drawRect?方法?用于绘图,layoutSubView?方法?用于布局?子视图!

!

36.UIView与UIViewController的关系?!

每个控制器都有?一个根视图,控制器UIViewController?用来管理此视图的加载与显?示的。! !

37.iOS中都有哪些?手势!

iOS提供了很多?手势对象?用于识别不同的?手势操作,?手势:轻击、捏合、平移、轻扫、旋转、?长按!

38.代理、通知和KVO的区别以及它们的优缺点!

代理是?一种回调机制,且是?一对?一的关系,?而通知是?一对多的关系,?一个中?心对象向所有的观察者提供变更通知(KVO是被观察者向观察者直接发送通知,这是通知和KVO的区别)。!

!

39.http和socket区别!

http是客户端?用http协议进?行请求,发送请求时候需要封装http请求头,并绑定请求的数据,服务器?一般有web服务器配合(当然也?非绝对)。 http请求?方式为客户端主动发起请求,服务器才能给响应,?一次请求完毕后则断开连接,以节省资源。服务器不能主动给客户端响应(除?非采取http?长连接技术)。iphone主要使?用类是NSURLConnection。!

scoket是客户端跟服务器直接使?用socket“套接字”进?行连接,并没有规定连接后断开,所以客户端和服务器可以保持连接通道,双?方都可以主动发送数据。?一般在游戏开发或股票开发

这种要求即时性很强并且保持发送数据量?比较?大的场合使?用。主要使?用类是CFSocketRef。! !

40.?二维码扫描?用过哪些类库,这些类库有什么特点?!

?二维码?生成:QRGener!

?二维码扫描:zxing、ZBarSDK!

?二维码扫描,推荐使?用zxing, 因为zxing可以?自定义扫描区域,?而且是开源的,但是这个库集成起来?比较复杂!

!

41.iOS5有哪些新特性?!

(1)iCloud、定制UI、Storyboard、ARC、CoreImage滤镜、新增JSON解析类!

!

42.iOS6有哪些新特性?!

(1)UIRefreshControl?水滴效果下拉刷新!

(2)UICollectionView控件的使?用!

(3)SLComposeViewController新浪微博控件!

(4)PassKit中Passbook!

(5)AutoLayout?自动布局!

!

43.iOS7有哪些新的特性?!

系统:!

(1)全新的UI设计与交互!

(2)Control Center控制中?心!

(3)全新的多任务Multitasking!

(4)AirDrop共享?文件!

(5)全新的Safari浏览器交互体验!

SDK:!

(1)动态UIKit, 新增了UIDynamicItem委托,?用来为UIView制定动态?行为!

(2)新增游戏引擎Sprite Kit Framework框架,类似于cocos2d!

参考:https://www.360docs.net/doc/e95553537.html,/ios7-sdk.html!

!

!

!

!

!

44.Storyboard?用过吗,有什么特点?!

(1)Storyboard是iOS5新增的特性,是对xib的升级版本,引?入了?一个容器?用于管理多个xib?文件,和他们之间的跳转交互!

(2)优点:不?用在为每个控制器创建xib?文件了!

可以使?用静态cell,!当cell固定且不多时,使?用起来?比较?方便!

(3)缺点:Storyboard单个?文件,不利于团队协作开发!

!

44.?用过ARC吗?ARC有什么特点!

(1)ARC是编译器特性,iOS5.0新添加的特性,使?用ARC,开发者不需要再retain、release、autorelease,因为编译器会在合适的地?方?自动插?入retain,release!

(2)特点:ARC不会因少release?而导致内存泄露,过渡release导致程序崩溃!

ARC可以产?生更简洁的代码和更健壮的应?用!

!

!

45. 如何打包静态库?!

新建?一个Framework&Library的项??目,编译的时候,会将项??目中的代码?文件打包成?一个.a的静态库?文件。!

!

!

46.APP发布的上架流程?!

(1)在苹果??网站的开发者中?心,新建?一个APP,填写此APP相关的?一些描述信息!

(2)下载安装发布证书!

(3)选择发布证书,使?用Archive编译发布包!

(4)使?用xcode提交发布包!

!

47.SVN、Git协作开发,怎么防?止代码?文件冲突?!

(1)防?止代码冲突:不要多?人同时修改同?一个?文件。例如A、B都修改同?一个?文件,先让A修

改,然后提交到服务器,然后B更新下来,再进?行修改。!

(2)服务器上的项??目?文件 xcodeproj, 仅让?一个?人管理提交,其他?人只更新。防?止此?文件产?生冲突。!

!

49.断点续传是如何实现的?!

将下载的?文件分成?几个部分,通过http协议的请求头,设置每?一部分下载的偏移量,然后通过多线程下载每?一部分,下载完成之后,组合为最终的完整?文件!

!

!

51. 解释线程同步,有?几种?方法!

1.原?子操作 - OSAtomic系列函数!

2.锁 - NSLock系列对象!

3.事件 - NSCondtion!

参考:https://www.360docs.net/doc/e95553537.html,/lifengzhong/article/details/7487505!

!

52.asihttprequest/asysocket?用什么实现的!

底层对CFNetwork框架进?行了封装,CFNetwork框架是C语?言的API接?口!

!

53.何时?用通知(?自?己定义的)/代理!

当两个对象需要通信交互时,我们可以使?用通知或者代理实现两个对象之间的通信交互,并且解耦合。!

1.如果两个对象可以建?立代理关系,iOS优先采?用此种?方式,如果没办法建?立代理关系,则使?用通知。!

2.对象的通信?方式,代理是1对1的,通知是1对多的,如果是1对多的?方式,我们也只能使?用通知!

!

54.解释消息机制(objc中对象如何交互)!

!

55.block中 __block的作?用!

1.__block修饰的局部变量,在block块中是可以修改的!

2.__block修饰的局部对象,在block块中如果引?用了此对象,此对象不会retain!

!

56.使?用代理的好处 为啥要使?用代理 与通知的区别!

同53题,为什么不是?用通知,对象之间的通信,通知的?方式对象之间不需要建?立,在代码层?面,看不出对象与那个对象通信交互,不易代码阅读!

!

57.unsafe_unretained 与 weak的作?用与区别!

unsafe_unretained与weak都是弱引?用,功能是?一样的,不对对象做retain操作,但是weak

修饰的对象,当此对象销毁后,会?自动将指向这个对象的指针设置为nil!

!

58.block的作?用,不?用block可以?用什么实现!

block的作?用实现两个对象之间的通信交互,并解耦合,除了使?用block,还可以使?用代理、通知!

!

59.NSString的set?方法为什么使?用copy!

为了防?止可变字符串被修改!

!

60.Objective-C类的initialize和init?方法有什么区别!

initialize 当类初始化的时候调?用!

init 当对象初始化的时候调?用!

initialize 只会调?用?一次,因为类只有?一个初始化?一次,init会调?用多次!

!

!从错误来看,是标?示符iconv在静态库libavcodec.a中没有定义,解决?方式检查静态库是否有问题。!

!

!

设计模式总结!

!

1.单例设计!

2.代理设计!

3.?工?厂?方法!

4.观察者模式(通知、KVO)!

5.命令模式(按钮的监听)!

6.适配模式!

7.模版?方法!

!

!

!

!

?面谈的技术问题!

!

1.IOS7的相关问题(问的最多)不会问得太深!

(1).谈谈你对IOS7的了解(新特新)!

(2).如何适配IOS7,有的时候会关注细节,会问?一些sdk?方?面的变化!

!

2.数据库?方?面的问题!

(1)CoreData 和 SQLite3的?比较!

(2)CoreDada 的详细使?用!

(3)怎样做数据库的优化(使?用过哪些优化?方式)!

(4)数据库中怎样优化句柄!

(5)在两个表中插?入数据失败时怎样做数据回滚!

(6)使?用SQLite3发现的问题!

!

3.http?方?面!

(1) 问你项??目中使?用了?几种协议(?非常频繁)!

(2) 以什么?方式请求??网路,实现原理(ASI、AFNetworking实现机制和异同·优势)提到就会问!

(3) 分析http 协议的请求头,(使?用的压缩语句)请求?方式,cookie 的作?用!

(4)如何修改http的请求的数据格式!

(5)http的数据压缩!

!

4.下拉刷新内部如何实现的?!

5.数据库?用过SQLite与CoreData,他们之间的?比较!

!

图?文混排?用过吗,知道怎么实现的吗!

path效果的散开菜单,知道怎么实现的吗?!

瀑布流效果?用过吗,怎么实现的?!

写?一个单例(Singleton)类,?大部分情况都会考!

!

6.简述项??目:技术要点,功能模块实现,项??目中的难点如何

解决?!

!

7.说所你了解以及?日常使?用的版本控制系统,以及它们的优

缺点!

!

8.你了解的设计模式!

!

9.做项??目的时候遇到了什么样的问题,怎么解决的!

!

10.开发中遇到问题怎么处理?!

!

!

!

!

!

!

?高级开发?工程师!

!

!

1.你使?用过Objective-C的运?行时编程(Runtime Programming)么?如果使?用过,你?用它做了什么?你还能记得你所使?用的相关的头?文件或者某些?方法的名称吗?!

!

2.你实现过多线程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是?用什么样的策略来实现的?!

!

3.Core开头的系列的内容。是否使?用过CoreAnimation和CoreGraphics。UI框架和CA,CG 框架的联系是什么?分别?用CA和CG做过些什么动画或者图像上的内容。(有需要的话还可

以涉及Quartz的?一些内容)!

!

4.是否使?用过CoreText或者CoreImage等?如果使?用过,请谈谈你使?用CoreText或者CoreImage的体验。!

!

5.NSNoti?cation和KVO的区别和?用法是什么?什么时候应该使?用通知,什么时候应该使?用KVO,它们的实现上有什么区别吗?如果?用protocol和delegate(或者delegate的Array)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然protocol和delegate这种东?西?面试已经?面烂了…)!

!

6.你?用过NSOperationQueue么?如果?用过或者了解的话,你为什么要使?用NSOperationQueue,实现了什么?请描述它和GCD的区别和类似的地?方(提?示:可以从两

者的实现机制和适?用范围来描述)。!

!

7.既然提到GCD,那么问?一下在使?用GCD以及block时要注意些什么?它们两是?一回事?儿

么?block在ARC中和传统的MRC中的?行为和?用法有没有什么区别,需要注意些什么?! !

8.您是否做过异步的??网络处理和通讯?方?面的?工作?如果有,能具体介绍?一些实现策略么?! !

9.对于Objective-C,你认为它最?大的优点和最?大的不?足是什么?对于不?足之处,现在有没

有可?用的?方法绕过这些不?足来实现需求。如果可以的话,你有没有考虑或者实践过重新实

现OC的?一些功能,如果有,具体会如何做?!

!

10.你实现过?一个框架或者库以供别?人使?用么?如果有,请谈?一谈构建框架或者库时候的经

验;如果没有,请设想和设计框架的public的API,并指出?大概需要如何做、需要注意?一些什么?方?面,来使别?人容易地使?用你的框架。!

!

!

!

!

!

!

!

WEB前端面笔试题总结

1. 如何显示/隐藏一个DOM元素? 更改元素的css style,设为display: none。此外还可以将visibility设为hidden,透明度设为0,或长、宽设为0。 2. 一个定宽网页在浏览器(IE6,IE7,Firefox,IE5)中横向居中对齐的布局, 请写出主要的HTML标签及CSS。 1. 2. 3. 4. 5.居中 6. 11. 12. 13.

居中
14.

15. 3. CSS中margin和padding的区别 margin是外边距,属于元素之外,相邻元素的margin可以融合。 padding是内边距,在元素之内,相邻元素的padding不可融合。 4. JavaScript中如何检测一个变量是一个String类型?请写出函数实现 function(obj) { returntypeof(obj) == ”string”; } 5. 网页中实现一个计算当年还剩多少时间的倒数计时程序,要求网页上实时动态 显示“××年还剩××天××时××分××秒” 这个看我论坛右上角的就知道了… 6. 如何控制网页在网络传输过程中的数据量 题目貌似有问题,应该是减少数据量吧。 最显著的方法是启用GZIP压缩。此外保持好的编码习惯,避免重复和css、 JavaScript代码,多余的HTML标签和属性。 7. 补充代码,是鼠标单击后Button1到Button2的后面

var parent =this.parentNode; parent.removeChild(this); parent.appendChild(this); 8. Linux中,将a、b打包为back.tar,命令是() 不知道=。= 9. Flash、Ajax各自的优缺点,在使用中如何取舍? Flash的缺点是需要客户端安装Flash插件,比较大,且更改了默认的HTML页面行为;但可以方便地实现很多特效及动画,且具有较高权限。 Ajax的缺点是编程较为复杂,需要服务器端的支持,能实现的效果只能是DOM API 提供的,权限很低,较难跨域;但可以显著加快页面的载入速度和用户体验。 此外,二者都不能被搜索引擎索引(Google已支持Flash文本的索引),不利于SEO。 建议:重要和关键部分直接用HTML,交互部分可以使用Ajax,复杂的动画可采用Flash。 百度2010 1、JS主要数据类型?5分

华为笔试题大全史上最齐全

[华为笔试]2006年华为研发类笔试编程题(2006年10月29日晚,成都电子科技大学考试题目) 题目:网球中心共有100个网球场,每个单位可以来申请1到100的场地,申请的场地编号必须是连续的,如果场地已经被其他单位占用,就不能再次使用,而且单位在使用完场地后必须归还。请设计一个完整的系统(c语言)。(限时5分钟)Tennis.h struct TennisGround { int num; char *agentName; }; typedef struct TennisGround TG; void mallocTG(TG *total); void freeTG(TG *total);

Tennis.c #include #include #include #include #include "Tennis.h" void mallocTG(TG *total) { int size, start,count = 0; char *agentName = (char*)malloc(sizeof(char)*10); printf("Please input your agentName:");

scanf("%s", agentName); printf("Please input the size of the TennisGround:"); scanf("%d", &size); printf("Please input the TennisGround number you want to start:"); scanf("%d", &start); if((total+start)->agentName != " ") { printf("malloc failed!\n"); exit(-1); } else { while(count < size) { (total+start+count)->agentName = agentName; count++; } } }

Java集合类知识点总结

Java集合类 Java集合类 (1) 1.Map (3) 1.1.HashMap (3) 1.1.1.底层实现 (3) 1.1.2.特点 (3) 1.1.3.源码分析 (4) 1.1.4.多线程可能出现的问题 (5) 1.2.ConcurrentHashMap (6) 1.2.1.底层实现 (6) 1.2.2.源码分析 (7) 1.3.HashTable (9) 1.3.1.HashTable是线程安全的,因为所有方法上都加了synchronized关键 字。9 1.3.2.HashTable的key和value都不可以为null。 (9) 1.3.3.扩容时,capacity=2*capacity+1 (9) 1.3.4.数组默认大小为11 (9) 1.3.5.查找下标时,没有使用hash&length-1,而是直接进行计算的 (9) 1.4.TreeMap (9) 1.4.1.底层实现为红黑树 (9) 1.4. 2.TreeMap是一个有序的key-value集合,基于红黑树实现。该映射根据 其键的自然顺序进行排序,或者根据创建时提供的Comparator进行排序 (10) 1.4.3.接口实现 (10) 1.4.4.Entry (11) 1.5.LinkedHashMap (11) 1.5.1.底层是数组+链表+红黑树+双向链表 (11) 1.5.2.维护链表顺序和访问顺序 (11) 1.5.3.LinkedHashMap 可以通过构造参数 accessOrder 来指定双向链表是否在 元素被访问后改变其在双向链表中的位置。 (11) 1.5.4.当accessOrder为true时,get方法和put方法都会调用recordAccess 方法使得最近使用的Entry移到双向链表的末尾;当accessOrder为默认值 false时,recordAccess方法什么也不会做。 (11) 1.5.5.LRU实现 (11) 2.Collection (11) 2.1.List (12) 2.1.1.ArrayList (12) 2.1.2.LinkedList (13) 2.1.3.CopyOnWriteArrayList (13) 2.2.Set (14) 2.2.1.HashSet (14)

JAVA笔试题答案在最后

测试题(笔试)Java 面向对象重庆足下科技有限公司

不定项选择题(40题,每题2.5分,总分100分,测试时间2小时) 1) 当试图编译并运行下面程序时会出现什么结果()(单选) class A{ public int getNumber(int a){ return a+1; } } class B extends A{ public int getNumber(int a, char c){ return a+2; } public static void main(String[] args){ B b=new B(); System.out.println(b.getNumber(0)); } } a) 编译错误 b) 运行错误 c) 1 d) 2 2) 当编译并运行下面程序时会出现什么结果( )(单选) public class MyAr{ public static void main(String argv[]){ int[] i = new int[5]; System.out.println(i[5]); } } a) 编译错误 b) 运行错误 c) 输出0 d) 输出“null” 3) final、finally、finalize三个关键字的区别是()(多选) a) final是修饰符(关键字)可以修饰类、方法、变量 b) finally在异常处理的时候使用,提供finally块来执行任何清除操作 c) finalize是方法名,在垃圾收入集器将对象从内存中清除出去之前做 必要的清理工作 d) finally和finalize一样都是用异常处理的方法

web前端开发面试题汇总模板

web前端开发面试题汇总 1天前653浏览2评论 前端面试题汇总 HTML&CSS 1. 常用那几种浏览器测试?有哪些内核(Layout Engine)? (Q1) 浏览器:IE,Chrome,FireFox,Safari,Opera。 (Q2) 内核:Trident,Gecko,Presto,Webkit。 2. 说下行内元素和块级元素的区别?行内块元素的兼容性使用? (IE8 以下) 行内元素:会在水平方向排列,不能包含块级元素,设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效。 块级元素:各占据一行,垂直方向排列。从新行开始结束接着一个断行。 兼容性:display:inline-block;display:inline;zoom:1; 3. 清除浮动有哪些方式?比较好的方式是哪一种? (1)父级div定义height。 (2)结尾处加空div标签clear:both。 (3)父级div定义伪类:after和zoom。 (4)父级div定义overflow:hidden。 (5)父级div定义overflow:auto。 (6)父级div也浮动,需要定义宽度。 (7)父级div定义display:table。

(8)结尾处加br标签clear:both。 总结:比较好的是第3种方式,简洁方便。 4. box-sizing常用的属性有哪些?分别有什么作用? 常用的属性:box-sizing: content-box border-box inherit; 作用:content-box:宽度和高度分别应用到元素的内容框。在宽度和高度之外绘制元素的内边距和边框(元素默认效果)。 border-box:元素指定的任何内边距和边框都将在已设定的宽度和高度内进行绘制。通过从已设定的宽度和高度分别减去边框和内边距才能得到内容的宽度和高度。 5. Doctype作用?标准模式与兼容模式各有什么区别? (Q1) 告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。 (Q2) 标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 6. HTML5 为什么只需要写< Doctype html>? HTML5不基于SGML,因此不需要对DTD进行引用;但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。 7. 页面导入样式时,使用link和@import有什么区别? (1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS; (2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面

华为面试题汇总与答案_1

面试题参考 1.js动态增加行 function addRow(tableId,trId){ var tableObj = document.getElementById(tableId); var trObj = document.getElementById(trId); //var trIndex = trObj.rowIndex+1; var rows = tableObj.rows.length; var cell = ""; var tr = tableObj.insertRow(rows); for(i=0;i 二、SQL书写的影响 1、同一功能同一性能不同写法SQL的影响。 2 .WHERE后面的条件顺序影响 三、SQL语句索引的利用 1、不要有多余的数据。 3.项目权限控制是如何实现 一般实现为:首先建立职责表,用户表,权限表,然后是职责与用户的关联表,职责与权限的关联表。依据每一个功能点建立权限数据,当新加入职责信息时将一条或多条权限数据与对应的职责关联起来。在用户信息中就可将职责数据与用户关联,达到权限管理的目的。页面通过用户的职责权限信息进行操作监控。 4.多次提交ajax后,返回值是否按提交的顺序返回? Ajax调用大部分为JS,JS的运行速度较快,有可能造成请求未完成,后面的JS代码继续运行,而返回结果的顺序不一定按请求顺序返回。取决于后台处理速度 5.数据库设计心得,如何建索引

前端笔试面试题目总结

前端笔试面试题目总结

希望对一起奋战找工作的战友们有帮助 列举3个以上http请求头,响应头有哪些字段,列举5个以上;http的响应状态消息有哪些值,列举4个以上说明 解析ajax的意思,同步和异步的区别,异步请求有哪些状态,如何创立一个异步请求,异步请求完成过程,说下IE与其它浏览器的差异 如何实现跨域请求,AJAX跨域的解决办法 html有哪些常见标签,大概多少个,如何分类的,html5有哪些新增标签 前端优化提高客户端响应速度的方法,至少10条以上 平常见哪些开发工具,用什么插件,了解哪些类库,是否熟悉php,nodejs,看过哪些书 网页设计中能够使用哪些图像格式,说下它们的优缺点 一个元素结点有哪些公共属性,哪些事件属性,各举5个以上 盒模型——外边距、内边距和边框之间的关系,IE 8以下版本的浏览器中的盒模型有什么不同。 布局的方式有哪些 使用缓存的方式有哪些,说下各种方式的优缺点与发展过程 怎么实现一个元素的居中 display,position的属性值有哪些 元素的属性简写,如font,background, html5有哪些新功能,都有哪些新的JS API,列举5条以上 介绍几个css3的属性,选择器有哪些 css的基本语句构成是,有哪些选择器,css3新增的有哪些 CSS引入样式的方式有哪些,link和@import的区别是,如何计算样式的优先级你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么? 常见到哪些类库,是否了解jq的实现,说一下对jq代码的理解,基本的架构或者 jQuery.fn.init 中都做了哪些判断,是否了解sizzle, 前端页面由层级结构是怎样的,分别是什么?作用是什么?是否了解MVC模型,在前端如何实现MVC 简单介绍一下js的语法特点,数据类型 说一下字符串,数组的常见方法 js的继承方式 js的运算符与优先级 创立对象的方法 JSON与JSONP的区别 DOM结点的选择有哪些方法,有哪些元素集合可直接选取,如果选择一个节点有父节点,子节点,兄弟节点(nextSibling与nextElementSibling,IE与其它浏览器的差别) 简单介绍DOM节点层级 节点怎样添加、移除、移动、复制、创立和查找节点 IE与FF的JS兼容性都知道哪些 IE事件流与其它浏览器事件流特点,绑定事件的差异 正则表示式是否熟悉,有哪些元字符,何为分组,捕获,零宽断言,零宽度正预测

华为工程师面试题总结(有答案) 80%参考

本题库是华为集团工程师面试 -内部真实评分标准, -内部真实面试案例,后面有工程师考试试卷和答 案。物超所值,学会本文面试通过率提高80% 华为集团面试经验总结: 华为集团是4轮 一面组长,会问到一些这样问题,为什么会离职,为什么来华为集团婚姻状况,与此同时有没有想问面试官的问题。 二面经理,偏向于部门业务服务。有业务上的试卷需要考试。 三面经理,这一轮会谈到一些业务目标和工作中可能出现的一些问题。大概聊一下工作的想 法,部门的价值和目标,对这个岗位的期望等等以及华为集团和行业的情况。聊天的内容与面试者个人有关,可多可少。(二三是交叉面试防止作弊), 四面职业通道委员会,这一轮的面试非常专业,为技术专家面,目的是定级。确定你面试者的水平大概在什么位置。直接影响后面的收入。各个击中要害。不要想着有简单跳过的部分。在介绍工作内容的过程中,要先介绍自己在组织团队所处的位置,发挥的作用,工作绩效等,条例要清楚。这一轮的面试专业性最强。最后是HR谈薪资的部分,因为行业都有规则,所以时间不会太长。 5面背景调查,主要是面试者在填写简历时提供的名字和联系方式,其中包含领导。HR最后offer。 步骤四、五、六每个一个星期,比如三面完后得到职业通道委员会的面试的通知约一周,四面完后,得到通过与否的消息是一个星期。如果某一步一个星期多没消息,那就是没戏了。

面试的重点分享: 面试的气氛需要注意的: 1面试不能一脸严肃,显得很紧张,要适当微笑。给面试官的印象好。 2面试官提问的问题,不能对抗反驳提问。即使面试官的问题比较苛刻。 细节决定成败,面试如同相亲,面试官会注意到每个细节,身上有没有烟味,头发是不是整齐,说话条例要清晰,一定要集中精神,面试等待的时候也不能看手机。自我介绍的时候要强调身体健康可以加班。可以在最后自己介绍的时候,表示出强烈的来工作,一展抱负的意思。让面试官感受你的积极一面。 面试最重要的3点 1要高度认同面试公司的工作文化和理念。 2要强调自己不断学习。不断成长,能承受压力。 3千万不能说因为自己考试,希望的工作是轻松的,清闲的。 最重要的2点要高度认同面试公司的工作文化和理念。面试前要上公司网站查看下这个公司的文化理念,如果在面试过程把这个点说出来,是要加分非常多的。 收尾阶段 面试官一般会问:“你还有什么问题想问我们?”这个时候千万别不问,有啥没啥的都一定要问两个问题,一个问题可以涉及技术层面,另一个可以涉及应聘职位的发展问题. 前公司的离职原因是必问的问题,不能说前公司太多的不好,可以说因为其他原因, 离职原因:优秀回答: A:原来公司亏损,减员,所以申请离职。 B:原来的公司,更换股东,战略有调整,人员调整。 C 原来的公司,因为搬家,搬家到很远的地方,过去不方便。 D 原来的公司,调整作息时间,周二放假,周日上班。 E 自己想要成长,希望可以更换岗位,挑战新的岗位,新的工作。 自我介绍: 是被面试者在纸面之外最能够呈现能力的一个地方。一般情况下,也是被面试者在整个面试过程中惟一一次主动展示自我的机会 第一,考察自我介绍内容和递交简历内容是否相冲突?如果简历是真实的,口述自我介绍就不会有明显出入。如果简历有假,自我介绍阶段一般就会漏马脚。如被面试者反问:“我的经历在简历里都写了”,面试官会认为这人得瑟,印象分一下子降为负数。 第二,考察被面试者基本的逻辑思维能力、语言表达能力,总结提炼概括能力。 第三,考察被面试者是否聚焦,是否简练和精干,现场的感知能力与把控能力。 第四,考察被面试者初步的自我认知能力和价值取向。因为被面试者要叙述职业切换关键节

java开发技术总结

数据库 oracle-->数据库管理系统-->SQL、PL/SQL-->Java(JDBC+SQL) DBA,数据库编程程序员 1.概念导论 1)什么是数据库 有组织和结构存储数据。可以存储 字符、字节、图形、图像等类型数据 DB(数据库):数据集合 DBMS(数据库管理系统):对数据集合进行管理和操作的软件 --Oracle --DB2 --MySQL --SQLSERVER JDBC 1.什么是JDBC 全称Java DataBase Connection,Java数据库访问。 JDBC是Java访问数据库的一项技术 JDBC是SUN推出的Java访问数据库的一套标准。由一系列接口构成。 各个数据库厂商负责提供JDBC接口API的实现包。 开发者只需要掌握JDBC接口的使用,就可以实现对各种数据库的操作,不需要了解开发商的实现类。 XML 1、什么是xml(xtendsible markup language可扩 展的标记语言)? 1)定义 基于文本的通用的数据保存格式。 (1)通用的点的坐标 Point类point对象(x=10,y=20) a,序列化 b,数据库表 c,文件 ... (2)数据格式 10 20

HTML 知识准备 1、分层:表现层:UI界面(DOS界面、桌面类型、web类型) 业务层: 数据层:文件、Oracle数据库 2、Web类型的应用程序----B/S类型 打开Browser,输入URL,浏览器将请求发送到服务器 服务器得到请求,分析,返回响应 浏览器得到响应,解析(翻译),显示为页面 3、web学习阶段 客户端技术:HTML+CSS+Javascript---Web基础 服务器端技术:JSP、PHP、https://www.360docs.net/doc/e95553537.html, 4、web基础的课程 HTML:页面的创建 CSS:页面的外观 JavaScript:页面的动态效果和交互行为--3 一:HTML概述 1、超文本标记语言:一种编写页面的纯文本的标记语言,文件以.html或者.htm为后缀,依靠浏览器运行显示----解释性的语言 2、标记:一些用<>括起来的内容,特殊的显示 3、主流浏览器:IE/Firefox/Chrome/ 4、浏览器兼容性:符合标准规范,具体问题 CSS 一:CSS概述 1、CSS:级联样式表(层叠样式表) 2、特征:为页面定义外观的语言,实现内容和表现的分离,多个样式可以合为一个,如果冲突,以优先级为准 二:基础语法 1、语法:属性名称:值;属性名称:值;比如--color:red; 2、如何应用 方式一(内联方式):<元素style=""/>---将样式直接定义在元素的style属性里 方式二(内部样式表):在页面的head里的style里定义样式 方式三(外部样式表):定义一个单独的.css的文件(定义样式);然后,在页面的head里用link引入---推荐方式 3、外部样式表的优点:实现内容和表现的分离,提高代码的可重用性和可维护性

JAVA面试题汇总

目录 概念题 ---------------------------------------------------------------------------------错误!未定义书签。 一、JAVA基础 ------------------------------------------------------------------------------ 错误!未定义书签。 1)面向对象的特征 --------------------------------------------------------------------------------------- 错误!未定义书签。 2)什么是OOP?什么是类?请对比类和对象实例之间的关系。 ----------------------- 错误!未定义书签。 3)简述类与对象的概念 -------------------------------------------------------------------------------- 错误!未定义书签。 4)什么是属性与方法? -------------------------------------------------------------------------------- 错误!未定义书签。 5)什么是封装? ------------------------------------------------------------------------------------------ 错误!未定义书签。 6)描述一下JVM加载class文件的原理机制 --------------------------------------------------- 错误!未定义书签。 7)Java程序怎么优化? -------------------------------------------------------------------------------- 错误!未定义书签。 8)一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?----- 错误!未定义书签。 9)char型变量中能不能存贮一个中文汉字 ----------------------------------------------------- 错误!未定义书签。 10)逻辑操作符(&,|,^)与条件操作符(&&,||)的区别--------------------------------------- 错误!未定义书签。 11)Math.round(11.5)等於多少? Math.round(-11.5)等於多少? ------------------------- 错误!未定义书签。 12)Java有没有goto?-------------------------------------------------------------------------------- 错误!未定义书签。 13)int 和Integer 的区别 --------------------------------------------------------------------------- 错误!未定义书签。 14)如何将数值型字符转换为数字?如何去小数四舍五入保留小数点后两位。错误!未定义书签。 15)short s1 = 1; s1 = s1 + 1;和short s1 = 1; s1 += 1;有什么错误 -------------------------- 错误!未定义书签。 16)float f=3.4是否正确? ----------------------------------------------------------------------------- 错误!未定义书签。 17)String 和StringBuffer的区别 ------------------------------------------------------------------ 错误!未定义书签。 18)String是否是最基本的数据类型,能否被继承 ----------------------------------------- 错误!未定义书签。 19)String s = new String("xyz");创建了几个String Object? ------------------------------- 错误!未定义书签。 20)数组有没有length()这个方法? String有没有length()这个方法? ---------------- 错误!未定义书签。 21)排序都有哪几种方法?用JAVA实现一个快速排序 ----------------------------------- 错误!未定义书签。 22)swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上--- 错误!未定义书 签。 23)在JAVA中,如何跳出当前的多重嵌套循环? ------------------------------------------ 错误!未定义书签。 24)关于日期和时间的几个问题------------------------------------------------------------------- 错误!未定义书签。 25)一个对象被当作参数传递到一个方法,是值传递还是引用传递----------------- 错误!未定义书签。 26)什么时候用assert?------------------------------------------------------------------------------ 错误!未定义书签。 27)GC是什么? 为什么要有GC? ---------------------------------------------------------------- 错误!未定义书签。 28)垃圾回收的优点和原理 ------------------------------------------------------------------------- 错误!未定义书签。 29)垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?错误!未定义书 签。 30)java中会存在内存泄漏吗,请简单描述 -------------------------------------------------- 错误!未定义书签。 31)java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,他们分别是哪些 类?错误!未定义书签。 32)文件和目录(I/O)操作 ------------------------------------------------------------------------ 错误!未定义书签。 33)什么是java序列化?如何实现java序列化?------------------------------------------- 错误!未定义书签。

华为软件测试工程师笔试题目

华为软件测试工程师笔试题目 1、怎么来设计测试方案 根据测试需求(包括功能需求和非功能性需求),识别测试要点,识别测试环境要求,安排测试轮次,根据项目计划和开发计划做整体的测试安排。 被测试的特性:通过对需求规格说明书进行分析,列出本次测试需要进行测试的各部分特性(如要测试的功能需求、性能需求、安全性需求等等); 不被测试的特性:由于资源、进度等方面原因,本次测试不列入测试范围的特性; 测试组网图:进行本次系统测试所需要的软硬件设备、配置数据已及相互间的逻辑、物理连接。今后测试执行时需要依据这个组网图来进行环境的搭建。 2、如果给你一个B/S系统你怎么来进行测试 此题答案还可用于回答测试流程,测试流程题亦可参考15题。 阅读系统需求,充分理解需求,记录问题,并与项目需求人员充分沟通。 编写测试需求,包括系统功能和非功能测试要点、测试类型、测试进度质量要求等。 制定测试计划,包括熟悉测试业务、设计测试用例、执行测试用例、进行测试小结、编写测试报告,任务颗粒度一般应小于5人天 编写测试用例,根据测试方案设计用例,即便没有明确的性能和安全测试要求,也应识别进行此两项测试。 执行软件测试, 进行测试小结,如果测试持续时间较长,每个版本间隙总结本轮测试。 编写测试报告,总结测试过程,汇总度量数据。 3、怎么进行工作流的测试 把握需求,找准结点,理清流程,画出流转图,弄清节点间的数据流转,设计测试用例的时候必须覆盖所有可能的流程。 工作流: 如果问到有没有做过,根据对工作流的了解情况回答,如果比较了解,可以把参与的某个项目中说上一些有工作流的,如果不是很了解就说没有做过,但是学习过相关知识。

java基础总结

第一章初识java 一、java语言的历史 ●第一代java语言:Oak 二、java语言的现状 ?Java SE:主要用于桌面程序的开发。 ?Java EE:主要用于网页程序的开发。 ?Java ME:主要用于嵌入式系统程序的开发。(安卓)三、java语言的特点 ●跨平台(不同的操作系统都可运行) ●简单(没有直接使用指针) ●面向对象(世间万物皆为对象) ●半编译半解释(java文件---class文件----虚拟机) ●分布式(多个客户端访问、通过服务器的配置分发到 不同的服务器) ●健壮(异常的处理) ●安全(任何语言都具备、虚拟机沙箱原理) ●多线程、高性能、动态 四、java语言与C、C++语言的不同与区别 ●自动内存管理:Java对于内存的分配是动态的,并具 有垃圾回收机制。 ●不在类外定义全局变量。 ●Java中将不再使用goto语句。

●Java中取消了指针。 ●运行时系统对类型转换进行类型相容性检查 ●Java不支持头文件,使用import与其它类通讯。 ●Java中不包含结构和联合;所有的内容都封装在类中。 ●Java中不支持宏,它通过final 关键字来声明一个常 量。 ●Java不支持多重继承,可以通过Java中的接口实现 多重继承的功能。 ●CC++ 一般情况下都是偏硬件的,java一般偏软件(应 用、基于浏览器) ●(补充).net、php (网页制作比较快捷)、在安全级 别要求高的企业一般使用java(银行、政府系统) 五、环境的搭建 1、默认路径如下 ●C:\Program Files\Java\jdk1.6.0_02:提供编程中需要 的api包 ●C:\Program Files\Java\jre1.6.0_02:虚拟机文件所在的 位置 2.安装后各个文件夹代表的含义

java经典面试题汇总

Java基础方面: 1、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域当前类同一package 子孙类其他package public √√√√ protected √√√ × friendly √√ × × private √ × × × 不写时默认为friendly 2、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口) 答:匿名的内部类是没有名字的内部类。不能extends(继承) 其它类,但一个内部类可以作为一个接口,由另一个内部类实现 3、Static Nested Class 和 Inner Class的不同 答:Nested Class (一般是C++的说法),Inner Class (一般是JA V A的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。注:静态内部类(Inner Class)意味着1创建一个static内部类的对象,不需要一个外部类对象,2不能从一个static内部类的一个对象访问一个外部类对象 4、&和&&的区别 答:&是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and) 5、Collection 和 Collections的区别 答:Collection是集合类的上级接口,继承与他的接口主要有Set 和List. Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作 6、什么时候用assert 答:assertion(断言)在软件开发中是一种常用的调试方式,很多开发语言中都支持这种机制。在实现中,assertion就是在程序中的一条语句,它对一个boolean表达式进行检查,一个正确程序必须保证这个boolean表达式的值为true;如果该值为false,说明程序已经处于不正确的状态下,系统将给出警告或退出。一般来说,assertion用于保证程序最基本、关键的正确性。assertion检查通常在开发和测试时开启。为了提高性能,在软件发布后,assertion检查通常是关闭的 7、String s = new String("xyz");创建了几个String Object 答:两个,一个字符对象,一个字符对象引用对象 8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少 答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回与参数最接近的长整数,参数加1/2后求其floor 9、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错 答:short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)short s1 = 1; s1 += 1;(可以正确编译) 10、Java有没有goto 答:java中的保留字,现在没有在java中使用 11、数组有没有length()这个方法? String有没有length()这个方法 答:数组没有length()这个方法,有length的属性。String有有length()这个方法 12、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型

前端开发面试问题总结

前端开发面试问题总结 May 28, 2015 对于前端开发人员的招聘,面试是非常关键的环节,而现实的情况是,很多招聘者是开发出身,不会面试,不知道问什么,问了一些常规问题,又不知道考察些什么。 这里分享一下我在面试过程中常问的一些问题(很多问题不仅限于前端开发),注意很多问题都是开放的,作为一个面试官,不要试图准备几个选择题或填空题应付了事,面试不同与笔试,面试就是要以交流为主,互动讨论总是要比直接的答案更能体现此人的能力。 我个人认为,任何时候,考察一个应聘者,综合素质要优先于他的技术能力,做开发不是做航天飞船,一般智商不低的人通过学习都可以胜任大部分工作,关键的是人品、工作态度、分析能力、学习能力,这些都是与生俱来或潜移默化形成的,是很难通过学习获得的,它们要比现有的技术经验和技术能力更重要。 ?今天天气还不错,你是怎么过来的? ?大概用了多久,离得远么? ?(如果远的话)是自己的房子还是租的房子?经常这样远距 离上班可以适应么? 缓解一下应聘者的紧张感,让他尽快进入状态,并能了解出行方式、大概的远近。有时候工作地点远近还真是大问题,即使应聘者可以接受,但是上班时间超过1个半小时的员工幸福感和工作效率会较低,流失率会比较高。 ?(用3分钟时间)简单做个自我介绍吧? 自我介绍是关键的环节,连自我介绍都说不好,说明对待面试和职业的态度很差。可以加上时间限制,或者让应聘者自由发挥,看看他把握重点的能力和控制时间的能力。自我介绍一般来说应该包含年龄,籍贯,毕业院校、专业和时间,工作过的公司和时间,主要的项目,担当的职务,用到的技术,擅长的技术等。 ?详细介绍一个对你影响比较大的项目? ?对于你刚才说的xxx项目,我很感兴趣,你能详细说一说么? ?这个项目主要是解决什么问题/完成什么事情? ?你在这个项目里的职责是什么/做了哪些事情? ?这个项目用到了那些技术/框架? ?这个项目中大家是怎样协作的? ?这个项目主要的挑战是什么? ?这个项目遇到了哪些技术难点和问题? ?你是怎样解决的? ?你觉得自己的解决方案还有改进的地方么?

华为软件研发岗笔试题总结

华为软件研发岗笔试题 总结 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

操作系统(OperatingSystem,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。 操作系统通常是最靠近硬件的一层系统软件,它把硬件裸机改造成为功能完善的一台虚拟机,使得计算机系统的使用和管理更加方便,计算机资源的利用效率更高,上层的应用程序可以获得比硬件提供的功能更多的支持。 操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有DOS、OS/2、UNIX、XENIX、LINUX、Windows2000、Netware等。 华为软件笔试题 一、判断题(对的写T,错的写F并说明原因,每小题4分,共20分) 1、有数组定义inta[2][2]={{1},{2,3}};则a[0][1]的值为0。(正确) 2、int(*ptr)(),则ptr是一维数组的名字。(错误) 3、指针在任何情况下都可进行>,<,>=,<=,==运算。(正确) 4、switch(c)语句中c可以是int,long,char,float,unsignedint类型。(错误) 5、#defineprint(x)printf("theno,"#x",is")(正确) 二、填空题(共30分) 1、在windows下,写出运行结果,每空2分,共10分。 charstr[]="Hello"; char*p=str; intn=10; sizeof(str)=(6) sizeof(p)=(4) sizeof(n)=(4) voidfunc(charstr[100]) {} sizeof(str)=(4)

java集合类总结

1.本讲内容:集合collection (数组和集合90%功能相似,但是最大的区别是,数组在初始化的时候必须确定大小,而集合不用,而且集合是一堆的类,使用起来非常方便。) 讲集合collection之前,我们先分清三个概念: 1colection 集合,可用来存储任何对象的一种数据结构(容器)。 2Collection 集合接口,指的是,是Set、List 和Queue 接口的超类接口 3Collections 集合工具类,指的是类。 SCJP考试要求了解的接口有:Collection , Set , SortedSet , List , Map , SortedMap , Queue , NavigableSet , NavigableMap, 还有一个Iterator 接口也是必须了解的。 SCJP考试要求了解的类有:HashMap , Hashtable ,TreeMap , LinkedHashMap , HashSet , LinkedHashSet ,TreeSet , ArrayList , Vector , LinkedList , PriorityQueuee , Collections , Arrays 下面给出一个集合之间的关系图: 上图中加粗线的ArrayList 和HashMap 是我们重点讲解的对象。下面这张图看起来层级结构更清晰些。 我们这里说的集合指的是小写的collection,集合有4种基本形式,其中前三种的父接口是Collection。 4List 关注事物的索引列表 5Set 关注事物的唯一性 6Queue 关注事物被处理时的顺序 7Map 关注事物的映射和键值的唯一性 一、Collection 接口 Collection接口是Set 、List 和Queue 接口的父接口,提供了多数集合常用的方法声明,包括add()、remove()、contains() 、size() 、iterator() 等。 add(E e) 将指定对象添加到集合中 remove(Object o) 将指定的对象从集合中移除,移除成功返回true,不成功返回false contains(Object o) 查看该集合中是否包含指定的对象,包含返回true,不包含返回flase size() 返回集合中存放的对象的个数。返回值为int clear() 移除该集合中的所有对象,清空该集合。 iterator() 返回一个包含所有对象的iterator对象,用来循环遍历 toArray() 返回一个包含所有对象的数组,类型是Object toArray(T[] t) 返回一个包含所有对象的指定类型的数组 我们在这里只举一个把集合转成数组的例子,因为Collection本身是个接口所以,我们用它的实现类ArrayList做这个例子:例子1: package edu.xjfu;

相关文档
最新文档