- 博客(24)
- 资源 (6)
- 问答 (1)
- 收藏
- 关注
原创 关于数据序列化(2)二进制流示例
像这样大家觉的直接writeInt(),writeByt();用来跟客户端通讯和做持久化存在硬盘有什么问题吗protobuf哪里能看出来是省资源了,他的原理不也是格式化存储吗难道会比直接写二进制流还省?
2015-04-01 09:00:32 1703
原创 ConcurrentLinkedQueue 以及 BlockingQueue
import java.util.concurrent.ConcurrentLinkedQueue;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import com.google.com
2015-04-27 15:09:34 771
原创 CountDownLatch的用法
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。主要方法 public CountDownLatch(int count); public void countDown(); public void await() 举例:import java.text.SimpleDateFormat;impo
2015-04-25 20:37:16 930
原创 Java整数占几个字节,以及负数的二进制表示方法,以及Java的逻辑运算符>>和>>>的区别
Java整数占几个字节?答:占4个字节,共32个比特位1个字节占8个比特位(1B(byte)= 8 bit)因此,类型和字节对应如下byte 1short 2char 2int 4float 4double 8double 8--------------------------------------------------------
2015-04-24 09:59:07 2535
原创 关于Executor 接口
public interface Executor { /** * @param command the runnable task * @throws RejectedExecutionException if this task cannot be * accepted for execution * @throws NullPoint
2015-04-20 21:19:07 779
原创 Java书写示例equals(),hashCode(),compareTo(),clone(),StringBuilder(),list删除元素等
equals()实现equals()参数必须是Object,而不能是外围类覆盖equals()时,也要覆盖相应的hashCode(),与equals(),保持一致另外注意String的默认值是nullpublic class Person { private String name; private int birthYear; byte[] raw; @Ove
2015-04-17 20:19:42 974
原创 linux下Java 环境变量,Java 环境变量,Python2.7环境变量,unite环境变量,mysql环境变量配置,maven
-----------------------------------------Java----------------------------------------------------JAVA_HOMEC:\Program Files\Java\jdk1.8.0_05;Path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;CLASS_PASS
2015-04-16 13:23:01 996
原创 回调以及异步调用
来源出处:点击打开链接例子1首先看一段代码:模板方式:public abstract class B{ public void execute(){ getConnection(); doCRUD(); releaseConnection(); }
2015-04-14 21:24:41 1047
原创 【游戏服务器Util】 提高反射的速度
Constructor constr = targetClass.getDeclaredConstructor();constr.setAccessible(true);Object inst = constr.newInstance();Accessable属性是继承自AccessibleObject 类. 功能是启用或禁用安全检查使用了method.setAccessible(tr
2015-04-14 10:57:42 668
原创 【Java书写】@SuppressWarnings("unchecked") 以及强制转换和泛型的疑问
项目中有如下代码: private GeneratedMessage msg; @SuppressWarnings("unchecked") public T getMsg() { return (T) msg; }问题①@SuppressWarnings("unchecked")应该出现的场合, SuppressWarnings是告诉编
2015-04-13 20:29:35 1949
原创 【游戏服务器Util】 commons-lang3.jar StopWatch 计时
public class StopWatchTest { //执行计时 private final StopWatch watch; public StopWatchTest(){ this.watch = new StopWatch(); } public void test(){ int n = 10000; while(n-->0){ System.out.pri
2015-04-13 17:18:38 974
原创 【游戏服务器】游戏服务器中的日志处理方式之一
在游戏开发的过程中,我们需要记录一些日志,以便以后了解游戏运行的情况,以及根据日志发现并处理游戏中的突发情况。一,游戏日志可以分为以下几种:1)系统日志2)用户操作日志3)异常日志,即错误日志系统日志系统日志一般描述的是服务器日常运行的状态。比如启动是否成功,每天统计一下内存的占用量,CPU的使用量等信息。用于查检服务器运行的健康状况。这对于技术分析来说是非常重要的。如果没
2015-04-12 19:03:11 4309 2
转载 Redis在游戏开发中的应用
Redis是一个新兴的NoSql数据缓存组件,与memcache类似,但是功能却比memcache多一些。首先,Redis和memcache都是基于内存的,所以读取和写入速度都非常快。但是memcache只支持简单的key-value数据的存储方式,而Redis对key-value ,hash,list,set,SortSet等数据结构有很好的支持。下面就Redis在游戏的开发应用中做一些简单的介
2015-04-10 09:05:05 1159
转载 分布式(集群)与集群的联系与区别
分布式是指将不同的业务分布在不同的地方。 而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。 而集群并不一定就是分布式的。 举例:就比如新浪网,访问的人多了,他可以做一个群集,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。 而分布式,从窄意上理解,也跟集群差
2015-04-09 11:22:47 606
转载 转:深入Java单例模式----绝对最深入
摘要:单例在游戏中会经常用到,它减少了对象分配的次数,也就是new的次数,每次使用对象时,对象已经提前实例化完成了。但是游戏服务器往往是一个多线程的环境,所以单例也必须是线程安全的。看一下这篇文章,你会明白很多 在GoF的23种设计模式中,单例模式是比较简单的一种。然而,有时候越是简单的东西越容易出现问题。下面就单例设计模式详细的探讨一下。 所谓单例模式,简单
2015-04-08 13:46:51 1872 2
原创 [转]一个手机游戏的服务器架构
原文出处:点击打开链接说起来游戏服务器的开发,是一个非常宏大的命题。到如今谁也说不清楚服务器到底是一个什么。无非就是游戏逻辑计算,数据存储,高并发之类的话题。服务器架构更是众说纷纷,其根源在于,没有放之四海而皆准的架构。每个公司的游戏类型不同,服务器架构也就不同。新手,可以根据别人的架构获学习和认识一般的游戏服务器都有哪些功能和设计,入门者可以根据别人架构获得一些灵感和启发,补
2015-04-08 13:44:06 2327
转载 Spring原理概述
本文为转过来,对Spring进行了总体上的说明,有益于建立对Spring的总体把握和认识。 1、spring原理spring的最大作用ioc/di,将类与类的依赖关系写在配置文件中,程序在运行时根据配置文件动态加载依赖的类,降低的类与类之间的藕合度。它的原理是在applicationContext.xml加入bean标记,在bean标记中通过class属性说明具体类名、通过
2015-04-08 13:34:11 524
转载 设计模式六大原则(4):接口隔离原则
定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关系。也就是采用接口隔离原则。举例来说明接口隔离原则:
2015-04-07 06:48:58 548
转载 设计模式六大原则(3):依赖倒置原则
定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。解决方案:将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接
2015-04-06 23:06:35 561
转载 设计模式六大原则(2):里氏替换原则
肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子
2015-04-06 22:56:44 576
转载 设计模式六大原则(1):单一职责原则
定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T
2015-04-06 22:54:15 614
原创 关于游戏服务器是多线程还是单线程的讨论
最近做有关于游戏服务器用单线程的好还是多线程的好的讨论有同学问:服务端逻辑全单线程的模型,为了避免查询离线玩家数据造成阻塞,除了启动服务器全部加载以外还有更好的办法吗?同学B: 单线程逻辑模型也属于很常用。逻辑本身不容易出问题。IO得全部分出去。同学B: 用异步加载事件。数据加载完成后。再重新把任务排入单线程任务队列。同学C: 各种活动NPC打完就要从场景消失 战斗线程和场景
2015-04-03 08:52:54 9111 4
原创 MyISAM和InnoDB的区别的粗略理解
Innodb带是带主键的表,插入删除的时候是行锁,myIsam是表锁。就是创建表的时候声明了innodb,并设置了primary key,那么数据库在写id==xxx的数据的时候,只有读id=xxx的操作需要等待,读id=nnn可以正常读,如果用myisam,写某一行的时候,对整张表人异一行的操作都需要等待。还去其他的区别。。。就不太深入了解了MyIsam:比isam多索引
2015-04-02 20:27:07 494
原创 java 求二叉树的深度
public class Node{ Node lChild; Node rChild; int data; Node(int data){ lChild = null; rChild = null; this.data = data; }}public class BinTreeTest2 { private static int arr[] =
2015-04-02 03:35:37 987
C程序设计语言(第2版·新版).rar+C程序设计语言(第2版·新版)习题解答.rar
2010-03-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人