UTF-8编码规则(转)
摘要:UTF-8是Unicode的一种实现方式,也就是它的字节结构有特殊要求,所以我们说一个汉字的范围是0X4E00到0x9FA5,是指unicode值,至于放在utf-8的编码里去就是由三个字节来组织,所以可以看出unicode是给出一个字符的范围,定义了这个字是码值是多少,至于具体的实现方式可以有多种多样来实现。
UTF-8是一种变长字节编码方式。对于某一个字符的UTF-8编码,如果只有一个字节则其最高二进制位为0;如果是多字节,其第一个字节从最高位开始,连续的二进制位值为1的个数决定了其编码的位数,其余各字节均以10开头。UTF-8最多可用到6个字节。
如表:
阅读全文
posted @
2015-01-12 01:13
上校
阅读(1090)
推荐(0) 编辑
过滤3个字节以上的utf-8字符
摘要:/**
* 过滤掉超过3个字节的UTF8字符
* @param text
* @return
* @throws UnsupportedEncodingException
*/
public static String filterOffUtf8Mb4(String text) throws UnsupportedEncodingException {
byte[] bytes = text.getBytes("utf-8");
ByteBuffer buffer = ByteBuffer.allocate(bytes.length);
int i = 0;
阅读全文
posted @
2015-01-11 23:30
上校
阅读(3212)
推荐(1) 编辑
通过位运算生成ID
摘要:public static void main(String[] args) {
long serverId = 65535;
System.out.println("ServerId:" + serverId);
long a1 = 0b11110001001000000;// 123456
// 11110001001000000
// 0000000000000000
System.out.println("顺序号,a1:" + a1);
long a2 = a1 16;
System.out.println("左移16位,a2:" + a2);
阅读全文
posted @
2015-01-10 21:05
上校
阅读(413)
推荐(0) 编辑
Netty系列之Netty百万级推送服务设计要点
摘要:原文:http://www.infoq.com/cn/articles/netty-million-level-push-service-design-points
1. 背景
1.1. 话题来源
最近很多从事移动互联网和物联网开发的同学给我发邮件或者微博私信我,咨询推送服务相关的问题。问题五花八门,在帮助大家答疑解惑的过程中,我也对问题进行了总结,大概可以归纳为如下几类:
Netty是否可以做推送服务器?
如果使用Netty开发推送服务,一个服务器最多可以支撑多少个客户端?
使用Netty开发推送服务遇到的各种技术问题。
由于咨询者众多,关注点也比较集中,我希望通过本文的案例分析和对推送服务设计要点的总结,帮助大家在实际工作中少走弯路。
阅读全文
posted @
2015-01-05 19:13
上校
阅读(15076)
推荐(11) 编辑
关于 MySQL UTF8 编码下生僻字符插入失败/假死问题的分析
摘要:原文:http://my.oschina.net/leejun2005/blog/343353
目录[-]
1、问题:mysql 遇到某些中文插入异常
2、原因:此 utf8 非彼 utf8
3、解决方案
3.1 升级 mysql 版本,并将utf8字符集升级到utf8mb4
3.1.1 直接修改表结构
3.1.2 修改数据库默认配置
3.2 强行过滤掉生僻字符串
3.2.1 shell 过滤
阅读全文
posted @
2015-01-05 16:44
上校
阅读(7499)
推荐(2) 编辑
ANT教程经典
摘要:Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。
一. 安装与配置
下载地址:http://ant.apache.org/,在本文中下载的是1.7.0版本。解压到某个目录(例如E:"apache-ant-1.7.0),即可使用。
添加系统环境变量:ANT_HOME,该变量指向Ant解压后的根目录,在此为E:"apache-ant-1.7.0。
安装与配置完毕后,读者可以测试一下Ant是否可用,首先进入Ant的bin目录,运行命令ant –version,若安装和配置成功,则会显示Ant版本信息,如下图所示:
阅读全文
posted @
2015-01-02 22:57
上校
阅读(311)
推荐(0) 编辑
volatile适用场景
摘要:1.volatile最适用一个线程写,多个线程读的场合。
如果有多个线程并发写操作,仍然需要使用锁或者线程安全的容器或者原子变量来代替。(摘自Netty权威指南)
疑问:如果只是赋值的原子操作,是否可以多个线程写?
阅读全文
posted @
2015-01-01 21:28
上校
阅读(7775)
推荐(0) 编辑
Java并发编程:volatile关键字解析
摘要:Java并发编程:volatile关键字解析
volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。
volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。
阅读全文
posted @
2015-01-01 15:13
上校
阅读(495)
推荐(0) 编辑
JAVA CAS原理深度分析
摘要:CAS
CAS:Compare and Swap, 翻译成比较并交换。
java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。
本文先从CAS的应用说起,再深入原理解析。
阅读全文
posted @
2015-01-01 00:43
上校
阅读(8884)
推荐(2) 编辑