看到Python程序员的10个常见错误这篇文章中讲到了闭包和后期绑定的问题。
有很多不同的人都对闭包过进行了定义:
Write a program that makes 2 + 2 = 5,看到这个题目,感觉很新颖,第一个答案就是用Java实现的。用上了Java中的整型实例池的概念。以前只看到过实例池导致两个对象的指针相同的问题,即
看到Guava这个名字觉得有点怪怪的,于是搜索了一下,Google Java的合称。Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合(collections)、缓存(caching)、原生类型支持(primitives support)、并发库 (concurrency libraries)、通用注解(common annotations)、字符串处理(string processing)、I/O 等等。 所有这些工具每天都在被Google的工程师应用在产品服务中。
项目信息
首页:https://code.google.com/p/guava-libraries/
并发编程网在对每一个主题的各个子类的介绍进行翻译并发表。这里转载目录。
本文是JSR-133规范,即Java内存模型与线程规范,由JSR-133专家组开发。本规范是JSR-176(定义了Java平台 Tiger(5.0)发布版的主要特性)的一部分。本规范的标准内容将合并到Java语言规范、Java虚拟机规范以及Java.lang包的类说明中。本JSR-133规范将不再通过JCP维护和修改。未来所有对这些标准化内容的更新、修正以及说明都会出现在上述这些文档中。
这篇文章想以一个内存越界问题分析过程来说明进程的内存布局。问题有点巧合,程序刚好没有出现segment fault,而是继续在运行,却出现了很诡异的结果。
实例说明:编写一个对Linux消息队列的测试程序,同时提供收发程序,接收程序使用NOWAIT的方式来接收,发送端每隔一段时间发送一个消息。接收端和发送端都作一个操作次数统计,接收端的读取间隔时间设置较短,因此存在消息队列为空的情况,在此情况下,只做计数,休眠较短时间后继续下一次读取。
测试出问题程序的代码如下:
以GoF的经典教材为例,一句话总结个人的理解。
最近遇到一个问题需要做本地缓存,首先想到就是hash表。如果是java,太easy了。C语言就是需要不停的造轮子,实在不想写这个面试题样的东西了,求助于万能的Google了。找到一个不错的hashtable开源实现:http://troydhanson.github.io/uthash/,BSD的许可,赞。也找到了一篇文章介绍详细的用法:http://blog.csdn.net/hongqun/article/details/6103275。
最近在恶补设计模式的知识,GoF的23种设计模式都囫囵吞枣的看了一遍,貌似每一种模式都看懂了。然而到底有没有掌握各种模式呢,遇到实际问题时能否正确处理,还是需要打一个大大的问号。这里就遇到一个实际问题需要用模式来解决,然而我拿到这个问题的时候第一时间想到的却不是用模式,走了不少弯路。
问题如下:拿到了如下接口和库文件。需求是,不想把这个原始的接口暴露给用户,希望将真实的接口做一个简单的隐藏,对这套接口进行一个封装,在客户调用doSmth之前,还能做一些别的事情,诸如做一些额外的初始化。也就是对一个动态库文件和接口进行二次封装。