<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weiheima的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weiheima</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weiheima]]></copyright><item><title><![CDATA[SQLite集成与用法]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/39397655</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/39397655</guid><author>weiheima</author><pubDate>Fri, 19 Sep 2014 14:24:42 +0800</pubDate><description><![CDATA[概述

在Cocos2d-x中，简单数据存储，可以使用UserDefault。那么如何存储大量，不规则的数据？我们可以使用SQLite数据库存储数据。SQLite是使用非常广泛的嵌入式数据库，它有小巧 、高效、跨平台、开源免费和易操作的特点。

SQLite数据库是使用C语言来编写的，因此在Cocos2d-x使用SQLite也是得心应手。

准备

首先创建一个Cocos2d-x ]]></description><category></category></item><item><title><![CDATA[Android内存管理之道]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/39397601</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/39397601</guid><author>weiheima</author><pubDate>Fri, 19 Sep 2014 14:23:06 +0800</pubDate><description><![CDATA[相信一步步走过来的Android从业者，每个人都会遇到OOM的情况。如何避免和防范OOM的出现，对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道，开始今天的主题之前，先再次回顾两个概念。




内存泄漏：对象在内存heap堆中中分配的空间，当不再使用或没有引用指向的情况下，仍不能被GC正常回收的情况。多数出现在不合理的编码情况下，比如在A]]></description><category></category></item><item><title><![CDATA[黑马程序员，交通管理系统]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7553536</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7553536</guid><author>weiheima</author><pubDate>Thu, 10 May 2012 13:49:44 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流
交通灯管理系统：
1，异步随机生成按照各个路线行驶的车辆。
如：由南向北的车辆。。。。。直行
由南向东的车辆。。。。。右转
由南向西的车辆。。。。。左转
2，信号灯忽略黄灯，只考虑红灯和绿灯（true 绿,false红，右转设置常为绿色）
3，应考虑左转车辆控制信号灯，右转不受控制。
4，具体信号灯控制逻辑与现实中的控制逻辑相同，不考]]></description><category></category></item><item><title><![CDATA[黑马程序员，银行调度系统]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7553442</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7553442</guid><author>weiheima</author><pubDate>Thu, 10 May 2012 13:10:25 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流
银行调度系统，java是面向对象的语言，一些从实际出发，我们把银行调度系统，
本着谁用户数据谁就有对其操作的方法抽成对象，根据实际情况去
需求分析，完成对象，实现系统。里面的定时器很好用，建议多用用
模拟，实现银行系统逻辑：
1，银行内有6个服务窗口，1到4号位普通窗口，还有一个快速窗口，一个VIP窗口。
2，对应的就有3中类型的客户：v]]></description><category></category></item><item><title><![CDATA[黑马程序员，枚举总结]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7525029</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7525029</guid><author>weiheima</author><pubDate>Tue, 01 May 2012 00:13:35 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流
package cn.itcast.day1;

import java.util.Date;

/*
* 枚举总结：1，如果想要一种类型的值，按照我们预期的方式去赋值，我们可以把这个
* 变量定义成枚举类型。让赋值规范化。
* 2,定义枚举列表时，如果这个枚举有构造函数，列表后面必须要有;号标识。
* 并且列表要放在枚举的第一行。]]></description><category></category></item><item><title><![CDATA[黑马程序员，集合转转数组，数组转集合]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7474688</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7474688</guid><author>weiheima</author><pubDate>Wed, 18 Apr 2012 18:27:27 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流
一数组转集合，Arrays.asList,
为什么要把数组转成集合呢？
可以使用集合里面的方法和思想来操作数组，
注意：集合里面的增删方法不能用了，例如：add ，会出现UnsupportedOperationException。
因为数组的长度是固定的。
List list = Arrays.asList(arr);
sop("con]]></description><category></category></item><item><title><![CDATA[黑马程序员，定义了比较器，将比较器对象作为参数传递给TreeSet集合的构造函数]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7469002</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7469002</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 12:06:20 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流


import java.util.*;

/*
当元素自身不具备比较性时或者具备的比较性不是所需求的，
这时就需要让集合自身具备比较性，
定义了比较器，将比较器对象作为参数传递给TreeSet集合的构造函数。

当两种排序都存在时，以比较器为主。

定义一个类，实现Comparator接口
*/
class TreeS]]></description><category></category></item><item><title><![CDATA[黑马程序员，TreeSet的二种排序方式]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7469000</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7469000</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 12:05:52 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流


import java.util.*;


/*
|--Set:元素是无序（存入和取出的顺序不一定一致），元素不可以重复。
|--HashSet:底层数据结构是哈希表。
HashSet是如何保证元素唯一性的呢？
是通过元素的两个方法，hashCode和equals来完成的。
如果元素的HashCode值相同，才会判断equa]]></description><category></category></item><item><title><![CDATA[黑马程序员，HashSet:底层数据结构是哈希表]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468995</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468995</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 12:03:52 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流


import java.util.*;


/*
|--Set:元素是无序（存入和取出的顺序不一定一致），元素不可以重复。
|--HashSet:底层数据结构是哈希表。
HashSet是如何保证元素唯一性的呢？
是通过元素的两个方法，hashCode和equals来完成的。
如果元素的HashCode值相同，才会判断equa]]></description><category></category></item><item><title><![CDATA[黑马程序员，枚举就是Vector特有的取出方式]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468994</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468994</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 12:03:21 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流


import java.util.*;

/*
枚举就是Vector特有的取出方式。
发现枚举和迭代器很像。
其实枚举和迭代器是一样的。

因为枚举的名称以及方法的名称过长。
所以被迭代器取代了。


*/

class VectorDemo 
{
public static void main(String[]]></description><category></category></item><item><title><![CDATA[黑马程序员，LinkedList:特有方法。即练习]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468993</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468993</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 12:02:44 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流


import java.util.*;

/*
LinkedList:特有方法。
addFirst();
addLast()

getFirst();
getLast();
获取元素，但不删除元素。

removeFirst()
removeLast();
获取元素，并删除元素。如果集合中没有元素会出现NoSuch]]></description><category></category></item><item><title><![CDATA[黑马程序员，ArrayList练习举例]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468987</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468987</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 12:01:30 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流android培训、java培训、期待与您交流


import java.util.*;

/*
去除ArrayList集合中的重复元素。
*/

class ArrayListTest 
{
public static void main(String[] args) 
{
ArrayList al = new Array]]></description><category></category></item><item><title><![CDATA[黑马程序员，集合List]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468983</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468983</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:59:21 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流


/*

Collection
|--List:元素是有序的，元素可以重复，因为该集合体系有索引。
|--ArrayList:底层使用的是数组结构。特点：查询速度很快。增删稍慢。线程不同步。
|--LinkedList:底层是链表数据结构。特点：查询稍慢，增删很快。
|--Vector：底层是数组数据结构。线程同步的。被Array]]></description><category></category></item><item><title><![CDATA[黑马程序员，collection集合方法]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468979</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468979</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:58:33 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流


import java.util.*;


/*
1，add方法的参数类型是Object。以便于接收任意类型对象。

2，集合中存储的都是对象的引用（地址）。

什么事迭代器？
其实就是集合的取出元素的方式。

*/
class CollectionDemo
{
public static void main(S]]></description><category></category></item><item><title><![CDATA[黑马程序员，String练习题]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468918</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468918</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:40:40 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流
/*

1,模拟一个trim方法，去除字符串两段的空格。
思路：
1，判断字符串第一个位置是否是空格，如果是继续向下判断，直到不是空格为止。
2，当开始和结尾都判断到不是空格时，就是要获取的字符串。

2，将一个字符串进行反转，将字符串中指定部分进行反转，"abcdefg";abfecg
思路：
1，曾经学习过对数组的元素进行反转]]></description><category></category></item><item><title><![CDATA[黑马程序员，StringBuffer是字符串缓冲区]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468858</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468858</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:27:09 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流！
StringBuffer是字符串缓冲区

是一个容器。
特点：
1，而且长度可以变化。//数组也是容器，长度不可变。
2，可以直接操作多个数据类型。//数组一次只能操作一种。
3，最终会通过toString方法编程字符串。

C create R read U update D delete

1,存储。
StringBuf]]></description><category></category></item><item><title><![CDATA[黑马程序员，String类适用于描述字符串事物的。常见的操作有哪些？]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468846</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468846</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:25:37 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流！
String类适用于描述字符串事物的。
那么他就提供了多个方法对字符串进行操作。

常见的操作有哪些？

1，获取
1,1字符串中的包含的字符数，也就是字符串的长度。
int length（）：获取长度。
1,2根据位置获取位置上某个字符。
char charAt(int index):
1,3根据字符获取该字符串中的位置。]]></description><category></category></item><item><title><![CDATA[黑马程序员，JDK1.5中提供了多线程升级解决方案Lock操作]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468838</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468838</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:24:19 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流！
JDK1.5中提供了多线程升级解决方案。
将同步synchronized替换成显示的Lock操作。
将Object中的wait,notify,notifyAll,替换成了Condition对象。
该对象可以Lock 进行获取。
该实例中，实现了本方只唤醒对方操作。 
*/
class Resource
{
private Stri]]></description><category></category></item><item><title><![CDATA[黑马程序员，简单的卖票程序。  多个窗口同时买票。]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468822</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468822</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:21:14 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流！
需求：简单的卖票程序。
多个窗口同时买票。

创建线程的第二中方式：实现Runnable接口

步骤：
1，定义类实现Runnable接口
2，覆盖Runnable接口的run方法。
将线程要运行的代码存放在该run方法中。
3，通过Thread类建立线程对象。
4，将Runnable接口的子类对象作为实际参数传递给Threa]]></description><category></category></item><item><title><![CDATA[黑马程序员，延迟加载的单例设计模式]]></title><link>https://blog.youkuaiyun.com/weiheima/article/details/7468816</link><guid>https://blog.youkuaiyun.com/weiheima/article/details/7468816</guid><author>weiheima</author><pubDate>Tue, 17 Apr 2012 11:20:42 +0800</pubDate><description><![CDATA[android培训、java培训、期待与您交流！
单例设计模式：


*/
//饿汉式。
/*
class Single
{
private static final Single s = new Single();
private Single(){}
public static Single getInstance()
{
return s;
}
}
*/
/]]></description><category></category></item></channel></rss>