`
hm4123660
  • 浏览: 278091 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Dea4ce76-f328-3ab2-b24a-fb268e1eeb75
数据结构
浏览量:69006
社区版块
存档分类
最新评论
文章列表
        最近再弄cocos2d-x lua手游开发,我相信大家在开发手游时经常容易碰到寻路问题。寻路算法也挺多的,这里主要总结我在开发时使用的A satrt寻路算法。        A星算法是基于启发式函数的一种寻路算法,A start的介绍就不重复了。主要是说明如何使用A start寻路算法。如图要从起点A移动到终点B, 地图中  表示可行走的方块。             该地图使用Tiled绘制的,每个方块都有自己的坐标,起点A为(5,27),终点B为(20,49)(这地图的原点(0,0)在地图左上角,图中地图只是原地图的部分,所以坐标不是0,0开始)。下面就来具体实 ...
        模式是一个解决方案,一个模式解决了一类特定的问题,当我们再次遇到同样的问题时,我们仍然可以使用它解决同样的问题,这里介绍使用模板方法设计模式。        在开发中我们时常可以使用模板方法设计模式,这里我们就以简单的上班为例。上班一族每个工作日去上班都要经过  洗漱---上班方式(交通工具)--开始工作   三个步骤,我们写一个程序来模拟这个过程 public class Work { public void doWork() { //洗漱过程 System.out.println("洗漱。。。。。。"); / ...
        java接口回调是指:可以把使用某一接口的类创建的对象的引用赋给该接口声明的接口变量,那么该接口变量就可以调用被类实现的接口的方法。实际上,当接口变量调用被类实现的接口中的方法时,就是通知相应的对象调用接口的方法,这一过程称为对象功能的接口回调。               看概念总是难以理解,下面以实例说明:         定义一个函数来获取文件的字节数组,此时我们想要在Test类获得读取文件后的二进制数组bytes,我们一般做法是定义把bytes定义到外部,使用get方法获取。代码如下 package com.longpo.callback; impor ...
      我们都知道Bundle可能过put****()方法添加各种基本类型的数据,Intent也可以通过putExtras(Bundle)将数据添加进去,然后通过startActivity()跳到下一下Activity的时候就把数据也传到下一个Activity了。如传递一个字符串到下一个Activity   把数据放到Intent里 btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ...
     类在执行之前会执行三个步骤:加载 ->   连接  -> 初始化   1.类的加载      类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个Class对象,用来封装类在方法区的数据结构。可以把堆区的Class理解为方法区的一面镜子,对应方法区的类的数据结构,通过这面镜子实现类的调用。   加载.class文件的多种方式: 1.从本地系统中直接加载 2.通过网络下载.class文件 3.从zip,jar里加载.class文件 4.从专有的数据库中提取.class文件 5.将java源文 ...
         大三即将结束,经过一段时间的较为系统的自学java, 突然看到一个自称一半以上的java程序员都会出错的程序尤为感兴趣。便深究了一番      程序代码如下: package com.longpo; class Person { private static Person person = new Person(); public static int count1; public static int count2 = 5; private Person() { count1++; count2++; } p ...
         观察者设计模式定义了对象间的一种一对多的依赖关系,以便一个对象的状态发生变化时,所有依赖于它的对象都得到通知并自动刷新。我们常用的事件机制内部实现就使用了观察者模式。java类也帮我们实现了观察者模式。下面举实例来讲解观察者设计模式,为了便于更好的理解观察者模式,先自己编写观察者模式,不调用java自带的接口和实现类。       事例:现在人都喜欢网购,当你看上一件商品时你可能会想时时关注商品的价格波动,当该商品的价格变化时希望能收到通知。此时我们就可以利用观察者模式来处理。此时关注的商品是被观察者,而“我们”就是具体的观察者对象   1.自定义观察者模式   定 ...
       装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象.以下情况使用Decorator模式 1. 需要扩展一个类的功能,或给一个类添加附加职责。 2. 需要动态的给一个对象添加功能,这些功能可以再动态的撤销。 3. 需要增加由一些基本功能的排列组合而产生的非常大量的功能,从而使继承关系变的不现实。 4. 当不能采用生成子类的方法进行扩充时。一种情况是,可能有大量独立的扩展,为支持每一种组合将产生大量的子类,使得子类数目呈爆炸性增长。另一种情况可能是因为类定义被隐藏,或类定义不能用于生成子类。   ...
      代理设计模式(Proxy)主要为其他对象提供一种代理方式以控制对这个对象的访问,在某些情况下,一个对象不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式的思想是为了提供额外的处理或者不同的操作而在实际对象与调用者之间插入一个代理对象。这些额外的操作通常需要与实际对象进行通信。      其实代理说白一点就是真实对象的代表,在访问对象时引入一定程度的间接性,因为这些间接性可以附加多种用途。代理模式可分为静态代理和动态代理。   1.静态代理模式        为了更形象的说明代理模式,使用相亲来进行举例。相亲中的媒婆就好比代理对象, ...
       简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式。是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。       简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类的创建产品类的方法可以被外界直接调用,创建所需的产品对象。 没有工厂模式时创建对象如下: package com.longpo; public class Factory { ...
       单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。       单例设计模式保证一个类只有一个实例,并提供访问它的全局访问点。单列设计模式步骤 1.构造函数私有化 2.声明一个本类实例对象 3.给外部方法提供一个静态方法来获取对象实例        单例设计模式有两种实现方法:饿汉式和懒汉式   1.饿汉式          此实现是线程安全的,多个线程进行 ...
      在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类。内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类可以间接 ...
          XML 指可扩展标记语言XML ,被设计用来传输和存储数据。从某种角度来说,XML是数据封装和消息传递技术。许多框架的配置文件都是使用XML,所以有必要学习XML。           java的XML解析主要有两种方式:DOM和SAX。   1.DOM解析XML      DOM与语言平台无关,将XML文档建立一个完整的文档树,在内存中解析和存储XML文档,允许随机访问文档的不同部分。 优点:由于整棵树在内存中,因此可以对xml文档进行随机访问;可以对xml文档进行修改操作,API使用起来比较简单。 缺点:整个文档都需要载入内存,对于大文档成本高      ...
          Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面介绍常用的两种网络请求方式POST,GET。首先要区别POST和GET请求 1. GET是从服务器上获取数据,POST是向服务器传送数据。 2. GET是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。POST是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程 3. GET方式提交的数据最多只能是1024字节,理论上POST没有限制,可传 ...
          最近要使用java来操作Json数据,虽然Json用过几次,但一直没有好好总结,趁这次来总结一下java操作Json数据。Java操作Json有很多工具包,地址为http://www.json.org/,可以自己上去挑选。      这里我使用第一个org.jso ...
Global site tag (gtag.js) - Google Analytics