美文网首页
一些问题

一些问题

作者: 王蓝胖 | 来源:发表于2016-08-31 11:26 被阅读13次

    1.以下情况的打印结果

        NSArray *arr = [NSString stringWithFormat:@"abc"];
        NSLog(@"%@", arr);
        NSString *str = arr;
        NSLog(@"%@",str);
    
    2016-08-26 10:23:45.364 SomeThing[45895:1817616] abc
    2016-08-26 10:23:45.365 SomeThing[45895:1817616] abc
    

    2.OC是强类型还是弱类型语言?

    强类型:为所有变量指定数据类型称为“强类型”。
    强/弱类型是指类型检查的严格程度的。语言有无类型,弱类型和强类型三种。无类型的不检查,甚至不区分指令和数据。弱类型的检查很弱,仅能严格的区分指令和数据。强类型的则严格的在编译期进行检查。
    强类型语言在没有强制类型转化前,不允许两种不同类型的变量相互操作。Java、C# 、Apex和 Python 等都是强类型语言。

    3.写一个冒泡排序,时间复杂度

    - (void)bubSort:(NSMutableArray *)arr{
        for (int i = 0; i < arr.count; i++) {
            for (int j = 0; j < arr.count - i - 1; j++) {
                if ([arr[j+1] integerValue] < [arr[j] integerValue]) {
                    NSInteger temp = [arr[j+1] integerValue];
                    arr[j+1] = arr[j];
                    arr[j] = [NSNumber numberWithInteger:temp];
                }
            }
        }   
    }
    

    时间复杂度为log(n^2)

    4.写一个折半查找,时间复杂度

    - (NSInteger)binSearch:(NSArray *)arr number:(NSInteger)num{
        
        NSInteger low = 0;
        NSInteger high = arr.count - 1;
        
        while (low <= high) {
            NSInteger mid = (low + high)/2;
            
            if (num < [arr[mid] integerValue]) {
                high = mid - 1;
            }else if (num >= [arr[mid] integerValue]){
                low = mid + 1;
            }else{
                return mid;
            }
        }
        
        return -1;
    }
    

    时间复杂度为O(n^2)

    5.分类和继承的区别
    分类:可以扩展类方法,不能定义新成员,可以访问私有成员
    继承:可以通过覆盖和定义新方法扩展父类,可以新增成员,但是不能访问父类私有成员

    分类会覆盖原同名方法,将不同的方法写入不同的文件中,更适合团队开发,而且分类更小巧灵活

    6.iOS沙盒的目录结构
    Documents iTunes:会同步该目录,适合存放重要数据
    Library/Caches: iTunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。
    Library/Preferences: iTunes同步该应用时会同步此文件夹中的内容,通常保存应用的设置信息。
    tmp: iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存应用中的一些临时文件,用完就删除。

    7.get和post的区别

    • GET使用URL或Cookie传参。而POST将数据放在BODY中。
    • GET的URL会有长度上的限制,则POST的数据则可以非常大。
    • POST比GET安全,因为数据在地址栏上不可见

    8.如何开启一个常驻线程

    9.深拷贝和浅拷贝

    • 深拷贝:对象拷贝
    • 浅拷贝:地址拷贝
    • 在非集合类对象中:对****immutable****对象进行****copy****操作,是指针复制,****mutableCopy****操作时内容复制;对****mutable****对象进行****copy****和****mutableCopy****都是内容复制。

    相关文章

      网友评论

          本文标题:一些问题

          本文链接:https://www.haomeiwen.com/subject/gqsysttx.html