摘要: 任何一个语言,都有他的流程控制模块,而且都相差不大,go语言也不例外。 阅读全文
posted @ 2016-07-10 17:57 li.zhiliang 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 常量是程序中的不变量,从程序启动到程序结束 阅读全文
posted @ 2016-07-10 12:16 li.zhiliang 阅读(306) 评论(0) 推荐(0) 编辑
摘要: java序列化是指java对象转为二进制流;对应的还有反序列化,是把二进制流转为对象。java中序列化,要么是为了对象持久化,要么是为了网络传输。java对象序列化技术,在现在的应用开发中,越来越重要,特别是现在的分布式异构系统中,系统与系统中对象的网络传输,rpc调用。 阅读全文
posted @ 2016-07-09 17:54 li.zhiliang 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 以前Synchronised关键字加锁效率问题,经常受到吐槽。后来java的开发团队进行了优化,引入了偏向锁、自旋锁、轻量锁,性能有了很大的提升。下面我们来分析下这里面的过程和原理。 阅读全文
posted @ 2016-07-07 20:29 li.zhiliang 阅读(1270) 评论(0) 推荐(0) 编辑
摘要: int8 表示一个字节长的整形(-128 ~ 127);对应的还有uint8表示非负的一个字节长的整形(0 ~ 255);byte和uint8相同;int 的长度同操作系统相关,32位的系统长度为4个字节,64位系统为8个字节;go语言添加了string为基本类型,这是和java不同的 阅读全文
posted @ 2016-07-03 12:08 li.zhiliang 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 我们都知道,jvm执行的代码,都是通过jvm加载系统加入的。加载系统的第一步是通过ClassLoader加载class二进制信息,jvm规范中并没有规定class的来源类型,这就给jvm的实现这块很大的灵活。可以放在数据库里,可以放在网络的其他地方(以前的applet),zip文件等。现在大多数都是放在zip包里,我们引入其他class都是通过引入zip包的形式。 阅读全文
posted @ 2016-07-03 08:27 li.zhiliang 阅读(168) 评论(0) 推荐(0) 编辑
摘要: BloomFilter算法,是一种大数据排重算法。在一个数据量很大的集合里,能准确断定一个对象不在集合里;判断一个对象有可能在集合里,而且占用的空间不大。它不适合那种要求准确率很高的情况,零错误的场景。通过牺牲部分准确率达到高效利用空间的目的。 阅读全文
posted @ 2016-06-30 00:01 li.zhiliang 阅读(3436) 评论(0) 推荐(0) 编辑
摘要: 我是做java开发的,从接触java开始算,已经8年了,为什么会想到学go语言呢?前端时间我一直在学习jvm,java的一些更底层的东西,梳理回顾时,感觉可以通过学习其他开发语言,来提升我对java的理解,站在另一个角度来看java。但是又怕是蜻蜓点水式的学,达不到效果,于是有了接下来的文章,希望能写下去。 阅读全文
posted @ 2016-06-25 22:00 li.zhiliang 阅读(2637) 评论(0) 推荐(0) 编辑
摘要: 应用开发中,我们经常需要涉及到数据主键的生成。大部分情况,我们会采用数据库主键自增,比如学生表,让学生表里的id自增。但是如果我们希望主键里保护日期信息呢?或者我们在库里实行了分表策略,表主键自增也是不行的。 阅读全文
posted @ 2016-06-23 21:41 li.zhiliang 阅读(3712) 评论(0) 推荐(0) 编辑
摘要: 在分布式场景中,后台提供的支撑服务是n个具体的主机,我们怎么能做到每台主机的负载均衡,伸缩性灵活呢?在分布式服务上,我们用一些hash策略就能实现均衡。添加一台服务器或者下线一台服务器,更新路由配置就ok了。但是在分布式缓存上,如果添加一台主机或者下线一台主机,也采用相同的策略,这意味着之前的全部缓存将失效,这种后果是大部分系统无法承受的。那怎么办呢? 阅读全文
posted @ 2016-06-21 21:17 li.zhiliang 阅读(183) 评论(0) 推荐(0) 编辑