这篇文章总结了常见关于Java构造器的问题。

1.为什么创建子类对象的时候同样需要调用父类的构造函数?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Super {
String s;
public Super(){
System.out.println("Super");
}
}
public class Sub extends Super {
public Sub(){
System.out.println("Sub");
}
public static void main(String[] args){
Sub s = new Sub();
}
}
阅读全文

一个好的程序员不仅会编程,他们应该深入理解这个程序,然后让这个程序高效的运行。实际上,我们发现很多代码都是使用google搜来的,大家很难知道其为什么是这样的结果,特别是当其出错的时候。

为了了解java设计的原则,计算机科学(CS)的课程会很有用。下面是表示java和操作系统(Operating System)、网络(Networks)、人工智能(Artificial Intelligence)、编译原理(Compiler)、算法(Algorithm)和逻辑(Logic)的图。

 java工程师应该学些的计算机课程

如果您发现其他有用的相关概念,请留下您的宝贵意见。

阅读全文

java hashcode

在Java中有个java.lang.Object的超类,定义了2个非常重要的方法:

1
2
public boolean equals(Object obj)
public int hashCode()

它们是非常被非常重要的,所以有必要理解它们,特别是当用户添加自定义的对象被到Map上的时候。即使是这样,有的高级工程师有时也弄不清应应该如何正确使用。在这篇文章中,我将首先用一个常见的错误例子,来说明equals()和hashCode是如何工作的。

阅读全文

当你要实现计数器的时候,HashMap是非常有用的。

1
2
3
4
5
6
7
8
HashMap<String, Integer> countMap = new HashMap<String, Integer>();
//.... 有多少个a可以这样统计
if(countMap.keySet().contains(a)){
countMap.put(a, countMap.get(a)+1);
}else{
countMap.put(a, 1);
}
阅读全文

策略模式也叫政策模式。

这是一个关于策略模式的故事。假设 Mike某个时候开车超速,但是他不是总是这样做。他有可能被警察叫停。也许这个警察很好,不给他罚单或者警告。(让我们吧这样的警察叫做”NicePolice”)。也有可能被抓到让后给予罚单。(让我们叫这样的警察”HardPolice”)。他不知道什么警察会把他叫停,直到他被逮住,如果那样运行,那就是策略模式的关注点。

策略模式的类图

 Arrayin Memory

阅读全文

状态模式(State)主要是为了在运行时改变记录状态。

关于状态模式的故事

人们可以根据不同的财务生活。他们可以是富有或者是平穷。这是两种状态”富裕”和”平穷”,根据时间的流逝这个是状态是可以改变的。这个例子的想法是:通常平穷的人们都在非常努力的工作而富裕的人都在玩。他们做什么取决于他们的状态。状态可以改变他们的行为,否则,社会太不公平了。(努力可以改变平穷,富裕贪玩也能变成平穷)

阅读全文

Java Core API提供了Comparable 和 Comparator 两个接口。根据名称来看我们做到它们能以某种方式比较东西。但是它们究竟有什么不同呢?下面的两个例子就会说明。这个简单的例子是比较两个高清电视的大小。当你读完本文,你就会做到如何使用Comparable 和 Comparator。

阅读全文

Spring框架包含大约20个功能模块。这些模块被分为核心容器(Core Container),数据访问/集成(Data Access/Integration),Web(Spring MVC等),AOP(面向切面编程),Infrumentation和测试,如下面的图。

Spring Framework Runtime

核心容器(Core Container)

核心容器主要包括 Core, Beans, Context 和 Expression Language 模块。

核心容器主要完成的功能就是Ioc(控制反转)和DI(依赖注入)功能。

Core 和 Beans 是spring框架最基础的部分, 主要完成的功能就是Ioc(控制反转)和DI(依赖注入)功能。

Context构建在Core 和 Bean之上,提供类似JNDI的获取对象的方式。继承了Beans模块的所有功能,并在此基础上增加了国际化、事件传播(evnet-propagation)、资源加载等功能,支持透明创建其他context(如servlet容器),并支持EJB、JMX等J2EE特性。核心模块为ApplicationContext接口。

阅读全文

Javy Liu

author.bio


author.job


beijing