在写该文之前一直犹豫,是把Go的并发写的面面俱到显得高大尚一些,还是简洁易懂一些?今天看到一个新员工在学习Java,突然间想起第一次接触Java的并发时,被作者搞了一个云里雾里,直到现在还有阴影,所以决定本文从简。哈哈,说笑了,言归正传。Go的并发真的很简单,所以本文..
分类:
编程语言 时间:
2015-07-26 17:31:01
阅读次数:
228
java中复制文件的方式
如果按照字符来读取的话,可以有4种,
第一种:加入缓冲区Buffered一次读取一个字符数组
public class CopyFileTest {
public static void main(String[] args) throws Exception{
//封装数据源
BufferedReader reader = new BufferedRea...
分类:
编程语言 时间:
2015-07-26 17:30:41
阅读次数:
140
继上一篇实现基于堆的优先队列后,这次将利用上一次完成的基于堆的能够重复删除最大元素操作的优先队列来实现一种经典而优雅的排序算法,称之为堆排序。
堆排序可分为两个阶段:
1.构建堆:在堆的构建过程中,我们将原始数组重新组织安排进一个堆中;
2.下沉排序:从堆中按递减顺序取出所有元素并得到排序结果
具体的思想在下面的代码中有较为详细的注释:
/**
*
* @author seabea...
分类:
编程语言 时间:
2015-07-26 17:29:37
阅读次数:
142
strStr()函数的用途是在一个字符串S中寻找某个字串P第一次出现的位置,并返回其下标,找不到时返回-1。最简单的办法就是找出S所有的子串和P进行比较,然而这个方法比较低效。假设我们从S的下标0和P的下标0开始对每个字符进行比较,如果相等则下标增加,比较后面的字符。如果两者一直相等直到P的下标达到最大值,则表示在S中找到了P,并且第一次出现的位置为0,返回0,但如果在中间某个位置两个字符不相等时...
分类:
编程语言 时间:
2015-07-26 17:27:26
阅读次数:
136
最近又开始写项目服务器部分了, 再次接触了C++ 有了一些更深入的体会。记录一下,以免忘记~ 之前学习C++ 差不错都是靠死记, 记住C++的用法,C++的特性,然后去使用。没有从根本上理解,导致 几年不用C++,就已经完全忘记,然后又要花好长时间去记忆,使用。所以要真正做到学会C++,必须要从根本上了解,这样才不至于有会忘记, 而且使用起来会更的心应手。
1、明确了一些定义
关于指...
分类:
编程语言 时间:
2015-07-26 17:26:12
阅读次数:
135
垃圾收集器在对一个对象回收之前,首先要判断对象在程序中是否还有使用的可能性,充要条件就是没有被程序可访问的引用再指向这个对象实例。最简单的办法就是给对象实例添加中添加一个引用计数器,每当有一个引用指向它时,计数器就加一,当引用失效时,计数器就减一,如果计数器值为0则说明没有引用指向它,可以进行回收。但是这个方法中计数器为0并不是一个必要条件,例如,生成两个对象实例,每个对象实例的属性都指向对方,那么这个两个对象实例分别最少有一个引用。...
分类:
编程语言 时间:
2015-07-26 17:23:39
阅读次数:
152
很多教材上都有介绍到虚指针、虚函数与虚函数表,有的说类对象共享一个虚函数表,有的说,一个类对象拥有一个虚函数表;还有的说,无论用户声明了多少个类对象,但是,这个VTABLE虚函数表只有一个;也有的在说,每个具有虚函数的类的对象里面都有一个VPTR虚函数指针,这个指针指向VTABLE的首地址,每个类的对象都有这么一种指针。今天,我们就来解决这个问题,同一个类的不同对象,是不是拥有“相同”的虚函数表,这个相同是物理上的相同(内存地址)还是逻辑上的相同(数据结构)。本文现详述如下!...
分类:
编程语言 时间:
2015-07-26 17:24:57
阅读次数:
148
状态机在工程中使用非常的频繁,有如下常见的三种实现方法:
1. `switch-case` 实现,适合简单的状态机;
2. 二维状态表`state-event`实现,逻辑清晰,但是矩阵通常比较稀疏,而且维护麻烦;
3. 用状态转移表`stateTransfer Table`实现,数组大小等于状体转移边个数,易扩展;...
分类:
编程语言 时间:
2015-07-26 17:23:47
阅读次数:
178
· 目 录 导 航
1. 引言
1.1. 编写目的
1.2. 阅读范围
1.3. 声明
1.4. 缩写词/名词解释
1.5. 参考资料
2. 嵌入式开发学习笔记
2.1. 开发环境/测试环境
2.2. 开坑:提要
2.3. 入坑:JNI
2.3.1. navicate 接口定义
2.3.2. 执行JNI命令生成C/C++的头文件
2...
分类:
编程语言 时间:
2015-07-26 17:21:24
阅读次数:
248
在之前的介绍中可以知道,使用Xcode中的background来学习Swift是非常强大的,可以在右侧的界面中实时预览代码中的所有常量或者变量的值,非常方便。但是现在我们学习的Swift应该作为一种控制台程序出现,就像初学C,OC一样。所有代码的打印结果都可以在Console控制台中显示,以区别之前的所有参数值都显示在一起的情况。但是默认打开Background是没有所谓的控制台的。那怎么办呢?下...
分类:
编程语言 时间:
2015-07-26 17:22:04
阅读次数:
171
什么是类加载器?类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个...
分类:
编程语言 时间:
2015-07-26 17:20:49
阅读次数:
217
LOD技术有点类似于Mipmap技术,不同的是,LOD是对模型建立了一个模型金字塔,根据摄像机距离对象的远近,选择使用不同精度的模型。它的好处是可以在适当的时候大量减少需要绘制的顶点数目。它的缺点同样是需要占用更多的内存,而且如果没有调整好距离的话,可能会造成模型的突变。通过一个例子来说明他的用处:...
分类:
编程语言 时间:
2015-07-26 17:17:49
阅读次数:
224
JAVA中的equals和==的区别==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为true时,==不一定为true;基础知识的重要性,希望引起大家的重视,包括自己在内很多困惑和疑问而且均来自于最基础的知识折腾了一阵子又查了查书,终于对 String 这个特殊...
分类:
编程语言 时间:
2015-07-26 17:17:03
阅读次数:
180
从低地址到高地址:1、代码区【包含常量的】:存放函数体的二进制代码2、全局变量区【已初始化 + 未初始化】: 全局变量和静态变量的存储是放一块的,初始化的全局变量和静态变量在一块区域, 未初始化的(全局变量和的静态变量)在相邻的另一块区域。 程序结束后有系统释放3、堆:由程序员分配释放, 若程序员....
分类:
编程语言 时间:
2015-07-26 17:15:53
阅读次数:
130
Class.forName查阅javaAPIpublic static Class forName(StringclassName) throws ClassNotFoundException返回与带有给定字符串名的类或接口相关联的 Class 对象。调...
分类:
编程语言 时间:
2015-07-26 17:12:05
阅读次数:
116
核心代码:/**完成一个拖拽事件由三大事件组成:*1:onmousedown:选择元素*2:onmousemove:移动元素*3:onmouseup:释放元素 */function drag(obj){obj.onmousedown=function(ev){ var ev=ev || event;...
分类:
编程语言 时间:
2015-07-26 17:13:41
阅读次数:
130
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544思路分析:该问题给定一个无向图,要求求从起始点到终点的最短路径长度;可以使用dijkstra算法求出该起始点到其他所有点的最短距离;代码如下:#include #include #include #...
分类:
编程语言 时间:
2015-07-26 17:07:29
阅读次数:
202