深入理解Java中的组合和继承
Java是一个面向对象的语言。每一个学习过Java的人都知道,封装、继承、多态是面向对象的三个特征。每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用。所以,很多开发人员在需要复用一些代码的时候会很自然的使用...
Java是一个面向对象的语言。每一个学习过Java的人都知道,封装、继承、多态是面向对象的三个特征。每个人在刚刚学习继承的时候都会或多或少的有这样一个印象:继承可以帮助我实现类的复用。所以,很多开发人员在需要复用一些代码的时候会很自然的使用...
重载(Overloading)和重写(Overriding)是Java中两个比较重要的概念。但是对于新手来说也比较容易混淆。本文通过两个简单的例子说明了他们之间的区别。 定义 重载 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的...
递归 提到迭代,不得不提一个数学表达式: n!=n*(n-1)*(n-2)*...*1 有很多方法来计算阶乘。有一定数学基础的人都知道n!=n*(n-1)!因此,代码的实现可以直接写成: 代码一 int factorial (int n) ...
Comparable 和 Comparator是Java核心API提供的两个接口,从它们的名字中,我们大致可以猜到它们用来做对象之间的比较的。但它们到底怎么用,它们之间有又哪些差别呢?下面有两个例子可以很好的回答这个问题。下面的例子用来比较...
所有Java类的父类——java.lang.Object中定义了两个重要的方法: public boolean equals(Object obj) public int hashCode() 本文首先会给出一个错误使用这两个方法的例子,然...
在介绍了Zookeeper的安装之后,就可以了解一下Zookeeper中的常用概念了。本文将主要介绍ZK中角色、数据模型、节点、ACL、watcher等概念。 角色 在Zookeeper概述中也提到过,Zookeeper的Follower在...
在Zookeeper概述中简单介绍了Zookeepr,工欲善其事,必先利其器。那么本文就介绍如何安装Zookeeper。 Zookeeper有三种安装方式:单机模式、集群模式、伪集群模式。 单机模式 单机模式表示只运行在一台服务器上,适合测...
在Zookeeper介绍(一)——背景知识中介绍过,随着网站的不断发展,逐渐从集中式演变到分布式。但是,在分布式系统中存在着很多数据一致性的问题。那么,有没有什么系统或者组件能够帮助我们解决这些一致性问题呢?本文将简单介绍一个分布式服务协调...
本文主要介绍什么是分布式系统以及分布式系统存在哪些问题。 分布式 互联网技术的发展,导致大型网站需要的计算能力和存储能力越来越高。网站架构逐渐从集中式转变成分布式。 什么是分布式 把一个计算任务分解为若干个计算单元,并分派到若干个不同的计算...
什么是可变参数 可变参数(variable arguments)是在Java 1.5中引入的一个特性。它允许一个方法把任意数量的值作为参数。 public static void main(String[] args) { print("a...