Java知识点汇总

2017-06-08
阅读 2 分钟
2.7k
OOP 对象的创建和拷贝 对象的初始化 多态的实现 内部类、匿名类、静态类 对象内存模型 上面内容均请参考以下文章: 谈谈Java的面向对象 运行时 异常 聊聊Java的异常机制及实现 泛型 聊聊Java的泛型及实现 注解 聊聊Java的注解及实现 反射 必读文章: Java反射的使用 Java反射在JVM的实现 扩展阅读: 关于反射调用方法的...

聊聊Java的注解及实现

2017-06-08
阅读 5 分钟
5.8k
Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Annotion对象来获取注解里面的元数据。Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的...

聊聊Java的异常机制及实现

2017-06-08
阅读 5 分钟
8.8k
在一些传统的编程语言,如C语言中,并没有专门处理异常的机制,程序员通常用方法的特定返回值来表示异常情况,并且程序的正常流程和异常流程都采用同样的流程控制语句。Java语言按照面向对象的思想来处理异常,使得程序具有更好的可维护性。Java异常处理机制具有以下优点:

聊聊Java的泛型及实现

2017-06-08
阅读 7 分钟
3.1k
和C++以模板来实现静多态不同,Java基于运行时支持选择了泛型,两者的实现原理大相庭径。C++可以支持基本类型作为模板参数,Java却只能接受类作为泛型参数;Java可以在泛型类的方法中取得自己泛型参数的Class类型,C++只能由编译器推断在不为人知的地方生成新的类,对于特定的模板参数你只能使用特化。在本文中我主要想...

谈谈Java的面向对象

2017-06-08
阅读 10 分钟
7.2k
C++是默认具有拷贝语义的,对于没有拷贝运算符和拷贝构造函数的类,可以直接进行二进制拷贝,但是Java并不天生支持深拷贝,它的拷贝只是拷贝在堆上的地址,不同的变量引用的是堆上的同一个对象,那最初的对象是怎么被构建出来的呢?

Junit源码阅读(六)之Junit中的设计模式

2016-02-04
阅读 7 分钟
4.9k
在这次的博客中我们将着重于Junit的许多集成性功能来讨论Junit中的种种设计模式。可以说Junit的实现本身就是GOF设计原则的范例教本,下面就让我们开始吧。

Junit源码阅读(五)

2016-02-04
阅读 11 分钟
3.8k
尽管在第二次博客中我们讲述了Runner的运行机制,但是许多其他特性比如Filter是如何与运行流程结合却并不清楚。这次我们来回顾整理一下Junit的执行流程,给出各种特性生效的机理,并分析一些代码中精妙的地方。

Junit源码阅读(四)之自定义扩展

2016-02-04
阅读 7 分钟
2.8k
上次的博客中我们着重介绍了Junit的Validator机制,这次我们将聚焦到自定义扩展Rule上来。在很多情形下我们需要在测试过程中加入一些自定义的动作,这些就需要对statement进行包装,Junit为此提供了以TestRule接口和RunRules为基础的Rule扩展机制。

Junit源码阅读(三)之精致的Validator

2016-02-03
阅读 6 分钟
2.7k
在建立Runner的过程中,往往需要对当前的测试样例和注解进行验证,比如检查测试类是否含有非静态内部类,测试类是否是Public的。Junit的验证机制非常精致而优美,在本次博客中我们就主要来谈一谈Validator机制的实现。

Junit源码阅读(二)之样例运行的机制

2016-02-03
阅读 12 分钟
4.3k
在上次的博客中我们提到了最终由Runner以Notifier为参数执行测试样例,但并没有解释到底测试方法是如何被运行起来的,一些诸如RunWith、RunAfter之类的特性又到底是如何实现的呢。这次我们就集中深入Runner的运行机制来探究样例是如何被运行的。

Junit源码阅读(一)

2016-02-02
阅读 4 分钟
7.6k
Junit的工程结构 从上图可以清楚的看出Junit大致分为几个版块,接下来一一简略介绍这些版块的作用。 runner:定义了Junit模型中的许多基本概念,只要是一些虚类和接口,是整个Junit工程的基石 runners:提供了从注解中使用反射完成测试用例执行的实现 interval:提供了在Runner中许多虚类的默认实现,包括各类RunnerBuilder...

也来谈谈RPC

2015-10-28
阅读 11 分钟
4k
RPC,顾名思义即远程过程调用,可以说是分部式WEB应用的基础,也是SOA概念中的核心部分。对于J2EE来说,可以分为JVM之间的调用与和其他平台之间的调用。前者主要是RMI,而后者则五花八门,比如Apache的Thrift框架就支持多语言系统之间的调用.今天就让我们来初窥以下这大名鼎鼎的RPC。

使用JMS完成消息通信

2015-10-06
阅读 8 分钟
8.1k
对于WEB系统,向用户发送邮件、短信、站内信等几乎是必备的基础功能,但这些任务相对于所见即所得的立即响应式的请求对实时性的要求并不高,同时任务处理的量还很大。在复杂多系统的情形下,还要考虑多个子系统的通信问题。无论是从实际业务需求还是从软件工程的设计角度出发,消息通信都有必要成为一个独立的模块。本文...

单点登录与消息队列

2015-09-17
阅读 4 分钟
9.8k
很久都没有写博客了,这次为大家简单介绍两个在WEB开发中经常使用的概念——单点登录和消息队列以及具体到J2EE中的一些实现方案。本文原创性的工作比较少,主要是一些总结概括和自己的理解。

Hibernate映射关系

2015-07-11
阅读 3 分钟
8.8k
注意: 需要加上mappedBy="class2",如果不加上的话,Class2也会生成一个外键(class1_id),mappedby="class2"需要指向与他关联对象的一个属性,说明双向关联关系中,有且仅有一端是作为主体(owner)端存在的,主体端负责维护联接列,对于不需要维护这种关系的从表则通过mappedBy属性进行声明,mappedBy的值指向主体的关...

拥抱JPA规范

2015-07-11
阅读 8 分钟
17.8k
在上文Hibernate使用中曾经提到过Hibernate是JPA实现的一个超集,但当时使用的都是原生Hibernate,在本文中我们将拥抱JPA规范,重构持久化层。

Mybatis使用小札

2015-07-10
阅读 8 分钟
9.1k
Mybatis在我所见过的持久化框架里真心是一个异类,因为它是sql-centric的,而不是基于对象和表映射的。我会在本文中讲一下Mybatis几个重要的技巧,与本文的上一篇文章Hibernate做个对比。

Hibernate使用小札

2015-07-10
阅读 11 分钟
4.7k
Hibernate作为Java中最为流行的O/R映射框架,同时已经完全遵照JPA规范并作为其实现的一个超集,它能够帮助我们快速进行开发,从繁重的持久化层实现中脱离出来。本文将由浅入深为您带来一个粗略的Hibernate使用体验。

Spring+Mybatis+Velocity配置

2015-06-02
阅读 14 分钟
17.1k
最近开始尝试使用久负盛名的SM框架——Spring+Mybatis进行Web开发,从此走上了Spring配置的不归路。说句实在话,Spring是我特么见过所有WEB工程里面最难配的,因为必须要对它那一套非侵入的设计思想有所了解才能在出问题时迅速判断是不是配置错误,进而定位配置错误所在。首先,做个简单的总结,Spring的配置现在大致有三种: