- 博客(43)
- 收藏
- 关注
原创 mysql遇到1366: Incorrect string value的正确解决方法
本人在用mysql保存emoji表情数据的时候遇上了如下报错:mysql 1366: Incorrect string value: '\\xF0\\x9F\\xA5\\xB0\\xF0\\x9Ffor column 'msg_text' at row 1.这是因为mysql默认的utf8只支持三个字节,但是emoji表情是4字节的,超出了mysql的utf8支持范围,修改的方法就是把c...
2019-12-22 11:51:08
14942
原创 DBProxy代码浅析
DBProxy代码浅析DBProxy代码浅析你理想中的数据库Proxy是什么样子的?怎样通过DBProxy插入和查找一条数据线程池shardingQueryTransactionDBDeployer使用中的建议DBProxy代码浅析你理想中的数据库Proxy是什么样子的?程序员都希望数据库是能够无限存储数据的,但是单个DB Instance明显是无法做到的,所以分库分表就是解决海量数据存储的...
2019-08-24 23:11:05
929
原创 项目中加入slf4j log遇到的问题和解决方案
本人想在项目中加入log系统,采用slf4j+log4j的框架,在集成到项目中时,遇到了2个问题,记录下来。multiple SLF4J bindings错误日志SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/C:/Users/Administrator/.grad...
2019-02-28 18:21:49
6453
原创 重构-改善既有代码的设计 读书心得(二)
目录第七章第八章 重新组织数据第九章第十章 简化函数调用第七章在对象之间搬移特性如果一个类有太多行为,或者与另一个类有太多合作形成高度耦合,就可以搬移函数。如果被搬移函数只引用了原类的一个字段,那么只需将这个字段作为参数传递过来,如果调用了原类的函数,那么必须将源对象传递过来。如果需要很多原类特性,那就要进一步重构,比如分解目标函数,把其中一部分移回原类。move field对于一个...
2019-01-29 15:19:37
463
原创 重构-改善既有代码的设计 读书心得(一)
目录《重构-改善既有代码的设计》第一章第二章第三章 代码的坏味道第六章 重新组织函数《重构-改善既有代码的设计》这本书有些“年纪”了,按理说it界的书都是读新不读旧。但它有点特别,其中的关于重构和面向对象的思想我觉得放到现在也是不过时的。好多时候我们考察一个程序员,都是看他懂多少东西,知道多少概念,做过什么项目,但其实一个程序员最关键的素质是要写出好的代码。好的代码不是一天炼成,往往都要经过大...
2019-01-17 15:47:45
1697
原创 SimpleXml读取一些特殊Xml的用法
SimpleXml读取一些特殊Xml的用法Java解析Xml一般就是Dom和Sax两种方式。SimpleXml是一个开源的第三方库http://simple.sourceforge.net,它提供了另一种思路,就是xml和java class通过annotation一一对应,中间的转换过程由它来完成,省去了程序员自己去写Xml解析的逻辑。看起来很美好,但是如果碰到Xml或者java class...
2018-12-18 16:07:58
1007
转载 浅谈《守望先锋》中的 ECS 构架(转自云风)
今天读了一篇 《守望先锋》架构设计与网络同步 。这是根据 GDC 2017 上的演讲 Overwatch Gameplay Architecture and Netcode 视频翻译而来的,所以并没有原文。由于是个一小时的演讲,不可能讲得面面俱到,所以理解起来有些困难,我反复读了三遍,然后把英文视频找来(订阅 GDC Vault 可以看,有版权)看了一遍,大致理解了 ECS 这个框架。写这篇 Bl...
2018-12-01 17:49:30
1041
1
原创 浅析js中的Promise和async/await
浅析js中的Promise和async/await最早的callbackjs是单线程的,为了避免io类操作阻塞主线程,所以必须采用回调函数callback的形式把耗时的io操作委托给其他io线程处理(所以js并不是纯的单线程,只是有一个主线程在做mainloop而已)比如这样:fs.readFile("a.txt",{encoding:"utf-8"}, function (err, fr)...
2018-11-02 01:55:46
18036
8
原创 不停服热加载java代码
我司自研的key-value数据库Xdb支持锁和事务,还是非常好用的,不过Xdb有一个问题就是死锁,尤其是频繁出现的死锁,基本上玩家啥都干不了了,只有重启.虽然程序员应该负责消灭所有死锁,但是这仅仅是理论上的可能.很多开发的task时间紧任务重,想要完美避免死锁很难. 不过xdb的这套体系也有两个优点:1逻辑和数据基本上是分离的,也就是说,不存在一个类即做逻辑又负责保存玩家数据;2...
2018-06-25 17:16:12
3104
原创 linux下使用jstack来找出死循环的java代码(iteye文章迁移,2013-09-26)
我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙: 1.top查找出哪个进程消耗的cpu高 21125 co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java ...
2018-06-25 14:54:58
185
原创 记录一次游戏服务器的批量掉线事故(iteye文章迁移,2014)
我负责的手游项目先后在大陆和台湾上线,大陆服先上的,一直比较稳定,台湾服一个多月前出现了半夜无法登陆和批量掉线的问题,由于一开始判断错了方向,导致找到正确的原因花了不少时间,现在把这个问题记录下来,分享一下.也许以后碰上类似的问题能用的上.问题描述:服务器运行一段时间后,玩家会无法登录,然后查gsx的日志,也没有发现死锁.解决的办法就是重启,但是重启之后同样的服务器隔一两天又会出现同样的问...
2018-06-25 14:36:15
681
原创 用python抓取津房置换的房屋挂牌交易数据
天津所有的公产房的交易都要通过这个网站来摘牌挂牌,本人因为房屋交易的需要,想抓取这个网站每天的挂牌公产房信息。这对于python的老手来说根本就是个小case,但本人之前只是python学了个入门教程,手写了个抓svn提交数据的python脚本,怎么抓互联网的信息还没尝试过,不过码农的一个特质就是爱折腾嘛,尝试着从0开始,花了2个晚上的下班时间搞定。下面记录下关键步骤,希望对跟我有类似需求...
2018-06-03 23:23:13
1575
原创 Eclipse中如何消除快捷键定义冲突(keybinding conflict)(blogjava文章迁移2008-10-14)
由于Eclipse的易扩展性,理论上可以有无数个Action运行在一个RCP 程序中,但是快捷键是有限的,尤其是一些常用的,像Ctrl+C,Ctrl+S之类的普通用户能记得住的就那么几个,万一你自定义的Action的快捷键和Eclipse默认的发生了冲突怎么办?比如Eclipse默认Ctrl+S是Save的快捷键,但是你又自定义了一个SaveAction,希望用户按下Ctrl+S之后执行的是自己的...
2018-05-15 17:45:20
881
原创 Eclipse的奇怪问题总结(blogjava文章迁移2008-12-02)
1.有的时候在project的java build path中定义好了一些jar包依赖,但是project在运行的时候仍然报NoClassDef的错误.这是因为project的MANIFEST.MF文件没有更新.手动在MANIFEST.MF加上那些jar包就可以了.2.Plugin A 依赖 Plugin B.B也把相应的package export出来了,但是A还是找不到B里面定义的类.修改A的...
2018-05-15 17:43:23
155
原创 TreeViewer的setselection方法不能选中树的子节点?(blogjava文章迁移2009-05-11)
TreeViewer的setSelection方法使用后,会在树上选中并展开方法参数中对应的节点.但是有时候你发现它只能选中第一级节点,下面的子节点没有办法选中.其实这个方法是没有问题的,它的大概实现算法是:先找到某一个子节点,然后找到它的父节点,把父节点展开,然后又找父节点的父节点,做同样的操作,直到根节点为止,这样你才能看到选中的子节点.所以父节点如果为null,那肯定你是看不到子节点了.而我...
2018-05-15 17:41:02
390
原创 在Eclipse中去掉多余的UI组件的几个方法(blogjava文章迁移)
Eclipse的扩展机制是其一个重要特色,但随着Eclipse功能越做越强,插件越来越多,你会发现GUI上的图标越来越多,Menu,toolbar,context menu都被占满了,其实很多item并不是我们需要的,但是contribute这些item的插件我们是需要的,那怎么去掉它们扩展的那些菜单项呢?1.在Plugin.xml中定制 这是最简单的办法,很多时候我们自己想写代码来去掉一些菜...
2018-05-15 17:38:52
393
原创 定制Eclipse的Content assist(代码补全),比如空格键不上屏(blogjava迁移 2010-12-15)
以前只知道alt+/调出assist,后来发现可以所有字母都激活content assist(方法百度上都有,就不在这写了).用起来果然很爽.但是eclipse还是有些默认的设置不是很好,比如空格键和=号会把第一行的内容自动上屏,其实很多时候我就是想输一个空格或=号而已.这个在设置里面没办法设置.幸好eclipse是有插件机制的,可以通过修改插件的源码,然后导出成插件,再替换掉原来的插件来处理1....
2018-05-15 17:32:46
378
原创 eclipse,GEF 小技巧(blogjava文章迁移2007-04-11)
1.在tabbedProperties(eclipse3.2以上支持)中,如果要建立一个treeview,且想要click任何一列都可以实现celledit,需要在创建treeview的时候加上style: SWT.FULL_SELECTION2.tabbedProperties中section的大小现在无法做到根据widget的大小自动调整,目前只能用getMinimumHeight()返回一个...
2018-05-15 17:22:49
279
原创 linux ip段的写法和含义
我的理解,不是正确不正确,请高手指教XXX.XXX.XXX.XXX/nXXX.XXX.XXX.XXX 是IP地址,分为A、b、c、d、e类,192.168.2.12就是C类地址A类1.0.0.0 到126.0.0.0 0.0.0.0 和127.0.0.0保留 B 128.1.0.0到191.254.0.0128.0.0.0和191.255.0.0保留...
2014-07-22 15:51:15
883
原创 JAVA反射修改常量,以及其局限
问题,以及一个解决方案今天公司的JAVA项目碰到一个问题:在生成xls文件的时候,如果数据较多,会出现ArrayIndexOutOfBoundsException。Google发现是项中所用的jxl包(开源库,用以处理xls文件)的一个BUG。也找到了一个解决办法:http://www.blogjava.net/reeve/archive/2013/01/11/114564.html——即找...
2014-07-11 15:43:41
151
原创 linux下使用jstack来找出死循环的java代码
我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙: 1.top查找出哪个进程消耗的cpu高 21125 co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java ...
2013-09-26 20:49:38
327
原创 java socket编程中一些方法参数的意义
3.1 构造ServerSocketServerSocket的构造方法有以下几种重载形式:◆ServerSocket()throws IOException ◆ServerSocket(int port) throws IOException ◆ServerSocket(int port, int backlog) throws IOException◆ServerSocket(int...
2013-08-12 18:50:40
505
原创 为什么linux的硬连接(hard link)不能指向目录
This is just a bad idea, as there is no way to tell the difference between a hard link and original name.Allowing hard links to directories would break the directed acyclic graph structure of the f...
2013-07-22 20:18:41
2922
原创 10分钟让你学会iptables的基本操作
iptables防火墙可以用于创建过滤(filter)与NAT规则。所有Linux发行版都能使用iptables,因此理解如何配置iptables将会帮助你更有效地管理Linux防火墙。如果你是第一次接触iptables,你会觉得它很复杂,但是一旦你理解iptables的工作原理,你会发现其实它很简单。 首先介绍iptables的结构:iptables -> Tables -> Ch...
2013-07-16 18:14:12
199
原创 Linux下修改firefox的右键菜单快捷键
firefox在 ~/.mozilla 里面有配置文件,但是要修改右键菜单的话, 却是在另一个文件夹:/usr/lib64/firefox, 不知道这样做是为了什么,难道是支持多用户多份配置?1.如果是默认的英文语言的firefox, 直接修改/usr/lib64/firefox下的omni.ja文件,它其实是个压缩文件,可以直接编辑里面的chrome/en-US/locale/browser...
2013-06-15 23:40:23
589
原创 iptables—过滤包—命令(-A、-I、-D、-R、-L等)、参数(-p、-s、-d、--sport、--dport、-i、-o等)、动作-j (ACCEP...
iptables 指令语法: iptables [-t table] command [match] [-j target/jump] -t 参数用来指定规则表,内建的规则表有三个,分别是:nat、mangle 和 filter, 当未指定规则表时,则一律视为是 filter。各个规则表的功能如下: na...
2013-06-06 19:06:41
432
原创 iptables里面的dport和sport(转帖)
首先先来翻译一下dport和sport的意思:dport:目的端口sport:来源端口初学iptables比较容易迷糊,但是我尽量用通俗的语言给你讲解。dport 和sport字面意思来说很好理解,一个是数据要到达的目的端口,一个是数据来源的端口。但是在使用的时候要分具体情况来对待,这个具体情况就是你的数据包的流动行为方式。(INPUT还是OUTPUT)比如你的...
2013-06-06 18:55:51
557
原创 fedora18 live cd 硬盘安装(和win7组成双系统)
网上貌似这样的文章不少,但要看清楚了,有的帖子说说安装DVD.iso的fedora18,就是4个多G的那种,而我是想安装live cd版本的,不到1G,所以引导方式不一样.如果是安装DVD版本,相对比较简单,安装easybcd,然后设置grub的配置:title Fedora Installkernel (hd0,x)/vmlinuz linux askmethodinitrd (...
2013-05-21 20:53:47
214
用jstack分析可能存在的死循环
我们使用jdk自带的jstack来分析。当linux出现cpu被java程序消耗过高时,以下过程说不定可以帮上你的忙: 1.top查找出哪个进程消耗的cpu高 21125 co_ad2 18 0 1817m 776m 9712 S 3.3 4.9 12:03.24 java ...
2013-05-05 11:12:02
346
原创 samba的安装和配置
一. samba的安装:sudo apt-get insall sambasudo apt-get install smbfs二. 创建共享目录:mkdir /home/phinecos/sharesodu chmod 777 /home/phinecos/share三. 创建Samba配置文件:1. 保存现有的配置文件sudo cp /etc/sa...
2013-03-12 15:27:56
126
原创 XStream的一些有用的方法
1.addImplicitCollection 类里面包含一个List变量在读取xml配置的时候是很常见的情况,比如:有三个类:AuditTrail, AuditTrailEntry, AuditTrailEntryField,要读取的xml: ...
2012-03-19 17:33:33
699
原创 局部内部类要使用局部变量,为什么这个局部变量必须是final的
1)所谓“局部内部类”就是在对象的方法成员内部定义的类。而方法中的类,访问同一个方法中的局部变量,是天经地义的。那么为什么要加上一个final呢? 2)原因是:编译程序实现上的困难,难在何处:内部类对象的生命周期会超过局部变量的生命期。为什么?表现在:局部变量的生命期:当该方法被调用时,该方法中的局部变量在栈中被创建(诞生),当方法调用结束时(执行完毕),退栈,这些局部变量全部死亡。而:内部类...
2011-04-22 16:33:51
206
原创 java编码问题的简单总结
1.java中存储字符串都是用unicode(utf-16le).2.unicode只是一种编码方式,简单地说,unicode只是规定了从数字到对应的字符的一个映射,但怎么表示这个数字,就有多种方法了.比如,“汉字”对应的数字是0x6c49和0x5b57,而编码的程序数据是:BYTE data_utf8[] = {0xE6, 0xB1, 0x89, 0xE5, 0xAD, 0x97}; /...
2011-03-15 19:41:19
119
原创 java读写文件的时候指定编码格式(转载)
1.读文件 当时为了数据的可移植性我放弃了使用数据库,将全部数据保存为UTF-8编码的文 本文件,在.net中读取这种文件秩序只要指定打开文件的编码方式,中文问题就可 以避免。但是按照我以前的思维,java中不是这么作的,java中都是先读取后转换 的,最后的结果证明我错了,看来经验主意害死人呀。 Java代码 File f=new File((new BoxCo...
2011-02-25 17:08:29
777
转载 java生成xml文件的时候如何控制xml的缩进格式
使用java自带的xml api生成的xml文件,其格式都是没有缩进的,每个element都是顶到最前面,今天终于找到了比较好的处理方法,赶紧记下来.使用Java标准的JAXP来输出可以使用:Transformer transformer = TransformerFactory.newInstance().newTransformer();transformer.setOutputPrope
2008-05-27 16:39:00
6087
1
转载 ant使用教程
Ant是什么? Ant是一种基于Java和XML的build工具。2 下载、安装Ant 安装Ant下载.zip文件,解压缩到c:/ant1.3(后面引用为%ANT_HOME%)2.1 在你运行Ant之前需要做一些配置工作。? 将bin目录加入PATH环境变量。 ? 设定ANT_HOME环境变量,指向你安装Ant的目录。在一些OS上,Ant的脚本可以猜测ANT_HOME(Unix和Wind
2006-09-19 14:36:00
13857
4
转载 java的值传递和引用传递问题
比如:Object o1 = new Object();3.2 传递传递是通过变量之间的赋值实现的。在以前的回贴中我说过这样一句话,单纯从变量的角度看,变量之间的赋值是值传递。现在我解释一下我的观点。先举一个例子:// java中所有的类的基类默认为Object,在此不赘述。class Object1 {}class Object2 {}Object o1, o2;o1 = new
2006-09-15 10:52:00
1467
原创 swt-designer中关于gridlayout的使用
swtdesigner是一个非常强大的gui工具,但是强大的一个缺点就是有些操作比较难搞懂.gridlayout可以说是swt中最复杂 的布局了,以前一直不知道怎么在swtdesigner中使用gridlayout布局,现在有了点经验,发出来共享一下:首先,在swtdesigner中,numcolumn这个属性基本没什么用,因为就算你把它设为3,但如果只有两个组件的话,那多出来的一个格子还是不
2006-08-30 23:29:00
2667
原创 java中数组和容器的转换
可以用Arrays.asList( )方法把数组改造成List:实际上它只是部分地实现了Collection 和List 接口。调用其它方法会引发一个UnsupportedOperationException 异常。比如你不能用add方法.Arrays.asList( )返回的是一个由固定容量的数组支撑的List。如果要创建普通容器,随时都可以把Arrays.asList( )的结果当作构造函数的
2006-08-30 14:46:00
1329
原创 java中如何调用.bat程序
其实只要在字符串前加上cmd /c start就可以了public class Test { static public void main(String[] args) { String cmd = "cmd /c start C:/WSCA-ENU-06-12/setpassword.bat"; try { Process
2006-07-24 13:53:00
2027
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人