本文共 1255 字,大约阅读时间需要 4 分钟。
近十几年来,在Java和Android开发领域中涌现出许多优秀的框架,比如:Spring、Hibernate、Mybatis、Retrofit、Afinal、OKHttp、ButterKnife等等。这些框架的出现极大地简化了开发流程,提高了工作效率。在项目开发的过程中我们主要是使用这些轮子完成项目,很难有时间去顾及框架的内部实现。
例如,在使用Spring框架时我们都使用到了注解。比较遗憾的是:我们通常只知道用哪个注解,注解有什么属性,注解应该用到什么地方;但是,不知道为什么要这么用,不明白注解到底是如何发挥功效的。以往的学习太机械、太简陋;以至于在框架设计时无从下手。
虽然,这些主流框架的功能各不相同,但每当打开浩繁的源码时我们几乎都可以看到泛型,反射,注解的广泛应用;也正是这些技术使得框架具有了高度的灵活性,优良的扩展性和健壮的稳定性。故,鉴于这些框架必备知识的重要性有必要对该部分内容做一个全面的梳理和总结。
这也写是我写此博客专栏的初衷。
在此,对本专栏进行简要说明。
总之,在您决定阅读本专栏之前;强烈建议您瞅瞅我之前的博客,如果你感觉阅读起来舒适且有收获则可继续。反之,建议你关闭本专栏切勿耽误时间。
OK,我们先从编程语言类型入手。
我们先来了解一下编程语言的两大主流派别:静态类型语言与动态类型语言。
静态类型语言(Statically Typed Language)也称为强类型语言。在静态语言中,在编译时确定变量的数据类型。所以,绝大多数静态类型语言要求:先声明变量(即确定变量类型)后再使用变量。
常见的静态类型语言有:Java、 C、C++等等
动态类型语言(Dynamic programming Language)也称为弱类型语言。在动态类型语言中,程序在运行时可以改变其结构;例如:改变变量原有的数据类型、新的函数被引进,已有的函数被删除等在结构上的变化。
常见的动态类型语言有:JavaScript、 PHP、Ruby等等。
Java程序的执行有两个阶段:
在编译阶段会检查基本语法是否正确、变量的类型及其使用是否正确。程序在通过编译之后生成与之对应的字节码文件.class。JVM调用代码时,程序处于运行时状态。虽然说Java语言是静态类型语言,但是它在运行时借助反射从而具有了一定的动态性。所以,也有人说Java是"准动态类型语言"。