摘要:
过去两个星期里,为了完成一个工作,接触到了NSObject中非常特别的两个类方法(Class Method)。它们的特别之处,在于iOS会在运行期提前并且自动调用这两个方法,而且很多对于类方法的规则(比如继承,类别(Category))都有不同的处理。而因为这两个方法是在程序运行一开始就被调用的方法,我们可以利用他们在类被使用前,做一些预处理工作。比如我碰到的就是让类自动将自身类名保存到一个NSDictionary中。先来看看NSObject Class Reference里对这两个方法说明:+(void)initializeThe runtime sends initialize to ea 阅读全文
摘要:
在《二分查找法的实现和应用汇总》中,我介绍了二分查找法的基本应用,不过在面试的准备过程中,我还碰到了更多对于二分查找法的更进一步的使用。其实在《二分查找法的实现和应用汇总》的最后,我已经介绍了一个非常规的使用,也就是基于“轮转后的有序数组(Rotated Sorted Array)”检查某一个数是否存在。找到轮转后的有序数组中第K小的数对于普通的有序数组来说,这个问题是非常简单的,因为数组中的第K-1个数(即A[K-1])就是所要找的数,时间复杂度是O(1)常量。但是对于轮转后的有序数组,在不知道轮转的偏移位置,我们就没有办法快速定位第K个数了。不过我们还是可以通过二分查找法,在log(n)的 阅读全文
摘要:
引用类型(Reference)在许多计算机语言中都被使用,而且是作为一个非常强大而实用的特性存在。它有类似指针(Pointer)的实现,却又有不同于指针的表现。例如C++的引用,可以让不同变量指向同一个对象,同时又保有直接使用dot来获取对象成员,不用繁琐的使用dereference运算符(*)和Pointer to Member运算符(->)。Java和C#中就直接以引用为主要类型,尽量让开发人员避免使用指针。PHP中也引入了引用类型,在对对象赋值传递上,基本可视为是同于Java/C#的引用传递(具体请见Objects and references)。但同时又支持在基础类型上通过引用运 阅读全文
摘要:
之前《每一次面试都是对技术的提高(上)》中已经介绍完了第一个面试流程,最后并没有拿到期望的Offer,但是Amazon把我转到了另一个部门继续面试,算是给了第二次机会。这个部门用到的技术主要是正则表达式,SQL语句,Linux指令还有Shell脚本。我自然能感觉到这个机会应该是第二个那个中国的面试官帮我争取的,当然我在简历中写上的一些正则表达式的几个项目,也给予了一定加分。不过,我也在跟经理的电话交流中,坦诚我在Linux方面知识的不足,以及SQL语句的遗忘,因此对方在次考虑上给了我时间来准备和复习,让我在觉得可以了的时候告之然后安排电话面试。所以,放下电话我就开始准备,计划安排每天要准备的内 阅读全文
摘要:
工作已经有一个半月了,一直想要写写有关找工作面试的一些事情,但是又没有写。其实我并没有像身边的一些朋友那样,有很多的面试机会,经历了很多不同公司的面试过程,好像整个研究生的最后一个学期里面,我主要就面了Amazon和Facebook两家公司,当然还有毕业后面试的现在进了的公司。所以我主要也只是想写写我面试Amazon的整个过程,因为整个过程最漫长也最深刻。虽然最后并没有拿到他们家的offer,但是为了准备面试也做了很多准备,而随着面试的一步步跟进,也能明显的感觉到自己相关的能力在不断地提高。概览关于我,这是我的基本资料。也算是以前为找实习用的网络简历吧。关于Amazon面试,整个面试从他们20 阅读全文