此文待重构。
JDBC
什么是 JDBC ?
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行 SQL 语句的 Java API(Application Programming Interface),可以为多种关系数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,是连接数据库和Java应用程序的纽带。
人类总是趋利避害的,我们会对微笑的人产生亲切感,对抱怨的人产生厌恶感。
既然人类存在分辨思维,可以对不同的行为作出不同的反应,那么思考一个问题——程序具有思考决策的能力吗?
世上唯一不变的就是变化,只有变化才能进化,进化才能适应未来,既然如此——程序应当具有思考决策能力。
那么,作为 Java 程序,又是通过什么机制来实现这种能力的呢?
反射而已。
在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为。
要注意术语“反射”和“内省)”(type introspection)的关系。内省(或称“自省”)机制仅指程序在运行时对自身信息(称为元数据)的检测;反射机制不仅包括要能在运行时对程序自身信息进行检测,还要求程序能进一步根据这些信息改变程序状态或结构。
当我们启动一个应用程序的时候,根据不同应用场景的需要,主线程通常需要承担很多串行任务,比如:
若每个操作的耗时都只是毫秒级的话,其实没有必要引人额外的执行流程,单线程就已经足够用了。
然而在大多数实际的应用程序中,很多操作的执行速度并没有这么快,某些计算的执行时间甚至需要几秒到几分钟不等。例如,某些需要从 Web 服务中获取数据的请求可能会遭遇网络延迟,所以执行线程就只好等待对端响应到达后才能继续执行。当单线程的应用程序遇到这种情况时,由于主线程被挂起在某个操作上,所以该应用程序的用户将无法与之进行交互或中断其当前任务的执行。
发生这种情况自然是我们不愿意看到的,因为用户的体验不好,为了让用户获得更好的体验,我们希望应用程序应当拥有这种能力——能够执行的更快,以使得请求响应时间缩短。
这个时候,就我们就想到了使用多线程程序,不过编写多线程程序之前,我们得先了解一些概念。
泛型程序设计(generic programming)是程序设计语言的一种风格或范式。泛型允许程序员在强类型程序设计语言中编写代码时使用一些以后才指定的类型,在实例化时作为参数指明这些类型。各种程序设计语言和其编译器、运行环境对泛型的支持均不一样。Ada、Delphi、Eiffel、Java、C#、F#、Swift) 和 Visual Basic .NET 称之为泛型(generics);ML、Scala 和 Haskell 称之为参数多态(parametric polymorphism);C++ 和 D称之为模板)。具有广泛影响的1994年版的《Design Patterns》一书称之为参数化类型(parameterized type)。