<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[编程之道，自强之路！]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Jofranks</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Jofranks]]></copyright><item><title><![CDATA[字节跳动校园招聘]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/96141915</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/96141915</guid><author>Jofranks</author><pubDate>Tue, 16 Jul 2019 15:36:57 +0800</pubDate><description><![CDATA[先贴三个群：











头条研发

链接：https://www.nowcoder.com/discuss/206327
来源：牛客网


【投递邮箱】 silence007pp@163.com (如有问题咨询，也可发邮件，会一一解答)

【简历命名】毕业时间- 姓名 - 岗位 - 地点 -学校



【头条研发内推】校招提前批，研发岗专场！

【关于我们】我们是字节跳动...]]></description><category></category></item><item><title><![CDATA[贝叶斯规则]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/78343256</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/78343256</guid><author>Jofranks</author><pubDate>Wed, 25 Oct 2017 16:42:00 +0800</pubDate><description><![CDATA[贝叶斯基本概念
贝叶斯原理解析
贝叶斯推导
贝叶斯基本应用]]></description><category></category></item><item><title><![CDATA[cocos2dx 运动+旋转动画  CCSequence CCAnimation CCAnimate CCMoveTo CCCallFuncN]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/38711909</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/38711909</guid><author>Jofranks</author><pubDate>Wed, 20 Aug 2014 20:54:32 +0800</pubDate><description><![CDATA[cocos2dx 动画是个很神奇的东西~~， 这里看到的是一个物体，在运动的过程中会不断地翻转的过程。    两个动画一起来~~




下面的代码中涉及到：CCAnimation（补间动画 ）  CCAnimate（动画）  CCDelayTime（延迟动作）  CCFadeTo（设置透明态度） CCSequence（动作序列）  CCSpawn（让精灵的若干个动画同时执行）  CCR]]></description><category></category></item><item><title><![CDATA[cocos2dx 内存管理]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/38682483</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/38682483</guid><author>Jofranks</author><pubDate>Tue, 19 Aug 2014 15:34:53 +0800</pubDate><description><![CDATA[内存管理中经常遇到的问题：内存泄露，内存溢出。





在cocos2dx中用的是引用计数和自动释放池的技术，由于熟悉objective-c语言，所以对这两个概念不会很陌生。



一、引用计数

     引用计数是自动内存管理的基础：在对象里增加一个引用计数，当外部引用增加时，计数器加1，当外部引用消失时，计数器减1 。

看一下CCObject源码：

cl]]></description><category></category></item><item><title><![CDATA[cocos2dx 启动过程详解二：内存管理和回调]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/38682459</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/38682459</guid><author>Jofranks</author><pubDate>Tue, 19 Aug 2014 15:33:23 +0800</pubDate><description><![CDATA[在上一篇的第二部分中，我们有一句代码待解释的：

// Draw the Scene
void CCDirector::drawScene(void)
{
……
    //tick before glClear: issue #533
if (! m_bPaused) //暂停
{
m_pScheduler->update(m_fDeltaTime);   //待会会解释这里的]]></description><category></category></item><item><title><![CDATA[cocos2dx 启动过程详解一：渲染]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/38682419</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/38682419</guid><author>Jofranks</author><pubDate>Tue, 19 Aug 2014 15:30:10 +0800</pubDate><description><![CDATA[今天来看一下cocos2d-x的整体启动过程：



cocos2d-x 在各个平台的实现代码是一样的，只要针对不同平台做相应的配置就可以了。

一、启动前奏

现在来看一下在ios平台下的相关结构：

打开源代码自带工程，你会看到一个main文件，这里main里面有一个main函数，这是程序的入口函数。在这里他回加载AppController，进入这个类，这里有ios平台华景]]></description><category></category></item><item><title><![CDATA[XMPP入门]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/37602551</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/37602551</guid><author>Jofranks</author><pubDate>Wed, 09 Jul 2014 17:44:04 +0800</pubDate><description><![CDATA[本人原创，更多xmpp知识、ios知识、其他分享知识见：我的个人博客




简介：

1、XMPP是可扩展消息与存在协议，主要用于im。
2、他是一种类似于http协议的数据传输协议，过程如：“解包装—>包装”过程。
3、在XMPP中，有三个角色：客户端，服务器，网关。  在三者之间可以进行任意两两通信。服务器承担客户端信息记录，连接管理和信息的路由功能。网关承担与异构即时通信]]></description><category></category></item><item><title><![CDATA[Grand Central Dispatch（GCD）]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/21933283</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/21933283</guid><author>Jofranks</author><pubDate>Mon, 24 Mar 2014 09:40:47 +0800</pubDate><description><![CDATA[GCD     
GCD是异步执行任务的技术之一。
GCD使用很简洁的记述方法，实现了极为复杂繁琐的多线程编程。
dispatch_async(queue, ^{
     //长时间处理
     //例如AR用动画识别
     //例如数据库访问
     //长时间处理结束，主线程使用该处理结果
     dispatch_async( dispatch_get_main_]]></description><category></category></item><item><title><![CDATA[【IOS学习】之九、Blocks的实现再续]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/21817555</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/21817555</guid><author>Jofranks</author><pubDate>Sat, 22 Mar 2014 18:55:30 +0800</pubDate><description><![CDATA[__block变量和对象


__block id obj = [];
__block id __strong obj = [];
上述两行代码是等同的，ARC有效的时候，id类型以及对象类型变量必定会附加所有权修饰符，缺省为附有__strong修饰符。
看一下clang转换的代码：
//__block变量用结构体部分
struct __Block_byref_obj_0 {
 ]]></description><category></category></item><item><title><![CDATA[【IOS学习】之九、Blocks的实现续]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/21817323</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/21817323</guid><author>Jofranks</author><pubDate>Sat, 22 Mar 2014 18:53:08 +0800</pubDate><description><![CDATA[Blocks的存储域
Block和__block变量的实质就是 在栈上的结构体实例。   如：__block变量实质是 栈上__block变量的结构体实例。
其中Block也是oc的对象，该OC的类为：_NSConcreteStackBlock。 虽然该类并没有出现在源码，但是有很多与之类似的类：
_NSConcreteStackBlock     它的对象Block设置在栈上
_NSCo]]></description><category></category></item><item><title><![CDATA[【IOS学习】之八、Blocks的实现]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/21448849</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/21448849</guid><author>Jofranks</author><pubDate>Tue, 18 Mar 2014 11:20:04 +0800</pubDate><description><![CDATA[我们先来转换一个简单的block代码：
源： 
int main() {
               void (^blk)(void) = ^{printf();};
               blk();
               return 0;
        }

struct __block_impl {
     void *isa;
     int Flags]]></description><category></category></item><item><title><![CDATA[【ios学习】之七、Blocks简介]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/21447979</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/21447979</guid><author>Jofranks</author><pubDate>Tue, 18 Mar 2014 11:08:00 +0800</pubDate><description><![CDATA[blocks
blocks是c语言的扩充，他是：带有自动变量(局部变量)的匿名函数。
这个概念叫做：闭包。如python中的lambda，在c++11中也引入了lambda；
维基百科中关于闭包：闭包（Closure）是词法闭包（Lexical
 Closure）的简称，是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在，即使已经离开了创造它的环境也不例外。所以，有另一种说法]]></description><category></category></item><item><title><![CDATA[【IOS学习】之六、ARC规则]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/21447057</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/21447057</guid><author>Jofranks</author><pubDate>Tue, 18 Mar 2014 11:00:10 +0800</pubDate><description><![CDATA[引用计数式的内存管理   在arc中是没有改变的。
在arc中，有有效和无效两种方式，我们可以在一个app中混合使用。


使用clang(LLVM编译器)或者以上版本，指定编译器属性为："-fobjc-arc"就可以使用arc；


在oc中，引用计数式的内存管理的思考方式就是思考arc所引起的变化：
1、自己生成的对象，自己持有。
2、非自己生成的对象，自己也能持有。
3、]]></description><category></category></item><item><title><![CDATA[【IOS学习】之五：引用计数]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/21244625</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/21244625</guid><author>Jofranks</author><pubDate>Fri, 14 Mar 2014 18:28:40 +0800</pubDate><description><![CDATA[arc  automatic reference counting   内存管理中对引用采取自动计数。



apple官方文档：    在oc中采用arc机制，让编译器来进行内存管理，在新一代apple llvm编译器中设置arc为有效状态，就无需再次键入retain或release代码，降低程序崩溃，内存泄露等风险的同时，很大程度上减少了开发程序的工作量。编译器完全清楚目标对象，并能立]]></description><category></category></item><item><title><![CDATA[【IOS学习】之四、协议，委托，分类粗解]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/19964001</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/19964001</guid><author>Jofranks</author><pubDate>Wed, 26 Feb 2014 09:38:09 +0800</pubDate><description><![CDATA[何为协议，何为委托，何为分类(类别)？
委托  即 代理 delegate：

 
他是 (接口的实现类)类似c中的回调。

        把某个对象要做的事情委托给别的对象去做。 那么别的对象就是这个对象的代理，来代替他处理要做的事情。
在code中，首先你要明确一个对象的委托方是谁，委托的内容是什么。


         在mfc中，每个程序都要继承自cwinapp，就]]></description><category></category></item><item><title><![CDATA[【C\C++学习】之十八、C++11六大函数（构造函数，移动构造函数，移动赋值操作符，复制构造函数，赋值操作符，析构函数）]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/17438955</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/17438955</guid><author>Jofranks</author><pubDate>Fri, 20 Dec 2013 21:18:00 +0800</pubDate><description><![CDATA[在C++中，有三大函数复制控制（复制构造函数，赋值操作符，析构函数），而在C++11中，加入了移动构造函数，移动赋值操作符。我就斗胆将他们命名为六大函数好了。
一、构造函数
c++primer中说过：构造函数是特殊的成员函数，只要创建类类型的新对象，都要执行构造函数。构造函数的工作就是保证每个对象的数据成员具有合适的初始值。
构造函数与其他函数不同：构造函数和类同名，没有返回类型。
构造函]]></description><category></category></item><item><title><![CDATA[【C/C++学习】之十七、C++11中我们需要关注的]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/17375061</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/17375061</guid><author>Jofranks</author><pubDate>Thu, 19 Dec 2013 17:03:29 +0800</pubDate><description><![CDATA[学了这么久c++，现在来看一下c++新标准：C++11
他的设计目标是：
1.使得c++成为更好的适用于系统开发及库开发的语言。
2.使得c++成为更易于教学的语言。
3.保证语言的稳定性，以及和C++03及c语言的兼容性。
c++11 的增强点，主要包括：
1.通过内存模型，线程，原子操作等来支持本地并行编程。]]></description><category></category></item><item><title><![CDATA[【啊哈，算法】之十、后缀数组，求最长重复子串]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/11877721</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/11877721</guid><author>Jofranks</author><pubDate>Sat, 21 Sep 2013 18:14:06 +0800</pubDate><description><![CDATA[转自：http://blog.youkuaiyun.com/hackbuteer1/article/details/7968623


直观的解法是，首先检测长度为 n - 1 的字符串情况，如果不存在重复则检测 n - 2, 一直递减下去，直到 1 。
这种方法的时间复杂度是 O(N * N * N)，其中包括三部分，长度纬度、根据长度检测的字符串数目、字符串检测。


利用后缀数组
后缀数]]></description><category></category></item><item><title><![CDATA[【啊哈，算法】之九、后缀数组，字符串中连续出现最多的字串]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/11875429</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/11875429</guid><author>Jofranks</author><pubDate>Sat, 21 Sep 2013 17:08:37 +0800</pubDate><description><![CDATA[转载自：http://blog.youkuaiyun.com/ysu108/article/details/7795479
字符串“abababc”,最多连续出现的为ab，连续出现三次。要和求一个字符串中的最长重复子串区分开来，还是上面的字符串，那么最长的重复子串为abab。两个题目的解法有些类似，都用到了后缀数组这个数据结构。求一个字符串中连续出现的次数最多的子串，首先生成后缀数组例如上面的字符串为:
]]></description><category></category></item><item><title><![CDATA[Direct UI]]></title><link>https://blog.youkuaiyun.com/Jofranks/article/details/11853507</link><guid>https://blog.youkuaiyun.com/Jofranks/article/details/11853507</guid><author>Jofranks</author><pubDate>Fri, 20 Sep 2013 20:02:28 +0800</pubDate><description><![CDATA[有个坑爹的说法：其实Direct UI只是一个思想，要实现这个思想，还要靠自己。   


采用windowless方式用api或gdi实现ui的绘制。

DirectUI意为直接在父窗口上绘图(Paint on parent dc directly)。

子窗口不以窗口句柄的形式创建，只是逻辑上的窗口，绘制在父窗口之上。


DirectUI技术的实现步骤和难点：
1、窗口]]></description><category></category></item></channel></rss>