美文网首页
面试准备

面试准备

作者: 健健锅 | 来源:发表于2018-03-25 22:37 被阅读236次

比如__bridge,block的内存管理,而且会针对一个问题拓展问,考察你是真的了解还是直接背准备好的。手写C或者OC代码是一定有的,而且都比较重视,因为这是考察你的基础是否牢固,常见的手写单例,setter getter,快排都是经常问的。

面试说UITableView滑动卡的问题,让优化,我回答 FB开源的那套渲染排版分离到分线程
又让设计一个图片下载器

Block,多线程。

问了些单例模式,为什么苹果推荐的写法,不用可以吗?问了些循环引用的问题。

总结:

  1. __bridge
    https://blog.csdn.net/u010130947/article/details/44493931

    https://blog.csdn.net/chy555chy/article/details/51712334

  2. block的内存管理

http://www.cocoachina.com/ios/20161025/17198.html

https://blog.csdn.net/cloudox_/article/details/70157717

https://blog.csdn.net/u012526801/article/details/49281893

https://blog.csdn.net/u012526801/article/details/49281893

block 3种,全局block 代码区,栈block 和堆block
ARC 只用全局和堆,系统自动将栈复制到对上,不引用外部变量的为全局,引用以后为堆
用strong或copy 修饰,因为堆内存一直在变有可能被释放
__block 修改外部变量是修饰,可以将外部变量存入结构体,捕获的是指针 可以修改
__weak 循环引用 weakself   block里面在strong一下  原因有2 怕释放self,和__weak对象每使用一次就会加入一次autoreleasepool 中一次 频繁使用会造成内存溢出

3.手写单例,

#import "SingletonVC.h"
// 创建静态对象 防止外部访问
static SingletonVC * _singletonVC;
@implementation SingletonVC
+ (instancetype)allocWithZone:(struct _NSZone *)zone{
    
    static dispatch_once_t onceToken;
    // 一次函数
    dispatch_once(&onceToken, ^{
        if (_singletonVC == nil) {
            _singletonVC = [super allocWithZone:zone];
        }
    });
    
    return _singletonVC;
}
+ (instancetype)share{
    
    return  [[self alloc] init];
}
@end
#import "SingletonVC.h"
// 创建静态对象 防止外部访问
static SingletonVC * _singletonVC;
@implementation SingletonVC
+ (instancetype)allocWithZone:(struct _NSZone *)zone{
    
    //线程锁
    @synchronized (self) {
        if (_singletonVC == nil) {
            
            _singletonVC = [super allocWithZone:zone];
        }
    }
    
    return _singletonVC;
}
+ (instancetype)share{
    
    return  [[self alloc] init];
}
@end

单利的优缺点以及详细讲解
https://www.jianshu.com/p/4867dc92337e
不要滥用单例
http://wiki.jikexueyuan.com/project/objc/architecture/13-2.html
setter getter
https://www.jianshu.com/p/90a7b27c781a
快排
https://www.jianshu.com/p/34e920acfe1c

https://www.jianshu.com/p/28928b74fe48

字符串逆序

- (NSString *)stringByReversed
{
  NSMutableString *s = [NSMutableString string];
  for (NSUInteger i=self.length; i>0; i--) {
    [s appendString:[self substringWithRange:NSMakeRange(i-1, 1)]];
  }
  return s;
}

https://segmentfault.com/q/1010000000181923
1、实现一个字符串“how are you”的逆序输出(编程语言不限)。如给定字符串为“hello world”,输出结果应当为“world hello”。(字符串逆序输出、二叉树、归并排序)
https://blog.csdn.net/shihuboke/article/details/77145615

c语言逆序(中间切断两边交换,类似快排)

main()  
{  
  int i,j,t,n;  
  char a[10];  
  printf("请输入字符串:");  
  gets(a);  
  n=strlen(a);  
  for(i=0;i<=n/2;i++)  
  {  
    t=a[i];  
    a[i]=a[n-1-i];  
    a[n-1-i]=t;  
      
      }   
      for(j=0;j<n;j++)  
      printf("%c",a[j]);  
      printf("\n");   
 }   

递归逆序字符串
https://blog.csdn.net/u012978932/article/details/46929177

/* 
 * reverse string via the terminating zero 
 */  
void foo1(char* a) {  
    int len = strlen(a);  
    int i;  
      
    for (i = 0; i < len / 2; i++) {  
        a[len] = a[i];  
        a[i] = a[len - i - 1];  
        a[len - i - 1] = a[len];  
    }  
      
    a[len] = 0;  
}  
  
/* 
 * reverse string via a temp variable 
 */  
void foo2(char* a) {  
    char temp;  
    int len = strlen(a);  
    int i;  
      
    for (i = 0; i < len / 2; i++) {  
        temp = a[i];  
        a[i] = a[len - i - 1];  
        a[len - i - 1] = temp;  
    }  
}  
  
/* 
 * reverse string via XORs 
 */  
void foo3(char* a) {  
    int len = strlen(a);  
    int i;  
      
    for (i = 0; i < len / 2; i++) {  
        a[len - i - 1] ^= a[i];  
        a[i] ^= a[len - i - 1];  
        a[len - i - 1] ^= a[i];  
    }  
}  
  

http://rednaxelafx.iteye.com/blog/134002/
4.UITableView滑动卡的问题
https://bestswifter.com/uikitxing-neng-diao-you-shi-zhan-jiang-jie/
https://blog.csdn.net/happyfish2015/article/details/48146287
http://blog.sunnyxx.com/2015/05/17/cell-height-calculation/

https://blog.csdn.net/qq_23616601/article/details/51038263
5.设计一个图片下载器

https://www.jianshu.com/p/4f50db93e7b6
https://www.jianshu.com/p/b7a1a6e2ee4c
6.多线程
https://www.jianshu.com/p/266bec7c4dd2
sdwebimage
https://blog.csdn.net/Maxdong24/article/details/53735205
7,week
http://www.cocoachina.com/ios/20170328/18962.html
百度面试
http://www.cocoachina.com/ios/20171127/21331.html
//需要详细阅读 各种面试总结
https://blog.csdn.net/u013125233/article/details/51063569

yytext
https://github.com/lzwjava/OpenSourceNotes/blob/master/YYText/YYText.md

https://www.jianshu.com/p/e214b3793005

https://www.jianshu.com/p/74fdd28b0a09

微博 采访
http://blog.sina.com.cn/s/blog_68147f680102weti.html
http://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247488452&idx=1&sn=0de45a93e355a2700b04b328b042c47a&source=41#wechat_redirect

https://blog.csdn.net/ahut_qyb_6737/article/details/40891683

https://www.cnblogs.com/ioriwellings/p/5011993.html
https://www.cnblogs.com/ioriwellings/p/5011993.html
异步
https://blog.csdn.net/game3108/article/details/53023941
https://www.jianshu.com/p/e2c5b2bab063

https://zhuanlan.zhihu.com/p/25371361?from=groupmessage&isappinstalled=0
星光社性能优化
http://www.starming.com/2017/06/20/deeply-ios-performance-optimization/#more

相关文章

  • 面试准备

    面试官您好,我叫 我毕设内容是设计和开发一个基于RFID自动识别技术的物流跟踪系统,其中包括开发一个中间件,用于提...

  • 面试准备

    1.StringBuffer 实现远离 java 常用集合的数据结构:hashmap linklist array...

  • 面试准备

    准备:简历编写和面试前准备 一般来说,跳槽找工作要经历投递简历、准备面试、面试和谈 offer 四个阶段。其中面试...

  • 面试准备

    1、了解公司,看公司网站、 了解公司产品、服务特色,再看看公司管理的背景、企业文化等方面,可能的话去翻翻 企业年报...

  • 面试准备

    已经过了一年没有工作,以前的工作内容都模糊了,于是进入了以前工作的网站再次观察浏览好像又找回了一些东西,感觉上没有...

  • 面试准备

    1.HashMap && CurrentHashMap源码分析 HashMap源码解析 java 并发编程之 Co...

  • 面试准备

    最近一直在忙着晋升的面试准备,所以就把我的一些内容整理了一下,先充当下作业吧! 自我介绍部分:各位领导好,我先自我...

  • 面试准备

    比如__bridge,block的内存管理,而且会针对一个问题拓展问,考察你是真的了解还是直接背准备好的。手写C或...

  • 面试准备

    口语部分 Make a brief introduction in 1-2 minutes.Good aftern...

  • 准备面试

    今天一天都在弄面试的东西,昨天在简书上看了很多关于面试的东西,今天早上按照简书上说的东西做了一份简历,简历自然也是...

网友评论

      本文标题:面试准备

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