iOS相关总结

1.Http:(无状态含义)

HTTP协议不具备保存之前发送过的请求或响应的功能。简而言之 下一次的请求和上一次没有关系。但是可以保存记录请求的结果。




2.block循环引用的原因:

相互持有,不能释放。

通过__weak的修饰,先把self弱引用。打破强引用的僵局。




3.脚本语言和编程语言的区别

1. 脚本语言不需要编译,可以直接用,由解释器来负责解释。有一些脚本语言已经发生了变化,如python,perl已经可以编译成中间代码然后执行,这样的脚本语言已经可以被称为编译型脚本语言。代表的有JAVASCRIPT,ASP,PHP,PERL,Nuva)脚本语言:一、解释执行 二、执行文件。

2. 编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。C/C++ 等都是编译型语言,而Java,C#等都是解释型语言。虽然Java程序在运行之前也有一个编译过程,但是并不是将程序编译成机器语言,而是将它编译成字节码(可以理解为一个中间语言)

运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些

1、标记语言不用于向计算机发出指令,常用于格式化和链接。如:HTML、XML

2、脚本语言介于标记语言和编程语言之间,脚本语言脚本语言不需要编译,可以直接用,由解释器来负责解释。JavaScript、VBScript、PHP

3、编译型语言写的程序执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。C、C++


4.runtime的理解。



5.动态库和静态库。

动态库是以.framework 和.tbd或者.dylib 结尾的库。

静态库是以.a或者.framework结尾的库。

静态库链接的时候都会被完整到复制到可执行文件中。多次使用会多次copy。

动态库链接时由系统动态的加载到内存里面,系统只会加载一次。意味着多个程序共用。节省内存。

你可能感兴趣的:(iOS相关总结)