Java学习系列文章第七篇:Java8中接口的默认方法与静态方法

Java8用默认方法与静态方法这两个新概念来扩展接口的声明。默认方法使接口有点像Traits(Scala中特征(trait)类似于Java中的Interface,但它可以包含实现代码,也就是目前Java8新增的功能。PHP中也有trait这样一说,他是在不破坏类原有的继承、实现关系,给类新加相同的方法),但与传统的接口又有些不一样,它允许在已有的接口中添加新方法,而同时又保持了与旧版本代码的兼容性。

Read More

Maven中的dependencyManagement和dependencies

最近公司的数据中心项目是使用Maven进行管理,在开发的过程中遇到了dependencyManagement和dependencies,不知道大家对这两个元素有什么想法?

Maven使用dependencyManagement元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml中的dependencyManagement元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。Maven会沿着父子层次向上走,直到找到一个拥有dependencyManagement元素的项目,然后它就会使用在这个dependencyManagement 元素中指定的版本号。

Read More

Mybatis方法传多个参数(三种解决方案)

Mybatis的Mapper接口的参数,一般是一个对象,但如果不是对象,并且有多个参数的时候我们应该怎样做呢?

我们的第一个想法是把参数封装成一个java.util.Map类型,然后在方法的注释上面写上map的key是什么,但是,这样的做法明显不够直观,不能够清楚的看出方法的参数是什么,而且影响到了java的多态性(方法名相同,参数数量或类型不同)。

Read More

Java学习系列文章第六篇:项目开发利器-Maven

什么是Maven

Maven是现在的Java程序员应该都会遇到或使用的一个工具。那Maven具体是什么?到底能干什么?

Maven是一个项目管理工具,用来管理项目的生命周期,如项目中各个项目之间的依赖管理,项目中使用到的jar包依赖管理,还有许多项目构建的插件等。使用Maven最大的好处就是不再需要我们手工维护项目中的各种jar包,及jar包需要依赖的其他jar包,也不再需要我们解决各种jar包之间的冲突,这一切maven帮我们都做好了。

目前Java开发中流行的集成开发工具Idea已经集成了Maven工具,打开Idea的设置选择Maven项,就可以看到自带的Maven的一些信息。我觉得Idea自带的Maven就挺好的,就没有去再安装一个。但是之前不知道Idea自带Maven工具,为此有次出现一个问题,就是因为两个Maven仓库的原因。在公司的电脑上我自己装了一个Maven,自己的电脑上没有装,直接使用Idea自带的Maven。

Read More

Java学习系列文章第四篇:说说Java的三大特性

Java语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为implements)。Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。

Read More

Java学习系列文章第三篇:说说equals和==

在上一篇文章中我们写过这样的代码

1
2
3
4
5
6
7
8
9
10
11
12
// 直接赋值
String str1 = "hello world";
// 构造方法
String str2 = new String("hello world");

String str3 = "hello world";

String str4 = new String("hello world");

System.out.println(str1==str2);
System.out.println(str1==str3);
System.out.println(str2==str4);

我们现在都知道了它们的输出的结果,分别是false、true和false。

Read More

Java学习系列文章第一篇:基本变量类型

Java有着丰富的变量类型,有8种基本数据类型,以及他们对应的包装类型,还有数组集合等众多变量类型。相比之下PHP的数据类型就相对少多了,PHP只有布尔类型(Boolean)、整型(Integer)、浮点型(Float)、数组(Array)、字符串(String)、对象(Object)、资源类型(Resource)和NULL。本文我们先以基本数据类型为主,其他的类型为辅。

Read More