最近在看cocos2d-x 但不知道如何下手,于是先看一下他编译的完成的testcpp的源码.发现了下面一段程序 typedef CCLayer* (*NEWTESTFUNC)(); #define TESTLAYER_CREATE_FUNC(className) \ static CCLayer* create##className() \ { return new className(); } #define CF(className) create##className #define 用…
本文向大家展示了java阻塞队列的使用场景.源码分析及特定场景下的使用方式.java的阻塞队列是jdk1.5之后在并发包中提供的一组队列,主要的使用场景是在需要使用生产者消费者模式时,用户不必再通过多线程自己实现,可以通过阻塞队列直接实现消息的分发和消费,方便简单,降低了开发难度,在本章的最后,我们在分析阻塞队列源码时,也会有demo展示因为对代码的不了解而错误的使用阻塞队列时的灾难情况.下面列举出了所有实现BlockingQueue接口的队列:ArrayBlockingQueue.Linked…
caffe web demo学习 1.运行 安装好caffe后,进入/opt/caffe/examples/web_demo/的caffe web demo项目目录,查看一下app.py文件,这是一个flask编写的网站 查看readme.md了解该项目,查看requirements.txt了解所需的python包 然后运行该项目:python app.py,发现报错 class_labels_file is missing 网上说还需要下载一些data,运行下面两条命令: 确保已经下载了 Re…
本章内容会针对比原官方提供的dapp-demo,分析里面的前端源码,分析清楚整个demo的流程,然后针对里面开发过程遇到的坑,添加一下个人的见解还有解决的方案. 储蓄分红合约简述 为了方便理解,这里简单说说储蓄分红合约的内容,具体可以查看储蓄分红合约详细说明,储蓄分红,顾名思义就是储蓄之后,当达到一定的时间,按照比例返回本息这样的意思,所以demo中拆分成saving(储蓄)与profit(提现)两个页面,本章内容是针对合约交易的提交,所以只针对储蓄页面说明. 比原官方Dapp-demo使用说明…
本文中所使用的demo源码地址:https://github.com/mantuliu/javaAdvance 其中的类Lesson1ThreadLocal 本文为java晋级系列的第一讲,后续会陆续推出java相关的高级应用和分析.我个人一直都比较推崇threadlocal的设计原理和实现方式.以下关于threadlocal的描述来源于百度百科: ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”.其实,ThreadLocal并不是一个Thread,而是Thread的局部…
define = function (name, deps, callback) {     var node, context; //Allow for anonymous modules     if (typeof name !== 'string') {         //Adjust args appropriately         callback = deps;         deps = name;         name = null;     } //This mo…
对于springAOP的源码分析,我打算分三部分来讲解:1.配置文件的解析,解析为BeanDefination和其他信息然后注册到BeanFactory中:2.为目标对象配置增强行为以及代理对象的生成,可以理解为AOP的准备阶段:3.代理对象调用方法,增强行为的触发执行,此时是AOP生效的阶段.我们可以把1,2理解为IOC阶段:2,3理解为AOP阶段. 我们先看第一部分:BeanDefination的解析注册过程 由一个demo进入源码分析,创建一个接口UserDao public interf…
ASimpleCache里只有一个JAVA文件——ACache.java,首先我用思维导图制作了ACache类的详细结构图: 通过分析官方给的demo来驱动源码分析吧 以字符串存储为例(官方给的demo里给出了很多种数据读取的例子,其实方法相似),打开SaveStringActivity.java: import org.afinal.simplecache.ACache; import android.app.Activity; import android.os.Bundle; import…
先简单介绍一下quartz,Quartz是一个功能丰富的开源作业调度库,可以集成到几乎任何Java应用程序中 - 从最小的独立应用程序到最大的电子商务系统.quartz可用于创建执行数十,数百甚至数十万个作业的简单或复杂的计划; 任务定义为标准Java组件的任务,可以执行任何可以对其进行编程的任何内容.Quartz Scheduler包含许多企业级功能,例如支持JTA事务和集群. 以上内容来自quartz官网. 1源码分析 我们会针对quartz的几个主要类进行分析,看一下quartz是如何实现…
JDK动态代理实现方式 在Spring框架中经典的AOP就是通过动态代理来实现的,Spring分别采用了JDK的动态代理和Cglib动态代理,本文就来分析一下JDK是如何实现动态代理的. 在分析源码之前我们先通过一个简单的例子看看JDK是如何实现动态代理的. JDK的动态代理是基于接口实现的,所以我们被代理的对象必须有一个接口(后面我们会分析为什么是基于接口实现的) public interface UserService { /** * 显示一下用户信息 * @param userId */…