![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
总结整理
文章平均质量分 61
iteye_14888
这个作者很懒,什么都没留下…
展开
-
spring4 系列一 概览
零、前言java是静态类型语言,为了能达到动态类型语言的效果,需要支持1、控制反转(转给web容器):调用实现的地方写死在代码里不灵活,所以写在xml中。2、依赖注入:在需要的时候由容器来注入需要的对象,是具体被反转的东西3、aop:利用反射进行hack,对于原生支持函数式编程的语言来说根本不需要这种hack的机制4、java.lang.instrument 实现对jvm和c...原创 2017-05-03 14:28:24 · 162 阅读 · 0 评论 -
大数据、数据仓库和ETL
一、背景 大量原来线下的业务电子化之后,产生了很多的数据,这些数据除了能够支撑业务正常运转,也能够使分析人员针对整个企业的运转情况进行分析。比如,本周与上周相比销量增加还是减少了?原因是什么? 产品的库存周期长了还是短了?哪些产品需要及时补充库存?哪些供应商提供的商品,成本低、质量好、及时供货、客户比较喜欢?哪些地方的支出变多了?用户对我的产品满意吗?客户发生了哪些变化?需要招人吗?...原创 2018-07-27 20:50:52 · 3530 阅读 · 0 评论 -
mysql和存储引擎知识点整理
mysql和存储引擎知识点整理基本概念: 1、索引:为了快速查找(外存)而建立的数据结构。当数据很大时,因为可能本身很大,所以一般是存在外存的。 2、存储引擎:可以认为是mysql的后端,前端是sql解析和处理;中端是sql优化等 3、为什么b+树比红黑树好?b+树深度小,索引表的级数少,进而需要的磁盘io次数少(一次读出大量比多次读少量要快很多) ...原创 2016-06-15 14:36:53 · 95 阅读 · 0 评论 -
架构设计思考
架构设计思考 一个大项目需要有人做全局的架构设计,也就是需要所谓的架构师,通过几个项目的历练,现对架构的设计做一些思考的整理。一、架构设计要做的事情 1、横向切分抽象的层次和功能间的依赖关系,假设实现语言是java,产出可能是子工程、包名、子包名、接口名等。这一部分也涉及到选用哪些开源的组件或代码 2、纵向的切分子系统、子模块、服务等 3、各个部分间的交互和解耦,包括ser...2016-04-13 21:05:01 · 107 阅读 · 0 评论 -
netty学习总结
netty学习总结一、前言 原本高性能的server一般是用c写的,后来java提供了nio aio,所以现在用java来写也算是个可行的方案。二、高性能server要解决的问题 1、异步socket 2、异步IO 3、多协议支持(传输层之上) 4、减少内存碎片 5、减少锁的影响 ……三、netty的解决方案 1、使用java的nio,最好是aio(...2016-03-12 18:49:38 · 117 阅读 · 0 评论 -
mangos 的执行模型
mangos 的执行模型一、线程分布:1、主线程 main---- Master::Run() ,主要功能:初始化world、创建子线程、回收资源2、WorldRunnable -------GS主线程3、CliRunnable -----后台调试线程4、RARunnable -------事件处理和分发线程5、MaNGOSsoapRunnable---协议6、Free...原创 2012-06-21 00:13:44 · 101 阅读 · 0 评论 -
集成spiderMonkey
集成spiderMonkey文档 :https://developer.mozilla.org/En/SpiderMonkey/JSAPI_User_Guidehttps://developer.mozilla.org/en/How_to_embed_the_JavaScript_engine一、hello world基本流程: JS_NewRuntime JS...原创 2012-06-19 17:31:55 · 125 阅读 · 0 评论 -
Cocos2dx android 部分代码的理解
Cocos2dx android 部分代码的理解 一、概述 基本上是搭建了基本的android app的架子,并对一些系统相关的功能进行了封装二、java部分的细节1、入口是 Cocos2dxActivity = Cocos2dxHelper + Cocos2dxGLSurfaceView2、Cocos2dxHelper 封装系统相关的功能(声音、音效、资源、目录、压...原创 2013-12-25 15:38:20 · 127 阅读 · 0 评论 -
unity中的几个目录
一、androidApplication.dataPath /data/app/xxx.xxx.xxx.apkApplication.streamingAssetsPath jar:file:///data/app/xxx.xxx.xxx.apk/!/assetsApplication.persistentDataPath /data/data/...2015-07-09 11:41:14 · 224 阅读 · 0 评论 -
unity3d中的坑和解决方案
unity3d中的坑和解决方案 unity3d是一个很牛x的引擎,当然其也有一些东西是不太好或者说不习惯的,下面列举一些:1、制作特效时,使用animation记录的位置是相对位置,如果直接放到别的节点下会出问题; 解决方法:在特效根节点的上一层加上一个transform是(0,0,0) (0,0,0)(1,1,1)的父节点,之后再使用和处理父节点2、使用NGUI制...原创 2013-02-05 14:25:13 · 446 阅读 · 0 评论 -
继承环境下java初始化顺序
一、示例代码package javaDemo;class Parent {public static String p_StaticField1 = "父类--静态变量1";// 变量public String p_Field = "父类--变量";protected int i = 9;protected int j = 0;// 静态初始化块static...原创 2016-08-15 14:27:41 · 299 阅读 · 0 评论 -
多线程编程和java的抽象
java线程状态http://my.oschina.net/mingdongcheng/blog/139263死锁:彼此都在等对方释放的锁,结果永远等下去阻塞:因为缺少某个条件,导致让出了cpu,并且不再是就绪状态。类型分为等待阻塞(o.wait)对应waitting queue、同步阻塞(lock)对应lock pool、其他阻塞(sleep、join、同步IO,满足后自动变成就...原创 2016-08-30 17:04:43 · 123 阅读 · 0 评论 -
Dubbo源代码解析
一、Dubbo源代码层次结构common(io序列化、store、线程)+ cofig + 容器containerremoting 远端通信(TCP、编解码、buffer、req/resp、消息分发)->mina netty http p2p zookeeperRPC(协议、调用者、proxy、filter、tps)RMI、http、redis、memcached、inj...原创 2017-04-26 16:36:59 · 188 阅读 · 0 评论 -
计算理论
计算理论研究问题 :计算机的基本能力和局限性是什么? 一、概述1、计算复杂性 排序简单、排课表难,到底有多难?2、可计算性 某个问题到底能不能用计算机解决,数学命题的真假就不能3、自动机:描述什么是计算机(计算的形式化描述),即抽象的理想的计算机模型。有些模型能解决具体的问题,但是某些能解决通用的问题 二、 自动机 1、不用人参与,自己可以一直走下去...原创 2017-04-18 16:35:50 · 520 阅读 · 0 评论 -
python对于时间的抽象
datetime.date 包含year, month, day的日期 核心api: date.fromtimestamp(timestamp) 从时间戳来构造 timetuple() 生成时间数据结构 time.struct_time((year, month, day, 0, 0, 0, d.weekday(), yday, -1)) ...原创 2017-02-10 14:47:51 · 122 阅读 · 0 评论 -
yarn 概述
yarn 概述hdfs上面的资源管理和计算框架 一、角色划分http://www.cnblogs.com/chushiyaoyue/p/5784871.htmlResourceManager rm; 总控 = 调度器 + 应用程序管理器NodeManager nm;具体节点ApplicationMaster am; 应用Container是一个动态资源分配单位,它...原创 2017-01-16 16:36:48 · 161 阅读 · 0 评论 -
hdfs 概述
hdfs 简单说是分布式的文件系统 一、hdfs的角色划分client:分blockNameNode:是Master节点。管理数据块映射;处理客户端的读写请求;配置副本策略;管理HDFS的名称空间;SecondaryNameNode:是一个小弟,分担大哥namenode的工作量;是NameNode的冷备份;合并fsimage和fsedits然后再发给namenode。...原创 2017-01-16 16:24:10 · 142 阅读 · 0 评论 -
机器学习知识梳理二
常见模型和算法 一、线性模型 Y=WX + b 简单,易于解释(同时受多个因素的影响),可以被复杂算法使用1、求解方法,使用最小二乘法(线性回归) 也叫感知机2、广义线性回归:线性模型的函数 y = g(WX+b)3、越阶函数 y = 1/(1 + e^-z) 对数线性回归 近似模拟对数几率回归4、线性判别分析 LDA(linear discriminant ana...原创 2017-01-09 17:36:45 · 337 阅读 · 0 评论 -
机器学习知识梳理一
一、统计学概要 1、研究X与Y之间的关系,最理想的是找到一个映射,使得Y=f(X),但是实际当中很难找到,也就是搞不清楚X与Y之间到底是什么定量的关系,宏观上表现出来的就是结果的不确定性。尽管,每一次输入X时,得到什么Y是不确定的,但是当重复次数足够多时,出现某个结果的可能性可以计算出来的,研究这种微观的不确定,但是宏观上是确定的学科就是统计学。 2、大数定律: 实验次数足...原创 2017-01-05 15:38:02 · 182 阅读 · 0 评论 -
几个概念
计算机=计算+信息程序=算法+数据结构信息:文件->数据库->数据仓库->大数据计算:冯诺依曼->算法->机器学习技术层次结构:OS 网络 数据库 编译 安全 ==》机器视觉 分布式 数据挖掘 自然语言处理 机器学习总体趋势:机器更像人,能听、能看、能说、能尝BI=ETL(Extract-Transform-Load)+data mining + data pre...原创 2016-11-16 22:18:48 · 108 阅读 · 0 评论 -
linux 网络模型
linux 网络模型一、基本概念:1、多路复用: 一根网线可同时传递多个信号(时分或频分复用)2、linux内核的作用:管理、调度进程,管理内存,管理外设(文件描述符)、驱动程序、网络(先管理再分发)3、linux中所有外设都是fd(文件描述符),socket也是一种文件4、非阻塞IO:机器中只有一个网卡,在多路复用环境下,应用程序需要进行网络IO,这时如果网卡还没准备好,应用...原创 2012-06-08 17:23:19 · 151 阅读 · 0 评论 -
3D MMORPG客户端的一般架构
3D MMORPG客户端的一般架构一、前言 通常说的游戏指的是real-time interactive video game, 这里面交互性指的是玩家的操作会影响画面的显示(这是与电影、动画片等的区别),由于系统会对玩家的操作进行反馈,所以这类的游戏更真实,更吸引人,real-time 是指玩家的操作、环境的变化必须要实时的在画面上表现出来。普通PC上运行的客户端游戏是video ...原创 2012-05-16 16:58:30 · 419 阅读 · 0 评论 -
关于cocos2dx的主循环
关于cocos2dx的主循环1、调用栈cocos2d::CCDirector::drawScene() Line 268C++cocos2d::CCDisplayLinkDirector::mainLoop() Line 1055C++cocos2d::CCApplication::run() Line 67 + 0x20 bytesC++2、drawScene主逻辑...原创 2013-08-02 15:32:59 · 173 阅读 · 0 评论 -
读代码的方法总结
最近的代码阅读量比较多,有必要对代码阅读的方法进行整理。由于各种语言的差异,以下我会分别总结C、C++和java的代码阅读方法。C工程应用服务器或者对性能要求较高的工程会用纯C来写,这种工程是不太好读的。要读这种代码首先需要了解相应的基本概念,其次是一些核心的数据结构和功能模块,再次如果能找到相应的逻辑架构图(因为不涉及实现的细节还是比较容易找到的)会对理解代码有重要的帮助。C的工...原创 2012-04-06 10:17:01 · 108 阅读 · 0 评论 -
jvm 源代码笔记 四 jvm主要功能模块
jvm主要功能模块hotspot/src/share/vm/runtime/init.cpp line:90 init_globals()HandleMark:为线程做标记,便于删除相应范围的handle1、management_init(主要是进行各种计数的处理) 管理内存、线程、垃圾回收等,内部初始化了 线程服务、运行时服务、类加载服务2、bytecodes_init ...原创 2012-04-05 16:44:23 · 180 阅读 · 0 评论 -
jvm 源代码笔记 三 create_vm 主流程
大地图: main ---JavaMain()---InitializeJVM----InvocationFunctions---LoadJavaVM----JNI_CreateJavaVM---Threads::create_vmhotspot/src/share/vm/runtime/thread.cpp line:2996Threads::create_vm(JavaVMInit...原创 2012-04-05 16:43:22 · 193 阅读 · 0 评论 -
jvm源代码笔记 二
由于在windows下建立jdk的工程环境非常的麻烦,所以干脆就直接来看了,(一般的读代码最快的方式是打断点,看调用流程),经过艰苦的奋斗,最主要的代码的位置终于找到了。openjdk\hotspot\src\share\tools\launcher\java.c 中的main函数是整个hotspot虚拟机的入口,和其他程序一样,main函数是在非常高的抽象程度进行抽象并进而描述主流程...原创 2012-04-05 16:41:38 · 89 阅读 · 0 评论 -
JDK7 源代码笔记 一
原来写了很多日志,但是都是在人人网,今天准备把这些都搬到iteye来,算是重新整理一下思路吧。现在JIT很火,据说有的LUA jit的速度与C编译出的程序的速度是相当的,毕竟这方面做的比较早的比较有成果的还是jvm,网上搜了一下,系统分析JVM代码的资料是少的可怜,干脆,我就花点功夫去做个开拓者吧。以下所有分析基于最新jvm 的实现 jdk7的源代码,下载地址如下 http://downl...原创 2012-04-05 16:39:32 · 147 阅读 · 0 评论 -
高级语言虚拟机最简单的jit实现
最简单的jit实现现在假设目标代码已经生成,要在执行引擎中进行执行,一种传统实现方式是:while(true){ fetch_instruction(handle);// 有一次内存访问 switch(handle.opcode) { case Binary_Add: move r0 arg1; move r1 arg2;...原创 2012-03-08 16:50:13 · 433 阅读 · 0 评论 -
JS实现的JVM源代码分析
JS实现的JVM源代码分析今早看到iteye上的消息(详见 http://www.iteye.com/news/23443),说是用JS实现了jvm,于是乎我就去看了下其实现的源代码,现在把我看到的分享给大家。从https://github.com/nurv/BicaVM下载源代码,源代码中lib:使用的外部的库runtime:java核...原创 2011-11-22 16:05:06 · 342 阅读 · 0 评论 -
发散式的函数调用组织形式------从apache的挂钩机制中得到的启示
apache利用挂钩(hook)来实现系统的灵活性和可扩展性,内部是使用函数指针来实现的,其实现方式与我前面写的某网游服务端的注册回调机制是一样的。这种结构打破了传统的函数调用的执行流程,任一个步骤都可以进行扩展,而且每个模块还可以保持自己内部的层次化和模块化。c来模拟C++多态的实现?程序最终都是以机器码运行的,汇编是机器码的符号映射,所以汇编语言的描述能力和高级语言是一样的,所以C语言...原创 2011-11-02 14:34:14 · 129 阅读 · 0 评论 -
高级语言虚拟机 扫盲系列
高级语言虚拟机 扫盲系列本系列文章主要是总结、整理一些高级语言虚拟机实现的原理和方法,希望可以帮助到感兴趣的同学。本系列初步确定会包含如下内容:一 什么是虚拟机?二 运行时环境的基本结构三 脚本层线程的调度四 基本内存管理策略五 jit六 脚本与runtime的交互...原创 2012-04-07 11:37:07 · 283 阅读 · 0 评论 -
node.js 的异步模型
node.js 的异步模型一、基本概念 阻塞式IO:cpu一直等到数据准备好了之后才会工作,即从函数调用开始,一直到数据准备好这段时间cpu是干等着的 非阻塞式的IO:数据准备好了之后发一个信号,此后cpu才会处理,即cpu不会干等着 阻塞式:相当于是轮训、非阻塞式相当于是中断 同步执行:语句的先后顺序就是cpu执行指令的顺序 异步执行:写在前面的语句...原创 2012-04-10 13:42:19 · 132 阅读 · 0 评论 -
js 设计模式
js 设计模式参考资料:http://www.addyosmani.com/resources/essentialjsdesignpatterns/book/一 单例var SingletonTester = (function(){ // args: an object containing arguments for the singleton // 构造函数在匿...原创 2012-04-11 16:12:45 · 114 阅读 · 0 评论 -
关于cocos2dx中的摄像机
关于cocos2dx中的摄像机1、CCCamera 默认是从前往后看(center是原点,eye的z值很小,方向是z轴),所以z值越大,越是在前面, 2、球坐标:原点是圆心,仰角theata(从z轴开始),方位角 fai,一般数学坐标系中的逆时针角 3、 CCOrbitCamera::create(float t, float radius, float deltaRadius, ...原创 2013-08-02 15:02:11 · 540 阅读 · 0 评论 -
关于各种编码总结
关于各种编码总结一 、背景知识 1、计算机中所有的数据都用01串来表示,至于一串01到底代表什么是由软件来设定的。 比如:01111101111101010111110111110101 可以理解为一条指令,也可以理解为4个字节的char字符,具体是什么要看这个数据是在代码段还是数据段。 2、字符是人看到的显示效果(实际上人看到的是字符对应glyph渲染到屏幕上...原创 2012-05-03 18:04:40 · 135 阅读 · 0 评论 -
lua的并发哲学
lua的并发哲学实现并发:1、多线程(本质是共享内存数据、所以要同步多线程) 2、协程(本质是单线程、需要保证不阻塞)协程的好处:1、不用线程调度所以可以更充分利用cpu、2、不处理线程同步减少bug、3、不会为了效率而故意打断逻辑上一致的代码块(所有有IO的地方后续的代码都要放在回调里), 虚拟机内部在IO函数上yield和resume,回调对用户是屏蔽的...原创 2012-04-27 13:49:35 · 272 阅读 · 0 评论 -
lua 源代码解析
lua 源代码解析源代码版本:lua-5.2.0一、概览1、lua脚本中暴露的库相关lbaselib.c - 基础函数库(方便使用lua内部的功能)lbitlib.c - 位运算库lcorolib.c - 协程库lstrlib.c - 字符串库,提供通用字符串处理功能 lstring.c - 字符串表(保存所有由Lua操作的字符串集合)lmathlib.c...原创 2012-04-26 17:57:21 · 517 阅读 · 0 评论 -
cocos2dx游戏的客户端整体框架设计
cocos2dx游戏的客户端整体框架设计: 一、传统的方式 直接在每个场景中放置具体的sprite、node、effect等,之后在update中根据game State来进行update的操作,缺点是update中的逻辑异常复杂,代码很难维护 二、分布式的方式 初始化时: GameScene添加具体的layer,递归的添加每个entity;可以有个Gam...原创 2013-07-03 13:50:37 · 610 阅读 · 0 评论 -
android中的多线程
android中的多线程一、基于消息队列的handler机制,别的线程与自己进行交互,需要使用消息队列,这样可以实现功能的分离和处理的异步,Android中对消息队列进行了封装,具体的:1、Looper 负责维护并发安全的消息队列2、handler 负责进行消息的入队、出队,以及消息的处理函数 void handleMessage(Message msg)3、Message...原创 2013-06-22 13:52:49 · 114 阅读 · 0 评论