摘要: 使用如Hibernate或者JPA作为持久化的解决方案时,设计一个泛型的DAO抽象父类可以方便各个实体的通用CRUD操作。由于此时大部分实体DAO的CRUD操作基本一样,采用泛型设计解决这个问题,带来了简洁代码的好处。 问题的关键在于我们需要在代码中获取抽象DAO父类(BaseEntityDAOIm 阅读全文
posted @ 2016-03-10 18:00 NotOnlyAnAnswer 阅读(2661) 评论(0) 推荐(0) 编辑
摘要: 一、Spring Boot简化了Spring应用的开发 Spring 是Java企业应用(Java EE) 开发的事实标准,整合了Java EE应用涉及到的各类中间件调用的组件,提供了MVC框架,能够整合其他ORM持久层框架。在没有Spring Boot之前,为了实现一个基本的Spring MVC应 阅读全文
posted @ 2023-01-11 01:11 NotOnlyAnAnswer 阅读(68) 评论(0) 推荐(0) 编辑
摘要: 本文对如何实现使用Ajax提交"multipart/form"格式的表单数据,已经如何在图片上传之前,在浏览器上进行预览。使用的主要相关技术HTML5的FILE API,XMLHttprequest Level2中对二进制文件上传的支持(通过构建FormData对象进行支持)以及Servlet 3. 阅读全文
posted @ 2016-03-12 00:14 NotOnlyAnAnswer 阅读(2470) 评论(0) 推荐(0) 编辑
摘要: 策略模式定义了算法族,不同的策略实现之间可以互相替换,让算法的变化独立于使用算法的客户。简要的UML示例图如下: 这里的算法可以理解为对传入参数的处理或者干脆就是一个成员函数/方法也行。例如:如下java代码,一个编辑器对LInux/Window平台的换行符实现不同的处理策略,Editor类与For 阅读全文
posted @ 2014-12-14 02:37 NotOnlyAnAnswer 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 请特别关注程序设计技术,而不是各种语言特征。 --《C++程序设计语言》 Bjarne Stroustrup 本文是《C++程序设计语言》(Bjarne Stroustrup )的第二章的读书笔记,例子来源于这本书的第二章。 在程序设计之中,我们倾向于将数据结构(也可以说是数据类型)以及一组对其操作 阅读全文
posted @ 2014-11-15 23:04 NotOnlyAnAnswer 阅读(1019) 评论(0) 推荐(0) 编辑
摘要: 本文对Http协议进行了简要的描述,说明了其用途的广泛性;通过代码对Http连接和Http请求消息的发送进行实现,希望能将这些抽象的过程直观的显示出来;最后对HttpURL和Http协议中“资源”这些相对抽象概念进行描述和举例。 网络协议是指为计算机网络中进行数据交换而建立的规则、标准或约定的集合。Http协议是一种应用层协议,能用于构建分布式协作的超媒体信息系统。作为一种通用的无状态的协议,Http不仅能用于超文本的传输,也能用于名称服务器,分布式对象管理系统。HTTP的其中一个特征就是能对数据的表示形式进行分类和协商,因此能够建立独立于数据传输的各种系统。除了用于html网页,jav... 阅读全文
posted @ 2014-02-15 16:00 NotOnlyAnAnswer 阅读(881) 评论(0) 推荐(0) 编辑
摘要: 1.Java内置对字符串的支持; 所谓的内置支持,即不用像C语言通过char指针实现字符串类型,并且Java的字符串编码是符合Unicode编码标准,这也意味着不用像C++那样通过使用string和wstring类实现与C语言兼容和Unicode标准。Java内部通过String类实现对字符串类型的支持。这意味着:我们可以直接对字符串常量调用和String对象同样的方法: //可以再"abc"上直接调用String对象的所有方法 int length="abc".length(); 以及 String abc=new String("abc&q 阅读全文
posted @ 2014-02-15 01:11 NotOnlyAnAnswer 阅读(2648) 评论(0) 推荐(0) 编辑
摘要: 前期绑定,在程序执行前根据编译时类型绑定,调用开销较小,如C语言只有前期绑定这种方法调用。 后期绑定,是指在运行时根据对象的类型进行绑定,又叫动态绑定或运行时绑定。实现后期绑定,需要某种机制支持,以便在运行时能判断对象的类型,调用开销比前期绑定大。 Java中的static方法和final方法(private属于final方法,详细的解释见《Java编程思想》)属于前期绑定,子类无法重写final方法,成员变量(包括静态及非静态)也属于前期绑定。除了static方法和final方法(private属于final方法)之外的其他方法属于后期绑定,运行时能判断对象的类型进行绑定。验证程序... 阅读全文
posted @ 2014-02-06 01:27 NotOnlyAnAnswer 阅读(1322) 评论(0) 推荐(0) 编辑
摘要: 在面向对象程序设计中,协变返回类型指的是子类中的成员函数的返回值类型不必严格等同于父类中被重写的成员函数的返回值类型,而可以是更 "狭窄" 的类型。 Java 5.0添加了对协变返回类型的支持,即子类覆盖(即重写)基类方法时,返回的类型可以是基类方法返回类型的子类。协变返回类型允许返回更为具体的类型。 示例程序如下:import java.io.ByteArrayInputStream;import java.io.InputStream;class Base{ //子类Derive将重写此方法,将返回类型设置为InputStream的子类 public InputStre 阅读全文
posted @ 2014-02-06 01:21 NotOnlyAnAnswer 阅读(4528) 评论(0) 推荐(0) 编辑
摘要: 以下这段小程序对调用对象构造函数时,父类构造函数、成员变量初始化函数,以及非静态初始化块调用顺序进行验证,不考虑静态成员及静态初始化块。public class Derive extends Base { private Member m1 = new Member("Member 1"); { System.out.println("Initial Block()"); } public Derive() { System.out.println("Derive()"); } private Member m2 = new ... 阅读全文
posted @ 2014-02-05 23:55 NotOnlyAnAnswer 阅读(408) 评论(0) 推荐(1) 编辑