zoukankan      html  css  js  c++  java
  • 面试题(九)

    1、objective-c 是所有对象间的交互是如何实现的?

    在对象间交互中每个对象承担的角色不同,但总的来说无非就是”数据的发送者”或”数据的接收者”两种角色,我们可以通过代理去进行通信,或者通过观察者消息模式,blocks,appdelegagte

    通过:代理协议”或者”通知中心”方式的实现能最大限度的降低两交互对象之间的耦合,不错的设计;

    2、如何将产品进行多语言发布,开发?

    xcode 对多语言支持比较好,除了h,m文件外所有其他东西都可以多语言

    3、objective-c中是如何实现线程同步的?

    Mutexlock (互斥锁)、NSCondition lock (条件锁)消息传送

    4、什么是UDP和TCP的区别是什么?

    TCP 的全称是传输控制协议,这种协议可以提供面向连接的、可靠的、点到点的通信。

    UDP 的全称是用户数据包协议。他可以提供非连接的不可靠的点懂啊多点的通信,是osi参考模型中一种无连接的传输层协议,提供面向事务的简单的不可靠信息传输,_IETF RFC 768 是UDP 的正式规范;

    选择何种协议,看程序注重那个方面,可靠抑或快速。

    5、TCP/IP 建立连接的过程


    在TCP/IP 协议中,TCP协议提供可靠的连接服务,采用三次握手建立连接;

    第一次握手:建立连接时,客户端发送连接请求到服务器,并进入SYN_SEND状态,等待服务器确认;

    第二次握手:服务器收到客户端连接请求,向客户端发送允许连接应答,此时服务器进入SYN_RECV状态;

    第三次握手:客户端收到服务器的允许连接应答,向服务器发送确认,客户端和服务器进入通信状态,完成三次握手。

    (所谓的三次握手,就是要有三次连接信息的发送、接收过程。TCP连的建立需要进行三次连接信息的发送、接收。)

    6、全局变量可不可以定义在被多个.c文件包含的头文件中?为什么?

    可以,在不同的c文件中以static 形式来声明同名全局变量。前提是其中只能有一个c文件中对此变量赋初值,此时连接不会出错。

    7、如何引用一个已经定义过的全局变量?

    extern

    可以用引用头文件的方式,也可以用extern 关键字,如果用引用头文件的方式来引用某个在头文件中的全局变量,假定你那个变量写错了,那么编译期间会报错,如果用extern 方式引用时,假定你犯了同样的错误,那么在编译期间不会报错,而在连接期间报错。

    8、什么叫数据结构?

    数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合。

    通常,精心选择的数据结构可以带来更高的运行或者存储效率。

    9、编程中,保存数据有哪几种方式?

    数组、自定义类、文件操作,数据库:如(SQLite 、core data、 plist 、NSUserDefaults、file )—持久保存数据

    10、Sizeof 和strlen 的区别和联系?

    Sizeof() 是运算符,可以用类型做参数,还可以用函数做参数,功能是获得保证能容纳实现所建立的最大对象的字节大小;

    strlen()是函数,要在运行时才能计算。参数必须是字符行指针且必须是以”″结尾的。功能为:返回字符串的的长度。

    11、什么是抽象类?抽象类有什么作用?能实例化吗?

    在c++中,含有纯虚拟函数的类称为抽象类,他不能生成对象;

    在java中,含有抽象方法的类称为抽象类,同样不能生成对象;

    抽象类是不完整的,没有完全实现,只能用作基类;不能实例化。

    12、你对@interface和@property的理解?

    @interface 申明一个类

    @property就是申明2个人函数,getter和setter,编译器会自动产生2个函数;

    13、调用一个类的静态方法需不需要release?

    静态方法,就是类方法,不需要,类方法对象放在autorelease中

    15、do while和while do 的区别?

    do while 是先执行后判断,条件不满足也要执行一次;

    while do 是先判断后执行,条件不满足就一次都不执行。

    16、写出几个死循环?

    while(1){}、 for(;;){}。

    17、用预处理指令#define声明一个常数,用以表明一年中有多少秒(忽略润年问题)

    #define SECONS_PER_YER(60**60*24*365)UL

    18、assign和retain ,copy区别?

    assign就是和普通语言的赋值一样,不改变引用计数

    retain 在一个对象中保存该对象需要拥有的对象,对该对象引用计数+1,指针拷贝;

    copy 对NSString,内容拷贝,拷贝之前都会释放旧的对象

    retain 对其他NSObject 和其子类

    readonly 表示这个属性是只读的,就是只生成getter 方法,不生成setter 方法。

    read write 设置可供访问级别

    19、类之间的继承关系,比如UIview 的父类是哪一个等等?

    UIResponder ,处理触摸,touchBegin、touchEnd ,nextResponder

    const和volatile 分别代表什么意思?

    const 简单说是只读,用来保护那些不希望被改变的参数,防止其被那些恶意的代码修改。

  • 相关阅读:
    Leetcode Plus One
    Leetcode Swap Nodes in Pairs
    Leetcode Remove Nth Node From End of List
    leetcode Remove Duplicates from Sorted Array
    leetcode Remove Element
    leetcode Container With Most Water
    leetcode String to Integer (atoi)
    leetcode Palindrome Number
    leetcode Roman to Integer
    leetcode ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/shidaying/p/4991153.html
Copyright © 2011-2022 走看看