【转】iOS 面试题

UFS Link Startup全流程解析:从硬件初始化到链路稳定的5个关键阶段 本文详细解析了UFS Link Startup的全流程,从硬件初始化到链路稳定的5个关键阶段,包括初始化阶段、数据通道发现、数据通道重新对齐、链路启动收尾和能力交换阶段。通过时序分析、代码实现和实际案例,帮助开发者掌握UFS协议链路启动的技术细节,确保设备与主机之间的可靠通信。 阅读详情

1、堆和栈什么区别?

    答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生memory leak。

    2、数组和链表什么区别?

    答:数组是将元素在内存中连续存放,由于每个元素占用内存相同,可以通过下标迅速访问数组中任何元素。

    链表恰好相反,链表中的元素在内存中不是顺序存储的,而是通过存在元素中的指针联系到一起。

    3、delegate和notification什么区别,什么情况使用?

    答:Delegate:

    消息的发送者(sender)告知接收者(receiver)某个事件将要发生,delegate同意然然后发送者响应事件,

    delegate机制使得接收者可以改变发送者的行为。

    通常发送者和接收者的关系是直接的一对多的关系。

    Notification:

    消息的发送者告知接收者事件已经发生或者将要发送,仅此而已,接收者并不能反过来影响发送者的行为。

    通常发送者和接收者的关系是间接的多对多关系。

    4、什么是MVC,为什么使用MVC,有什么好处?

    答: 分别为: 模型(Model),视图(View)和控制Controller)。

    模型(Model) “数据模型”(Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。

    “模型”有对数据直接访问的权力,例如对数据库的访问。

    视图(View) 视图层能够实现数据有目的显示。

    控制器(Controller) 控制器起到不同层面间的组织作用,用于控制应用程序的流程。

    5、从一个数组中找出重复的元素打印出来

    NSArray *arr = [NSArrayarrayWithObjects:@"1",@"2",@"1",@"7",@"4",@"5",@"2",@"6",@"5",nil];

    NSMutableArray *arrmu = [[NSMutableArrayalloc]init];//过滤

    NSMutableArray *sameArray = [[NSMutableArrayalloc]init];//找出相同的

    for (int i = 0 ; i < [arrcount]; i++) {

    id str = [arr objectAtIndex:i];

    if ([arrmu count] == 0)

    {

    [arrmuaddObject:str];

    }

    else{

    BOOL flag = NO;

    for (int j = 0; j < [arrmucount]; j++ ) {

    if ([strisEqual:[arrmu objectAtIndex:j]])

    {

    [sameArrayaddObject:str];

    flag =YES;

    break;

    }

    else{

    flag =NO;

    }

    }

    if (flag == NO) {

    [ arrmuaddObject:str];

    }

    }

    }

    NSLog(@"sameArray : %@",sameArray);

    还有两种直接找出的方法,上代码:

    一:

    NSArray *arr = [NSArrayarrayWithObjects:@"1",@"2",@"1",nil];

    NSSet *set = [NSSetsetWithArray:arr];

    NSLog(@"%@",[setallObjects]);

    二:

    NSArray *arr =@[@1,@2,@1];

    NSMutableDictionary *dict = [NSMutableDictionarydictionary];

    for (NSNumber *numberin arr) {

    [dictsetObject:numberforKey:number];

    }

    NSLog(@"%@",[dictallValues]);

    6、UITableView能否绑定多个数据源?

    答:不能

    7、一个UIViewController能否管理多个UITableView ?

    答:可以

    8、ios4、5、6相对于之前的版本添加了哪些新特性?

    这个就比较多了,比如:抛弃谷歌地图 新推Maps应用 ,大幅加强中国本地化支持,Siri开口讲普通话,通过iCloud体验分享乐趣,Passbook电子票券管理,随时随地的FaceTime,电话功能增强,Safari支持全屏浏览,Mail应用新增VIP,万能辅助:更强大等等了

    9、同步请求和异步请求什么区别?

    答:发送同步请求,程序将停止用户交互,直至服务器返回数据完成,才可以进行下一步操作,

    异步请求不会阻塞主线程,而会建立一个新的线程来操作,用户发出异步请求后,依然可以对UI进行操作,程序可以继续运行。

    10、iOS中的多线程操作、多线程方式

    答:iOS提供了方便的多线程调用机制:NSOperation和NSOperationQueue。它的使用方法也很简单,

    一般都是将NSOperation对象加入到NSOperationQueue队列中,加入后队列就开始处理,知道任务操作完成。

    11、UIViewController的生命周期

    答:当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序

    // 视图显示在屏幕上的顺序

    1、 alloc          创建对象,分配空间。

    2、init (initWithNibName)  初始化对象,初始化数据。

    3、loadView         从nib载入视图, 这一步不需要去干涉。除非没有使用xib文件创建视图。

    4、viewDidLoad        加载完毕,可以进行自定义数据以及动态创建其他控件。

    5、viewWillAppear      视图将出现在屏幕之前,马上这个视图即将显示在屏幕上。

    6、viewDidAppear       视图已在屏幕上渲染完成。

    // 视图将被从屏幕上移除的顺序

    1、viewWillDisappear     视图将被从屏幕上移除之前执行。

    2、viewDidDisappear     视图已经被从屏幕上移除。

    3、dealloc          视图被销毁,此时需要在init和viewDidLoad中创建的对象进行释放。

    4、viewDidUnload       出现内存警告在内存不足时执行,并对所有非当前显示的controller执行。

    本视图的所有子视图将被销毁,以释放内存,此时开发者需要手动对viewLoad、viewDidLoad中创建的对象释放内存。

    因为当这个视图再次显示在屏幕上的时候,viewLoad、viewDidLoad 再次被调用,以便再次构造视图。

    12、Autorerelease对象什么时候释放?

    答:autorelease实际上只是把对release的调用延迟了,对于每一个Autorelease,系统只是把该Object放入了当前的Autorelease pool中,当该pool被释放时,该pool中的所有Object会被调用Release。

    13、iOS数据持久化方式

    答:四种:属性列表、对象归档、SQLite3和Core Data

    14、Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?

    答:Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况用分类好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系。

    15. #import 跟#include 又什么区别,@class呢, #import<> 跟 #import”"又什么区别?

    答:#import是Objective-C导入头文件的关键字,#include是C/C++导入头文件的关键字,使 用#import头文件会自动只导入一次,不会重复导入,相当于#include和#pragma once;@class告诉编译器某个类的声明,当执行时,才去查看类的实现文件,可以解决头文件的相互包含;#import<>用来包含系 统的头文件,#import””用来包含用户头文件。

    16.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况下用?

    答:readwrite 是可读可写特性;需要生成getter方法和setter方法时

    readonly 是只读特性 只会生成getter方法 不会生成setter方法 ;不希望属性在类外改变

    assign 是赋值特性,setter方法将传入参数赋值给实例变量;仅设置变量时;

    retain 表示持有特性,setter方法将传入参数先保留,再赋值,传入参数的retaincount会+1;

    copy 表示赋值特性,setter方法将传入对象复制一份;需要完全一份新的变量时。

    nonatomic 非原子操作,决定编译器生成的setter getter是否是原子操作,atomic表示多线程安全,一般使用nonatomic

    17.常见的object-c的数据类型有那些, 和C的基本数据类型有什么区别?如:NSInteger和int

    答:object-c的数据类型有 NSString,NSNumber,NSArray,NSMutableArray,NSData等等,这些都是class,创建后便是对象,而C语言的基本数据类型int,只是一定字节的内存空间,用于存放数值;而object-c的NSNumber包含有父类NSObject的方法和 NSNumber自己的方法,可以完成复杂的操作。

    18.Objective-C如何对内存管理的,说说你的看法和解决方法?

    答:Objective-C的内存管理主要有三种方式ARC(自动内存计数)、手动内存计数、内存池。

    解决方法的话: 谁持有,谁释放。

    19.如何对iOS设备进行性能测试?

    答:Profile-> Instruments ->Time Profiler

    20.Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?

    答:线程创建有三种方法:使用NSThread创建、使用 GCD的dispatch、使用子类化的NSOperation,然后将其加入NSOperationQueue;在主线程执行代码,方法是 performSelectorOnMainThread,如果想延时执行代码可以用performSelector:onThread:withObject:waitUntilDone:

    21.描述一下iOS SDK中如何实现MVC的开发模式

    答:MVC是:模型--视图--控制 开发模式,对于iOS SDK,所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。所有的用户数据都是模型层,它应该独立于视图。所有的ViewController都是控制层,由它负责控制视图,访问模型数据。

    22.定义属性时,什么情况使用copy、assign、retain?

    答:assign用于简单数据类型,如NSInteger,double,bool, 其实还有后面的block等;

    retain和copy用于对象,copy用于当a指向一个对象,b也想指向同样的对象的时候,如果用assign,a如果释放,再调用b会crash,如果用copy 的方式,a和b各自有自己的内存, 就可以解决这个问题。

    retain 会使计数器加一,也可以解决assign的问题。

    另外:atomic和nonatomic用来决定编译器生成的getter和setter是否为原子操作。在多线程环境下,原子操作是必要的,否则有可能引起错误的结果。

    加了atomic,setter函数会变成下面这样:

    if (property != newValue) {

    [property release];

    property = [newValue retain];

    }

    23. Object-C有私有方法吗?私有变量呢?

    答:objective-c – 类里面的方法只有两种, 静态方法和实例方法,所有实例变量默认都是私有的,所有实例方法默认都是公有的。

    24.浅拷贝和深拷贝区别是什么

    答:浅拷贝:只复制指向对象的指针,而不复制引用对象本身。

    
深拷贝:复制引用对象本身。

    25.自动释放池是什么,如何工作

    答: 当您向一个对象发送一个autorelease消息时,Cocoa就会将该对 象的一个引用放入到最新的自动释放池。

    它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,

    自动释放池就会被释放,池中的所有对象也就被释放。

    26.单件实例是什么

    答: Foundation 和 Application Kit 框架中的一些类只允许创建单件对象,即这些类在当前进程中的唯一实例。

    举例:NSFileManager 和NSWorkspace类在使用时都是基于进程进行单件对象的实例化。

    当向这些类请求实例的时候,它们会向您传递单一实例的一个引用,如果该实例还不存在,则首先进行实例的分配 和初始化。

    27.类别的作用?继承和类别在实现中有何区别?

    答:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。


    并且如果类别和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。
类别主要有3个作用:

    
(1)将类的实现分散到多个不同文件或多个不同框架中。


    (2)创建对私有方法的前向引用。

    
(3)向对象添加非正式协议。


    继承可以增加,修改或者删除方法,并且可以增加属性。

    28.类别和类扩展的区别。

    答:category和extensions的不同在于 后者可以添加属性。另外后者添加的方法是必须要实现的。
extensions可以认为是一个私有的Category。

    29.KVO and KVC?


    答:kvc:键 - 值编码是一种间接访问对象的属性,使用字符串来标识属性,而不是通过调用存取方法,直接或通过实例变量访问的机制。
很多情况下可以简化程序代码。apple文档其实给了一个很好的例子。
kvo:键值观察机制,他提供了观察某一属性变化的方法,极大的简化了代码。
具体用看到用到过的一个地方是对于按钮点击变化状态的的监控。
比如我自定义的一个button
[cpp]

    
[self addObserver:self forKeyPath:@"highlighted" options:0 context:nil]; 
 


    
#pragma mark KVO 


    
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{

    
  if ([keyPath isEqualToString:@"highlighted"] ) { 


    [self setNeedsDisplay]; 


    }

    }

    对于系统是根据keypath去取的到相应的值发生改变,理论上来说是和kvc机制的道理是一样的。
对于kvc机制如何通过key寻找到value:
“当通过KVC调用对象时,比如:[self valueForKey:@”someKey”]时,程序会自动试图通过几种不同的方式解析这个调用。首先查找对象是否带有 someKey 这个方法,如果没找到,会继续查找对象是否带有someKey这个实例变量(iVar),如果还没有找到,程序会继续试图调用

    -(id) valueForUndefinedKey:这个方法。如果这个方法还是没有被实现的话,程序会抛出一个NSUndefinedKeyException异常错误。


    
(cocoachina.com注:Key-Value Coding查找方法的时候,不仅仅会查找someKey这个方法,还会查找getsomeKey这个方法,前面加一个get,或者_someKey以及_getsomeKey这几种形式。同时,查找实例变量的时候也会不仅仅查找someKey这个变量,也会查找_someKey这个变量是否存在。)
 
设计valueForUndefinedKey:方法的主要目的是当你使用-(id)valueForKey方法从对象中请求值时,对象能够在错误发生前,有最后的机会响应这个请求。这样做有很多好处,下面的两个例子说明了这样做的好处。“
来至cocoa,这个说法应该挺有道理。

    
因为我们知道button却是存在一个highlighted实例变量.因此为何上面我们只是add一个相关的keypath就行了,

    
可以按照kvc查找的逻辑理解,就说的过去了。

    30.代理的作用?

    答:代理的目的是改变或传递控制链。允许一个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针。可以减少框架复杂度。
另外一点,代理可以理解为java中的回调监听机制的一种类似。

    31.说说响应链


    答: 事件响应链。包括点击事件,画面刷新事件等。在视图栈内从上至下,或者从下之上传播。

    32.frame和bounds有什么不同?


    答:frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统)
bounds指的是:该view在本身坐标系统中 的位置和大小。(参照点是本身坐标系统)

    33.方法和选择器有何不同?


    答:selector是一个方法的名字,method是一个组合体。

    34.Object-c的类可以多重继承么?可以实现多个接口么?重写一个类的方式用继承好还是分类好?为什么?

    答:Objective-c只支持单继承,如果要实现多继承的话,可以通过类别和协议的方式来实现,cocoa 中所有的类都是NSObject 的子类,多继承在这里是用protocol 委托代理 来实现的。

    35.ARC自动引用技术

    答:1.ARC是编译特性,不是运行时特性,只是在编译的时候,编译器会自动加上释放代码

    2.不能调用release、retain、autorelease、retainCount

    3.dealloc注意

    1> 不能在dealloc中调用[super dealloc]

    2> 不能在dealloc中释放资源

    4.@property参数说明

    1> retain 改为 strong

    2> 基本数据类型(int\float)还是用assign

    3> copy 还是 copy

    4> 如果2个对象循环引用,一端用strong,一端用weak

    5> weak是用在对象上,weak其实作用跟assign相当

    5.ARC中只允许使用通过@autoreleasepool {}创建自动释放池

    36 GCD技术

    答:Grand Central Dispatch简称GCD 解决多核并行运算的一种方案

    看代码就行:

    // Grand Central Dispatch简称GCD技术

    // Do any additional setup after loading the view.

    //  dispatch_queue_t newDispath = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

    //  dispatch_async(newDispath, ^{

    //    [self downloadImage];

    //  });

    //  #defineDISPATCH_QUEUE_PRIORITY_HIGH 2

    //  #defineDISPATCH_QUEUE_PRIORITY_DEFAULT 0

    //  #defineDISPATCH_QUEUE_PRIORITY_LOW (-2)

    //  #defineDISPATCH_QUEUE_PRIORITY_BACKGROUNDINT16_MIN

    /*dispatch queue分为下面三种:

    * Serial:又称为private dispatch queues,同时只执行一个任务。Serial queue通常用于同步访问特定的资源或数据。当你创建多 个    Serial queue时,虽然它们各自是同步执行的,但Serial queue与Serial queue之间是并发执行的。

    * Concurrent: 又称为global dispatch queue,可以并发地执行多个任务,但是执行完成的顺序是随机的。

    * Main dispatch queue它是全局可用的serial queue,它是在应用程序主线程上执行任务的

    */

    // 一般GCD 可以如下操作

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{

    // 耗时的操作

    dispatch_async(dispatch_get_main_queue(), ^{

    // 更新界面

    });

    });

    [selfexampleDispatch];

    /*

    *系统给每一个应用程序提供了三个concurrent dispatch queues。

    *这三个并发调度队列是全局的,它们只有优先级的不同。

    *因为是全局的,我们不需要去创建。我们只需要通过使用函数dispath_get_global_queue去得到队列

    */

    dispatch_queue_t globalQ =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);

    NSLog(@"global:%p",globalQ);

    dispatch_queue_t mainQ =dispatch_get_main_queue();

    NSLog(@"mainQ:%p",mainQ);

    /*

    *虽然dispatch queue是引用计数的对象,但是以上两个都是全局的队列,不用retain或release。

    */

    /*

    *dispatch_group_async可以实现监听一组任务是否完成,完成后得到通知执行其他的操作。

    *这个方法很有用,比如你执行三个下载任务,当三个任务都下载完成后你才通知界面说完成的了。

    */

    timeInt = 0;

    [NSTimerscheduledTimerWithTimeInterval:1

    target:self

    selector:@selector(checkingTime)

    userInfo:nil

    repeats:YES];

    [selfexampleDispath_group];

    /*dispatch_barrier_async的使用

    *dispatch_barrier_async是在前面的任务执行结束后它才执行,而且它后面的任务等它执行完成之后才会执行

    */

    [selfexampleDispatch_barrier];

    /*dispatch_apply

    *执行某个代码片段N次。

    */

    dispatch_apply(5, globalQ, ^(size_t index) {

    // 执行5次

    });

5分钟用AI搞定顶刊级引言!掌握三段式结构+避坑要点,让你的Introduction更有说服力(附提示词) 说明你是怎么来填补这个缺口的,一句话概括你的研究,再简述你采用了什么新方法、新模型或新视角,也就是创新点,最后说明你的方案是怎么克服第二段提到的缺口的,带来了哪些贡献,注意要确保方案与第二段提到的缺口一一对应。以上三段式引言模板,是非常经典的问题导向型结构,相比传统的结构,这种结构更能吸引是审稿人的注意,希望这篇分享的模板能给在你写论文引言时,提供一点帮助。上一段写好后,就在前人研究的基础上,亮出自己的方案,借助AI说明自己的研究,用了什么新方法/框架/理论/视角来填补这个缺口的。 阅读详情

相关推荐

从仿真到部署:基于ROS2与Gazebo的UR5e机械臂全流程控制实践

本文详细介绍了基于ROS2与Gazebo的UR5e机械臂全流程控制实践,从环境准备、模型构建到控制器开发和仿真优化,最终实现真实机器人部署。通过实战案例和避坑指南,帮助开发者掌握机器人仿真与控制的关键技术,提升UR5e机械臂在物料分拣等任务中的性能与稳定性。

weixin_29184371的博客 288

Windows10 中 Apple 云盘 iCloud Drive 默认在 C 盘下的存储目录迁移到其他盘符的指定目录

Apple 的云盘 iCloud Drive 的默认存储目录是 C 盘的用户目录下的的 iCloudDrive 文件夹,如“C:\Users\用户名\iCloudDrive”,但是随着在 iCloud 云盘中存储文件数量的增多,C 盘空间明显力不从心了,所以考虑将 C 盘中的默认存储目录迁移到其他数据盘符下,但是 iCloud 设置中并没有这一选项,因此考虑使用“符号链接”的方法 mklink 符...

sdnuwjw的博客 1万+

080、多轴运动控制:插补器设计(螺旋线插补)

本文分享了螺旋线插补器设计的实战经验。针对五轴点胶机Z轴抖动问题,作者分析了螺旋线数学本质,提出基于归一化时间参数的速度规划方法,强调各轴严格同步的重要性。文章详细介绍了速度分解、加减速处理、嵌入式优化技巧(查表法、定点化),并总结了起点闭合、速度波动、数值处理等常见问题解决方案。最后给出5条实用建议:注重速度规划而非纯数学推导、预先仿真、保留调试接口、考虑机械谐振、防范编码器丢脉冲。通过优化插补周期、电子齿轮比和S形速度曲线,成功将设备良率从60%提升至95%。

m0_50546716的博客 85

iOS 面试题--转自唐巧

iOS 面试题(一)寻找最近公共 View 题目:找出两个 UIView 的最近的公共 View,如果不存在,则输出 nil 。 分析:这其实是数据结构里面的找最近公共祖先的问题。 一个UIViewController中的所有view之间的关系其实可以看成一颗树,UIViewController的view变量是这颗树的根节点,其它的view都是根节点的直接或间接子节点。

david21984的专栏 1万+

图机器学习(1)——图论基础

图 (Graph) 是一种描述实体间关系的数学结构,几乎在各个领域都有应用。例如,社交网络就是图,其中用户之间的连接取决于一个用户是否“关注”另一个用户。图论,即对图的研究,一直以来广受关注,包含了大量算法、性质分析方法和数学模型,以解析复杂系统的行为特征。本节将介绍图数据结构的核心概念,通过理论阐述与实例演示相结合的方式,理解基础理论用以实践应用。重点介绍用于创建、操作和研究复杂网络结构与功能的 Python 库。

盼小辉丶的博客 9083

[系统安全] 十七.Windows PE病毒概念、分类及感染方式详解

作者前文介绍了PE文件格式,熟悉各种PE编辑查看工具,针对目标EXE程序新增对话框等;这篇文章将介绍Windows PE病毒, 包括PE病毒原理、分类及感染方式详解,并通过案例进行介绍。这些基础性知识不仅和系统安全相关,同样与我们身边的APP、常用软件及操作系统紧密联系,希望这些知识对您有所帮助,更希望大家提高安全意识,安全保障任重道远。本文参考了《软件安全》视频、安全网站和参考文献中的文章,并结合自己的经验和实践进行撰写,也推荐大家阅读参考文献。

杨秀璋的专栏 1万+

iOS面试题(转自网络)

随着iOS平台开发的职位的增加,笔试、面试也越来越有“套路”,这里我总结了一些面试题,多数是Objective-C的基础知识,适合于面试新人,答案是我自己答的,不准确的地方,欢迎指出。 1.   Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承;可以实现多个接口,通过

呆萌院长 1452

Mac安装Typescript报错

根本原因是系统级目录的权限限制。推荐通过修改目录权限或使用nvm彻底解决问题。

江拥羡橙的博客 210

iOS经典面试题(转)

iOS经典面试题 前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看。我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖。整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人。所以在这里总结一下这几年面试别人和被别人面试遇到的一些我认为比较好的基础题目分享给大家,进阶题目在后续...

SharkArmy 63

openpi 入门教程(二)droid libero 训练、推理

OpenPI是由物理智能团队发布的机器人领域开源模型与软件平台,提供基于流扩散式(π₀)和自回归式(π₀-FAST)两类视觉-语言-动作模型。平台支持在DROID、ALOHA、UR5等多种机器人系统上部署,包含预训练检查点(1万+小时数据)和微调示例。文档详细说明了各平台部署流程:DROID需启动策略服务器并配置摄像头;ALOHA提供真实机器人任务(取吐司、叠毛巾等)的检查点和场景设置建议;UR5示例展示自定义数据转换方法。实验性验证显示π₀-FAST在LIBERO基准测试中平均得分85.5。平台强调模型适

2506_90492529的博客 1023

SAP-ABAP:字符与数值类型转换详细指南

SAP-ABAP:字符与数值类型转换详细指南

baidu_35680696的博客 1478

【转】 iOS经典面试题

原文地址:http://blog.cocoachina.com/article/13706 前言 写这篇文章的目的是因为前两天同学想应聘iOS开发,从网上找了iOS面试题和答案让我帮忙看看。我扫了一眼,倒吸了一口冷气,仔细一看,气的发抖。整篇题目30多个没有一个答案是对的,总结这篇面试题的作者对iOS机制根本就是一知半解就敢发到网上,不管有心还是无心都是坑害新人。所以在这里总结一下这几年

lin1109221208的博客 626

蓝桥杯 stm32 PWM 测量频率

参考 数据手册:比赛 的板子 上面有两个信号发生器,如下图。通过 扭动 可变电阻 (R40, R39), 来实现 PWM 频率的改变。PA15PB4。PA15,PB4分别使用TIM2_CH1TIM3_CH1来对频率进行捕获。

wuyiyu_的博客 2931

[iOS]转: iOS面试题

忘记了出处,侵删!!! #阿里一面 1.Android的activity 2.Category支持添加属性与成员变量吗 3.是否了解设计模式, 用过哪些 4.iOS7之后, 蓝牙的围栏功能 5.MVC是否了解?介绍下使用情况。 6.MVC里面, View怎么通知到Model 7.了解delegate吗?并介绍 8.说说Cell重用原理 9.异步下载如何实现 1...

weixin_30498921的博客 156

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

[转]那些著名或非著名的iOS面试题(上)

1.如何追踪app崩溃率,如何解决线上闪退 当iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上。crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈跟踪信息和内存映像,这样就能够通过解析这些信息进而定位crash发生时的代码逻辑,从而找到App闪退的原因。通常来说,crash产生来源于两种问题:违反iOS系统规则导致的crash和App代码...

251

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

[转]招聘一个靠谱的iOS面试题

http://www.cocoachina.com/ios/20150803/12872.htmlhttp://www.cocoachina.com/ios/20150825/13195.html

labixiaoxin1019的博客 320

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

[转]那些著名或非著名的iOS面试题(中)

1. 反转二叉树,不用递归 1 2 3 4 5 6 7 8 9 /** *Definitionforabinarytreenode. *publicclassTreeNode{ *intval; *TreeNodeleft; *TreeNoderight; ...

207

ios-阿里P6面试题(转)

http://www.cocoachina.com/ios/20171129/21362.html 确实不愧是阿里的面试题,很多题看着很基础,有很多可以答的,但是真的要说的很全面,很准确还是有很高的难度。更多的偏向于原理和底层,尽管我们不一定能去阿里面试,但是作为技术人员,要时刻保持学习的心态才能成长,共勉!

知更鸟CoolLee的博客 3115

[转]ios面试题收集(二)

1.Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 2.#import 跟#include 又什么区别,@class呢;#import<> 跟 #import”"又什么区别? 3.属性readwrite,readonly,assign,retain,copy,nonatomic 各是什么作用,在那种情况...

weixin_34246551的博客 76

2017年5月iOS面试题答案总结(转)

2017年5月iOS面试题答案总结(基础篇)

愤怒小鸟的博客 1255

《招聘一个靠谱的iOS》面试题及参考答案(上)--转

《招聘一个靠谱的iOS》面试题参考答案(上)– 转

愤怒小鸟的博客 496

[转]超全!iOS 面试题汇总

转自:http://www.cocoachina.com/programmer/20151019/13746.html 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;Category是类别,一般情况...

weixin_30745641的博客 233
上一篇: 【转】ios字符串编码转换(utf-8 & gbk)问题
下一篇: UIWindow & UIWindowLevel笔记
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值