曹耘豪的博客

Linux文件权限

Fastjson key不会自动加上引号

Python 生成表达式和生成器

Java基础之利用反射访问private字段和方法

Gradle运行指定模块的指定测试

Protobuf 的一些坑

字段顺序问题

getDeclaredFields 方法返回的 Field 列表顺序和我们在类里面定义的不一样。它是做过字母排序的。

我们知道 Protobuf 的序列化中所需要的 Schema 是对类下面的 Field 顺序强依赖的。

而在我们的Server端的调式中, 我们发现我们的Field顺序是和我们在类中定义的是一样的。

JDK 1.6 以上这个顺序才保证是和类定义中的顺序是一致的,而在早期版本中这个顺序是没保证的,是根据各 JDK 的实现自己做的。也就是说 ProtostuffRuntime 其实只能保证在 JDK1.6 以上能正确运行。 更别说 Android 这样的非正统的 JVM 系统了。
问题找到了,那怎么解决呢?

>>继续阅读

C++ using 的3种使用

>>继续阅读

C++基础

std::string::c_str()

c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同,这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。

>>继续阅读

Linux查看机器物理信息

JVM DNS缓存问题解决方式

清除 JVM 中的 DNS 的缓存 >>查看全文