1.问题: 当我们看到java中的Collection,List,Set,Map等集合类时都可以用Iterator进行遍历元素时,我们是否感到很神奇.我们不禁要问java是如何实现这一目标的.这就是我今天要谈的话题. 根据Iterator pattern模式我把java中的集合类分为四类:即: Iterator(抽象迭代器对应于java中的Iterator,其实java这个Iterator还有抽象聚合的功能,因为它实现了Iterable这个接口,而Iterable这个接口就是个抽象聚合类.),…
如果你发现在一个接口使用有如下定义方法: public String[] getParameters(); 那么你应该认真反思.数组不仅仅老式,而且我们有合理的理由避免暴露它们.在这篇文章中,我将试图总结在Java API中使用数组的缺陷.首先从最出人意料的一个例子开始. 数组导致性能不佳 你可能认为使用数组是最快速的,因为数组是大多数collection实现的底层数据结构.使用一个纯数组怎么会比使用一个包含数组的对象性能更低? 让我们先从这个看起来很熟悉的普遍的习惯用法开始: public S…
1.创建Maven工程,pom.xml引入依赖: <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>4.1.0</version> </dependency> 2.生产者: public class MyProducer { private final static String…
在实际的项目开发过程中,经常需要产生一些随机数值,例如网站登录中的校验数字等,或者需要以一定的几率实现某种效果,例如游戏程序中的物品掉落等. 在Java API中,在java.util包中专门提供了一个和随机处理有关的类,这个类就是Random类.随机数字的生成相关的方法都包含在该类的内部. Random类中实现的随机算法是伪随机,也就是有规则的随机.在进行随机时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生需要的随机数字. 相同种子数的Random对象,相…
既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了. MyBatis 的 Java API 就是你收获你所做的努力的地方.正如你即将看到的,和 JDBC 相比, MyBatis 很大程度简化了你的代码而且保持简洁,很容易理解和维护.MyBatis 3 已经引入 了很多重要的改进来使得 SQL 映射更加优秀. 应用目录结构 在我们深入 Java API 之前,理解关于目录结构的最佳实践是很重要的.MyBatis 非常灵 活, 你可以用你自己的文件来做几乎所有的事情.…
ZooKeeper是用Java开发的,3.4.6版本的Java API文档可以在http://zookeeper.apache.org/doc/r3.4.6/api/index.html上找到. Tips 本章的代码在Linux操作系统下进行测试,运行ZooKeeper服务器实例的版本为3.4.6. 开发应用程序的ZooKeeper Java绑定主要由两个Java包组成: org.apache.zookeeper org.apache.zookeeper.data org.apache.zook…
对于MyBatis的学习而言,最好去MyBatis的官方文档:http://www.mybatis.org/mybatis-3/zh/index.html 对于语言的学习而言,马上上手去编程,多多练习是最好的办法.J Java API 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了. MyBatis 的 Java API 就是你收获你所做的努力的地方.正如你即将看到的,和 JDBC 相比, MyBatis 很大程度简化了你的代码而且保持简洁,很容易理解和维护.…
Java API 既然你已经知道如何配置 MyBatis 和创建映射文件,你就已经准备好来提升技能了. MyBatis 的 Java API 就是你收获你所做的努力的地方.正如你即将看到的,和 JDBC 相比, MyBatis 很大程度简化了你的代码而且保持简洁,很容易理解和维护.MyBatis 3 已经引入 了很多重要的改进来使得 SQL 映射更加优秀. 应用目录结构 在我们深入 Java API 之前,理解关于目录结构的最佳实践是很重要的.MyBatis 非常灵 活, 你可以用你自己的文件来…
Kafka包含四种核心的API: 1.Producer API支持应用将数据流发送到Kafka集群的主题 2.Consumer API支持应用从Kafka集群的主题中读取数据流 3.Streams API支持数据流从输入主题转化到输出主题 4.Connect API支持实现持续地从一些源系统或应用划入Kafka或者从Kafka推入一些源系统或应用的接口. 我们这里主要讨论Producer API和Consumer API的使用,由于最新版的kafka java api中使用了一些jdk8的新特性…
迭代器接口是迭代器模式实现的精髓: public interface Iterator<E> { boolean hasNext(); E next(); ... } 假设某容器名为 XxCollection(该类本身并不需实现 Iterator 接口),调用其迭代器遍历访问其所有成员时,一般是通过其 iterator() 方法(Java 容器类如 ArrayList/LinkedList 下的 iterator 也是如下所示) public class XxCollection<E&g…