`
whitesock
  • 浏览: 478795 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论
文章列表

Effective J2ME (4)

    博客分类:
  • ME
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。3 J2ME开发中的常见问题     由于J2ME相关资料比较少,所以在开发过程中经常会遇到现象诡异的问题。有些问题解决了,有些绕过了。以下总结了一些比较典型的问题和解决方法。3.1 按键响应迟钝     造成按键响应迟钝的最常见的原因是程序中的其它线程占用了绝大多数的CPU时间,从而导致负责事件转发的系统线程(EventDispatcher)得不到足够的CPU时间来处理事件。例如在从游戏屏幕返回到主菜单屏幕的时候,主线程通常没有被停止,而是不再驱动游戏剧情的发展。如果在这个时候主线程占用了过多的CPU时间,那么 ...

Effective J2ME (3)

    博客分类:
  • ME
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。2.2 规模     通常J2ME设备对Jar文件的大小进行了限制,例如Nokia6610允许最大的Jar大小为64K。因此在开发J2ME应用时,应该尽量编写精简的代码,使用具有可以接受效果的最小的图片。2.2.1 编写精简的代码     很多人都曾提出过在J2ME开发中减小代码大小的建议,例如减少类和方法的个数、缩短变量和方法名、打破类的继承关系等等。但是我认为,这在做法都是在牺牲了程序的可读性、可扩展性的基础之上的,而且代价高昂。没有必要为了减少代码的大小刻意地这样做,这种代码通常难以调试和修改。与此相反,好 ...

Effective J2ME (2)

    博客分类:
  • ME
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。2 J2ME开发技巧 2.1 性能     在模拟器上可以使用JProbe Profiler等分析工具来分析性能瓶颈。但是需要注意的是模拟器的瓶颈与实机中的瓶颈可能 ...

Effective J2ME (1)

    博客分类:
  • ME
本文节选于笔者在数年前开发手机游戏时总结的一份文档。一家之言,贻笑大方。1 J2ME开发基础 1.1 计算几何在J2ME开发中的应用       由于支持J2ME的设备通常不支持浮点运算,所以对于某些特定的问题可以通过计算几何学 ...
1 Introduction to enum     Java SE 5中引入了枚举,同时添加了一个新关键字enum。下面是个枚举的例子: public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES; }     枚举类型也是普通的Java类,继承自java.lang.Enum并默认实现了java.lang.Comparable接口和java.io.Serializable接口。所有的枚举类型都是final类,枚举值都是public static final,由于枚举值是常量,因此枚举值的名称通常应该大写。      枚举类型也可以 ...
    Companies that can't scale their applications often fail completely. It is ironic, but ture: too much success can kill your business.
1 Overview       Open addressing和Chaining是两种不同的解决hash冲突的策略。当多个不同的key被映射到相同的slot时,chaining方式采用链表保存所有的value。而Open addressing则尝试在该slot的邻近位置查找,直到找到对应的value或者空闲的slot, 这个过程被称作probing。常见的probing策略有Linear probing,Quadratic probing和Double hashing。   2 Chaining 2.1 Chaining in java.util.HashMap       在分析o ...

JLine

    博客分类:
  • SE
 Overview       JLine 是一个用来处理控制台输入的Java类库,目前最新的版本是0.9.94。其官方网址是http://jline.sourceforge.net。在介绍JLine之前,首先还是介绍一下Java 6中的Console类,以便进行对比。   2 Java Console       通过调用System.console()方法可以得到与当前虚拟机对应的Console对象。但是该方法并不保证其返回值一定非null,这取决于底层平台和虚拟机启动的方式:如果是通过交互式的命令行启动,并且标准输入和输出流没有被重定向,那么该方法的返回值通常是非null;如果是被 ...

ID Generator

    博客分类:
  • SE
    关于ID Generator,想必大多数项目都有应用。跟按需生成ID相比,预生成一定数量的ID并加以缓存的方式更有助于提升性能。预生成ID的时机,通常是在发现缓存的ID用尽的时候。这种方式有个缺陷,即从调用者的角度来看每次 ...
If I stop working so hard, would I live longer? No, I just feel longer.   By the way, many thanks to Dawei, you named this blog.  
    目前项目中使用了MySQL replication,并通过LVS对slaves进行负载均衡,数据库连接池使用的是c3p0。在使用过程中发现, LVS TCP timeout可能导致数据库连接被切断,从而应用程序中报数据库连接异常。     ReplicationConnection内部保持了两个数据库连接,分别是masterConnection和slaveConnection。实际生效的连接取决于连接的readOnly属性,即readOnly ? currentConnection=slaveConnection : currentConnection=masterConnection ...
1 Overview     XBean是Apache Geronimo的子项目,目标是像Eclipse IDE那样,用于创建基于插件的服务器(跟Geronimo GBean的目标有些重合)。从现状来看,XBean更多地被用于简化Spring 配置。例如,Apache ActiveMQ的配置基于XBean。2 Custom namespace     最简单的custom namespace是java://加上全路径包名的形式,以下是个简单的例子: package com.versus.misc.xbean; import java.math.BigDecimal; i ...
1 Overview     最近公司的一个任务需要实时监控文件系统中某个文件的内容变化。由于程序本身由Java编写,因此使用了inotify-java(http://code.google.com/p/inotify-java/)。inotify-java只是对Linux中inotify相关的内核调用进行了封装,因此 ...

Perf4J

    博客分类:
  • SE
1 Overview     Perf4j是一个用于计算和显示性能相关的统计信息(例如最大值、最小值、算数平均均值、标准方差和TPS等)的工具集。除了将统计信息输出到标准错误流或者日志中之外,Perf4j也支持输出为图表(使用Google Chart API),以及通过JMX公开。其主要的功能如下: 以StopWatch这种简洁的方式进行计时。 提供了一个命令行工具,用于分析日志以及生成统计信息或图表。 易于集成到大部分已有的日志工具中,例如log4j, java.util.logging, Apache Commons Logging and SLF4J。 提供了定制的log4 ...

MySQL UDF

    最近公司在做个SNS子项目,需要把交易系统中的交易数据实时地发送到SNS子系统中。最自然的设计是修改各个交易模块,将数据向SNS系统传输。但是在评审和开发的时候遇到了不小的阻力。理由很简单,这些修改直接影响系统的核心交易模块,引入了一定的风险。综合考虑后,决定增加个类似于Memcached Functions for MySQL的备选方案。SNS子系统虽然大量地使用了cache,但是没有使用Memcached或EHCache,原因是这些cache实现无法满足所有的需求。最初的想法是在UDF中使用ActiveMQ CPP,将消息直接发送到SNS子系统的cache中。不过最终还是放弃了这种比 ...
Global site tag (gtag.js) - Google Analytics