【Netty4.X】Netty源码分析之ByteBuf(七)

ByteBuf是一个缓冲区,用于和NIO通道进行交互。缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。每当你需要传输数据时,它必须包含一个缓冲区。虽然Java NIO 为我们提供了原生的多种缓冲区实现,但是使用起来相当复杂并且没有经过优化,有着以下缺点: 1、不能进行动态的增长或者收缩。如果写入的数据大于...
阅读(31) 评论(0)

【Netty4.X】Netty源码分析之NioEventLoop(六)

继承关系: NioEventLoop初始化NioEventLoop(NioEventLoopGroup parent, ThreadFactory threadFactory, SelectorProvider selectorProvider) { super(parent, threadFactory, false); if (selectorProvider == null...
阅读(72) 评论(0)

【Netty4.X】Netty源码分析之NioEventLoopGroup(五)

NioEventLoopGroup实际是NioEventLoop的线程组,主要负责管理EventLoop的生命周期,EventLoop的默认大小是2倍的CPU核数,但这并不是一个恒定的最佳数量,为了避免线程上下文切换,只要能满足要求,这个值其实越小越好。继承关系如下: 首先看NioEventLoopGroup构造方法:public NioEventLoopGroup() { this(0...
阅读(142) 评论(0)

开发笔记(二):查找数据丢失问题

今天在跑机器人压测的时候发现服务器日志里出现了不少错误,其中最多的是java.lang.NullPointerException,开发中很常见的空指针问题,不过出现在即将上线的游戏中却显得不太正常。每一个NullPointerException都表示玩家有可能丢失了某条数据。想想一个月前开发性格装备系统时也遇到过类似问题,玩家的装备栏数据丢失导致装备没能显示出来。经过查询发现造成这个问题的原因是因为...
阅读(171) 评论(0)

开发笔记(一):protobuf避免重复代码newBuilder

最近大家都在忙着改BUG,而我却比较闲,开发的模块没有什么BUG,决定抽些时间改下正在开发项目中的一些坏代码。 //坏代码 SC_ResponseMsgProto.Builder responseMsgBuilder = SC_ResponseMsgProto.newBuilder();//重复一 DataMsgProto.Builder dataMsgBuilder = Da...
阅读(620) 评论(0)

阿里巴巴Java开发手册

1.不要嫌名字长 无论是方法,变量,还是函数的取名,不要嫌弃名称太长,只要能够表示清楚含义就可以了。 2.String[] args而不是String args[],中括号是数组类型的一部分,数组定义如下:String[] args; 在《Thinking in Java》这边书里面,是这么解释的: 大部分开发人员,习惯前一种写法。 前一种写法符合我们的口语化,我们口语通常都说:定义一个字符...
阅读(1847) 评论(0)

一元夺宝

2016年,人生没有大变化,上半年辞职学习了下Unity游戏前端开发,另外在CSDN上写了十几篇技术文章,下半年本来是准备出去玩一阵子,然后去影视城跑跑龙套,这里并不是对拍电影有多少兴趣,只是好奇影片背后的东西,当然最后没有去成。9月份加入新公司参与《元气战姬学院》游戏服务器端开发,项目已经进行了一年多,框架都已经搭好了,剩下要做的只是一些新功能开发。责任相较于之前就没有那么重了,而我又是一个不喜欢...
阅读(3266) 评论(3)

【Netty4.X】Unity与Netty使用protoBuf(四)

客户端与服务器端之间传输的数据格式有很多种如Json、XML、thrift、Protobuf等等。protobuf来自谷歌,它的特点是数据小、编解码性能高、支持多种语言,它序列化后的大小是json的10分之一,xml格式的20分之一,是二进制序列化的10分之一。更加详细请阅读下面2篇文章:【Google Protobuf】windows下protobuf的环境搭建(一)【Google Protob...
阅读(1477) 评论(2)

【深入浅出Mysql】MySql存储引擎之MyISAM(二)

一、MyISAM   1.1 数据存储  MyISAM是默认的MySQL插件式存储引擎。它不支持事务和外键。优势:访问速度快,基本上以SELECT、INSERT为主的应用基本上都可以使用这个引擎来创建表。每个MyISAM在磁盘上存储称3个文件,其文件名和表名相同,扩展名不同,分别是:.frm(存储表自定义).MYD(MYDATA,存储数据).MYI(MYIndex,存储索引)  MyISAM的数据...
阅读(1447) 评论(0)

【深入浅出Mysql】MySql存储引擎(一)

一、 MySQL存储引擎   1.1 有哪些存储引擎  MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎。1事务安全表引擎BDB(BerkeleyDB)、InnoDB2非事务安全表引擎MyISAM、MERGE、MEMORY(HEAP)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。   1.2 如何选择最适合你的存储引擎呢?MyISAM:默认的M...
阅读(1311) 评论(0)

Java游戏服务器端面试题整理(转载)

一、选择题1、既希望较快的查找又便于线性表动态变化的查找方法是?A:顺序查找 B:折半查找 C:索引顺序查找 D:哈希法查找ans:C详细解释:查找是在大量的信息中寻找一个特定的信息元素,在计算机应用中,查找是常用的基本运算,例如编译程序中符号表的查找。用关键字标识一个数据元素,查找时根据给定的某个值,在表中确定一个关键字的值等于给定值的记录或数据元素。在计算机中进行查找的方法是根据表中的记录的组...
阅读(1947) 评论(0)

【Redis教程】Redis 简介、安装与配置(一)

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。一、简介   1.1 Redis 特点   Redis ...
阅读(871) 评论(0)

为什么你有10年经验,但成不了专家?(转载)

如何成为一个领域的专家?有人说主要靠经验,有人说靠天赋,但是大量的研究发现:不论是经验还是天赋,都不是成为专家的关键因素。经验并不能让你成为专家。任何一个工作10年的人都很有经验,但是他们大部分并没有做到领域内专家。NSEAD商学院有一项研究发现:比起只有少量经验的人,大体而言,更有经验的管理者并没有产生高效的效果。天赋也不能让你成为专家。即使在国际象棋这样的『高脑力活动』中,研究发现,国际上一些...
阅读(928) 评论(0)

二十岁出头,你一无所有,但你却拥有一切(转载)

转自博客:http://blog.csdn.net/itmyhome1990/article/details/8769913我从来没有看到过一句话,如此让我共鸣。二十岁出头,你一无所有,但你却拥有一切,因为你还有牛逼的梦想。可那又怎样,只有行动,才能解除你所有的不安 (一)嘴上说说的人生  那年我在离家的时候一个劲地往自己的硬盘里塞《灌篮高手》,我妈一副嗤之以鼻的表情看着我,似乎是在说:“这么大的...
阅读(1182) 评论(0)

【游戏后端】游戏服务器端开发的一些建议(转载)

摘要: 本文作为游戏服务器端开发的基本大纲,是游戏实践开发中的总结。第一部分专业基础,用于指导招聘和实习考核, 第二部分游戏入门,讲述游戏服务器端开发的基本要点,第三部分服务端架构,介绍架构设计中的一些基本原则。希望能帮到大家 一 专业基础 1.1 网络 1.1.1 理解TCP/IP协议网络传输模型滑动窗口技术建立连接的三次握手与断开连接的四次握手连接建立与断开过程中的各种状态T...
阅读(7466) 评论(3)
92条 共7页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:191176次
    • 积分:2728
    • 等级:
    • 排名:第12717名
    • 原创:89篇
    • 转载:3篇
    • 译文:0篇
    • 评论:132条
    关于我
      网名小毛驴,一个热爱游戏的程序员。~欢迎访问我的独立博客
      邮箱:liulongling1990@gmail.com
    关注我的微博
    博客专栏