<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ajacn40402的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ajacn40402</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ajacn40402]]></copyright><item><title><![CDATA[MySQL索引背后的数据结构及算法原理]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016174</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016174</guid><author>ajacn40402</author><pubDate>Tue, 04 Jun 2019 10:45:00 +0800</pubDate><description><![CDATA[摘要
本文以MySQL数据库为研究对象，讨论与数据库索引相关的一些话题。特别需要说明的是，MySQL支持诸多存储引擎，而各种存储引擎对索引的支持也各不相同，因此MySQL数据库支持多种索引类型，如BTree索引，哈希索引，全文索引等等。为了避免混乱，本文将只关注于BTree索引，因为这是平常使用MySQL时主要打交道的索引，至于哈希索引和全文索引本文暂不讨论。
文章主要内容分为三个部...]]></description><category></category></item><item><title><![CDATA[JDK源码阅读——Vector实现]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016171</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016171</guid><author>ajacn40402</author><pubDate>Sun, 30 Dec 2018 21:21:00 +0800</pubDate><description><![CDATA[1 继承结构图

Vector同样继承自AbstractList，与ArrayList、LinedList一样，是List的一种实现
2 数据结构

    // 与ArrayList一样，也是使用对象数组保存元素
    protected Object[] elementData;

    // 记录元素的个数
    protected int elementC...]]></description><category></category></item><item><title><![CDATA[JDK源码阅读——LinkedList实现]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016172</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016172</guid><author>ajacn40402</author><pubDate>Sun, 30 Dec 2018 00:47:00 +0800</pubDate><description><![CDATA[1 继承结构图

LinkedList是List的另一种实现。继承自AbstractSequentialList
2 数据结构
LinkedList与ArrayList不同的是LinkedList底层使用双向链表进行存储，其主要数据结构如下

　　// 记录List长度
　　transient int size = 0;

　　// 指向LinkedList第一个节点...]]></description><category></category></item><item><title><![CDATA[JDK源码阅读—ArrayList的实现]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016169</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016169</guid><author>ajacn40402</author><pubDate>Sun, 30 Dec 2018 00:44:00 +0800</pubDate><description><![CDATA[1 继承结构图
ArrayList继承AbstractList，实现了List接口

2 构造函数

transient Object[] elementData;    // 数组保存元素

private int size;                  // 记录长度

size记录ArrayList的长度，elementData记录元素的值
transie...]]></description><category></category></item><item><title><![CDATA[微信开发——带参数二维码的使用]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016170</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016170</guid><author>ajacn40402</author><pubDate>Wed, 03 Aug 2016 10:22:00 +0800</pubDate><description><![CDATA[　　最近做微信PC端网页微信相关功能的开发，从一个新手的角度来说，微信公众号的文档还是不好理解的，网上找的帖子大都也都基本上是复制微信公众平台上给的文档，开发微信带参数二维码过程中还是遇到不少坑的，在此把我的开发过程比较详细的记录下，希望对大家有所帮助。
　　我本次开发使用的是认证服务号。
1 接入
　　首先进入微信公众号 -&gt; 基本配置
　　下面是基本配置的页面，在UR...]]></description><category></category></item><item><title><![CDATA[【Linux指令】使用中学习（一）]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016168</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016168</guid><author>ajacn40402</author><pubDate>Tue, 28 Jun 2016 15:27:00 +0800</pubDate><description><![CDATA[sed指令：
应用：对于大文件，比如10G的大文件，我遇到的是导出的数据库.sql文件，想要使用vim修改几乎是不可能的，用sed指令可以在不打开文件的情况下修改文件，下面是一些具体用法

删除文件特定行：


sed -i '[num1],[num2]d' [filename]

删除文件[filename]第[num1]到[num2]行，包括[num1]...]]></description><category></category></item><item><title><![CDATA[3D项目处理点选操作步骤]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016167</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016167</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:43:00 +0800</pubDate><description><![CDATA[1、用notepad++模型的obj格式文件，查找到模型各个部分的名称，命名规则：g mesh......，把名字改为规则命名。
2、选择处理


#ifdef _DEBUG
#pragma comment(lib,"osgGAd.lib")
#pragma comment(lib,"osgViewerd.lib")
#pragma comment(lib,"osgDB...]]></description><category></category></item><item><title><![CDATA[3D模型选中显示样式改变]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016165</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016165</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:42:00 +0800</pubDate><description><![CDATA[osg::ref_ptr&lt;osg::Material&gt; material = new osg::Material();            //模型材质信息
material-&gt;setTransparency(osg::Material::FRONT_AND_BACK, 1.0);
material-&gt;setEmission(osg::Mater...]]></description><category></category></item><item><title><![CDATA[OSG坐标系统]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016127</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016127</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:41:00 +0800</pubDate><description><![CDATA[1、世界坐标
    世界坐标系描述的是整个场景中所有的对象，可以理解为绝对坐标系，所有对象的位置都是绝对坐标。从整体上考虑，它为所有对象的位置提供一个绝对的参考标准，从而避免了物体之间由于独立的物体坐标系而导致的坐标系混乱。

2、物体坐标系

    每一个物体都有自己的坐标系，当物体发生交换时，实际上是它本身的坐标系相对于世界坐标系发生变换的过程。
 ...]]></description><category></category></item><item><title><![CDATA[OSG中的视角 eye up center]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016164</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016164</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:39:00 +0800</pubDate><description><![CDATA[这三个值都是vec3变量，其中eye和center确定视角
    eye就相当于人的眼睛，我们观察场景，是从这个坐标去看的，然后有了眼睛，我们观察得有一个方向，那么久需要另外一个坐标，就是center，就是我们要看的点，eye和center这两个点确定一条直线，这条直线就是我们的实视线，这就有了视角。up不知道有什么用，好像并没有什么用，

转载于:https://www...]]></description><category></category></item><item><title><![CDATA[OSG报警特效学习总结]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016118</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016118</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:39:00 +0800</pubDate><description><![CDATA[方法一：粒子系统
    OSG的粒子系统有自己定义好的模块，如osgParticle::ExplosionEffect（爆炸模拟）；osgParticle::SmokeEffect（烟雾模拟）；osgParticle::FireEffect（火光模拟）。我觉得可以利用烟雾模拟和火光模拟来做报警特效的展示。



OSG向场景中添加osgParticle粒子效果

...]]></description><category></category></item><item><title><![CDATA[OSG显示文字——自定义显示文字函数]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016163</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016163</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:37:00 +0800</pubDate><description><![CDATA[#include &lt;Windows.h&gt;
 
#include &lt;osg/Geode&gt;
 
#include &lt;osg/Geometry&gt;
 
#include &lt;osgText/Text&gt;
 
#include &lt;osgViewer/Viewer&gt;
 
#include &lt;locale.h&gt;...]]></description><category></category></item><item><title><![CDATA[OSG事件回调]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016162</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016162</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:36:00 +0800</pubDate><description><![CDATA[OSG中的节点主要使用回调（CallBack）来完成用户临时、需要每帧执行的工作。根据回调功能被调用的时机划分为更新回调（UpdateCallBack）和人机交互时间回调（Event CallBack）。前者在每一帧中系统遍历到当前节点时调用，后者则由交互事件触发，如操作键盘、鼠标、关闭窗口、改变窗口大小等动作。回调类基类是osg::NodeCallBack()，主要函数如下：

...]]></description><category></category></item><item><title><![CDATA[OSG中的几何体]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016161</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016161</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:30:00 +0800</pubDate><description><![CDATA[osg::Shape类
继承自osg::Object类；

osg::Shape类是各种内嵌几何体的基类，不但可以用于剔除和碰撞检测，还可用于生成预定义的几何体对象；
常见的内嵌几何体包括：


osg::ShapeDrawable类：
派生自osg::Drawable类；
在osg::ShapeDrawable类的构造函数中提供了关联osg::Shape的方法；...]]></description><category></category></item><item><title><![CDATA[OSG消锯齿]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016159</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016159</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:27:00 +0800</pubDate><description><![CDATA[osg::DisplaySettings::instance()-&gt;setNumMultiSamples(4);



在osg+mfc下成功实现抗锯齿，在程序初始化的时候，即在osg控制类中，我的是OSG_MFC.cpp(头文件中#include &lt;osg/Multisample&gt;)中的void cOSG::InitCameraConfig(voi...]]></description><category></category></item><item><title><![CDATA[OSG中的智能指针]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016157</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016157</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:26:00 +0800</pubDate><description><![CDATA[在OpenSceneGraph中，智能指针（Smart pointer）的概念指的是一种类的模板，它针对某一特定类型的对象（即Referenced类及其派生类）构建，提供了自己的管理模式，以避免因为用户使用new运算符创建对象实例之后，没有及时用delete运算符释放对象，而造成部分内存空间被浪费的后果，也就是所谓的内存泄露错误。
由于OSG中与场景图形有关的大多数类均派生自Refer...]]></description><category></category></item><item><title><![CDATA[OSG选中效果展示]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016156</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016156</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:19:00 +0800</pubDate><description><![CDATA[《OpenSceneGraph三维渲染引擎编程指南》书中选中高亮效果示例。osgFX特效

2、得到鼠标的位置

osgFX特效1、高亮，在开头的时候写了；
2、线框：

1 #include&lt;osgFX/Outline&gt;
2 osg::Geode *geode = new osg::Geode;
3 geode-&gt;addDrawable(new os...]]></description><category></category></item><item><title><![CDATA[gitlab使用入门]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016155</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016155</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:13:00 +0800</pubDate><description><![CDATA[第一步：安装git软件
方法：百度git

点击下载，然后双击安装，一直点下一步即可。

第二步：设置用户名和邮箱
方法：在桌面上点鼠标右键，选择Git Bash，然后分别运行命令
git config --global user.name "username"
gitconfig--globaluser.email "Email-address"
把usern...]]></description><category></category></item><item><title><![CDATA[Linux Apache绑定多域名]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016154</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016154</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:11:00 +0800</pubDate><description><![CDATA[1 网上查到资源不符
网上查到的Apache绑定域名都说要修改http.conf文件，但是我的服务器上的apache是通过apt-get install安装的，安装方法应该是没错的，但是通过find / -name "http.conf" -print搜索的结果是空的，使用find / -name "http.conf" -print搜索也是空的，说明可能不是所有安装了apache的服...]]></description><category></category></item><item><title><![CDATA[java调用C++ DLL库方法]]></title><link>https://blog.youkuaiyun.com/ajacn40402/article/details/102016153</link><guid>https://blog.youkuaiyun.com/ajacn40402/article/details/102016153</guid><author>ajacn40402</author><pubDate>Mon, 27 Jun 2016 13:06:00 +0800</pubDate><description><![CDATA[　　最近一个项目要开发网页端人脸识别项目，人脸识别的算法已经写好，是C++版，但是网页端要求使用Java后台，这就涉及到Java调用DLL的问题。经过查找，实现了一个简单的例子。
1、第一步，先在Java中新建一个类
 
如上图，其中注意这句System.loadLibrary("javaCallcpp");，这就是加载dll文件的代码了。然后我们需要dll中实现下面定义的加减...]]></description><category></category></item></channel></rss>