版权声明

  • 本文原创作者:谷哥的小弟
  • 作者博客地址:http://blog.csdn.net/lfdfhl

开篇语

近十几年来,在Java和Android开发领域中涌现出许多优秀的框架,比如:Spring、Hibernate、Mybatis、Retrofit、Afinal、OKHttp、ButterKnife等等。这些框架的出现极大地简化了开发流程,提高了工作效率。在项目开发的过程中我们主要是使用这些轮子完成项目,很难有时间去顾及框架的内部实现。

例如,在使用Spring框架时我们都使用到了注解。比较遗憾的是:我们通常只知道用哪个注解,注解有什么属性,注解应该用到什么地方;但是,不知道为什么要这么用,不明白注解到底是如何发挥功效的。以往的学习太机械、太简陋;以至于在框架设计时无从下手。

虽然,这些主流框架的功能各不相同,但每当打开浩繁的源码时我们几乎都可以看到泛型,反射,注解的广泛应用;也正是这些技术使得框架具有了高度的灵活性,优良的扩展性和健壮的稳定性。故,鉴于这些框架必备知识的重要性有必要对该部分内容做一个全面的梳理和总结。

这也写是我写此博客专栏的初衷。

专栏概述

在此,对本专栏进行简要说明。

主要内容

  • 1、类的加载过程
  • 2、Class全面剖析
  • 3、反射实现原理及其应用
  • 4、内省
  • 5、Java常用注解
  • 6、元注解
  • 7、自定义注解入门
  • 8、自定义注解进阶
  • 9、反射与注解的综合运用

专栏特点

  • 1、逻辑清晰、表述准确恰当
  • 2、语言诙谐、言简意赅
  • 3、专栏由浅入深、由易至难
  • 4、图文并茂、生动形象
  • 5、随文配发所有源码

总之,在您决定阅读本专栏之前;强烈建议您瞅瞅我之前的博客,如果你感觉阅读起来舒适且有收获则可继续。反之,建议你关闭本专栏切勿耽误时间。

编程语言类型

OK,我们先从编程语言类型入手。

我们先来了解一下编程语言的两大主流派别:静态类型语言与动态类型语言。

静态类型语言

静态类型语言(Statically Typed Language)也称为强类型语言。在静态语言中,在编译时确定变量的数据类型。所以,绝大多数静态类型语言要求:先声明变量(即确定变量类型)后再使用变量。

常见的静态类型语言有:Java、 C、C++等等

动态类型语言

动态类型语言(Dynamic programming Language)也称为弱类型语言。在动态类型语言中,程序在运行时可以改变其结构;例如:改变变量原有的数据类型、新的函数被引进,已有的函数被删除等在结构上的变化。

常见的动态类型语言有:JavaScript、 PHP、Ruby等等。

Java与动态性

Java程序的执行有两个阶段:

  • 1、编译
  • 2、运行

在编译阶段会检查基本语法是否正确、变量的类型及其使用是否正确。程序在通过编译之后生成与之对应的字节码文件.class。JVM调用代码时,程序处于运行时状态。虽然说Java语言是静态类型语言,但是它在运行时借助反射从而具有了一定的动态性。所以,也有人说Java是"准动态类型语言"。

Java框架技术核心基石系列教程(01)——编程语言类型及其特征相关推荐

  1. Java容器--2021面试题系列教程(附答案解析)--大白话解读--JavaPub版本

    Java容器–2021面试题系列教程(附答案解析)–大白话解读–JavaPub版本 前言 序言 再高大上的框架,也需要扎实的基础才能玩转,高频面试问题更是基础中的高频实战要点. 适合阅读人群 Java ...

  2. 一步一步使用ABP框架搭建正式项目系列教程之本地化详解

    返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 本篇目录 扯扯本地化 ABP中的本地化 小结 扯扯本地化 本节来说说本地化,也有叫国际化.全球化的,不管怎么个叫法,反正道理都是一 ...

  3. 数据结构与算法(Java版) | 本套系列教程的课程亮点和授课方式

    接下来,在这一讲,我会花一点时间同同学们达成一个共识,就是我们这套系列教程在讲述的时候,究竟是以一种什么方式来讲述的.我希望,经过我的讲解之后,大家能够对我们这套系列教程的课程亮点和授课方式达成如下这 ...

  4. 数据结构与算法(Java版) | 本套系列教程的内容介绍

    文章目录 本套系列教程的内容介绍 第一章节:内容介绍和授课方式 第二章节:数据结构与算法的介绍 第三章节:稀疏数组和队列 第四章节:链表 第五章节:栈 第六章节:递归 第七章节:排序算法 第八章节:查 ...

  5. java框架技术试卷_Java试题系列之技术框架部分

    原标题:Java试题系列之技术框架部分 1.iBatis与Hibernate有什么不同? 相同点:屏蔽jdbc api的底层访问细节,使用我们不用与jdbc api打交道,就可以访问数据. jdbc ...

  6. nightwatch系列教程01——Hello Nightwatch

    最近给前端项目做持续集成,用了nightwatch作为end-to-end测试框架,期间踩坑不断,不过总算有惊无险的完成了任务,实现了领导给的三个happy path的测试.学习期间,顺便把night ...

  7. java预研项目_缓存java框架技术预研3:JAVA缓存技术介绍

    几个著名Java开源缓存框架介绍(OSCache,JSC) OSCache是个一个广泛采用的高性能的缓存框架,OSCache能用于任何Java应用程序的普通的缓存解决方案. OSCache有以下特点: ...

  8. 乙醇的selenium java_ruby/python/java全覆盖的Selenium-Webdriver系列教程(1)————快速开始...

    Selenium 1.x时代已经远去,它理应躺在历史的角落里,靠着壁炉烤着火,抽着旱烟,在袅袅的升起的青烟中回忆那曾经属于自己的美好时代. 不过事实却并非如此,现今原本早应退役的selenium 1. ...

  9. 缓存java框架技术预研4:LazyUnsafeAllocator.java算法分析

    2019独角兽企业重金招聘Python工程师标准>>> LazyUnsafeAllocator.java这个类,如名字就知道懒惰,就如同c里面的malloc和free一样,没有做任何 ...

最新文章

  1. TensorFlow分布式详解
  2. 神经网络在Keras中不work!博士小哥证明何恺明的初始化方法堪比“CNN还魂丹”...
  3. 中国移动将向广大开发者开放了SDK/API等开发工具
  4. Windows平台下Makefile学习笔记
  5. 使用Jexus服务器运行Asp.Net Core2.0程序
  6. 有知其下落者的nanshan
  7. .Net Core----关于MVC中TempData持久化问题
  8. java 反射创建对象并赋值_[原创] Java JDBC连接数据库,反射创建实体类对象并赋值数据库行记录(支持存储过程)...
  9. 站在BERT肩膀上的NLP新秀们(PART I)
  10. BSCI—7:OSPF的路由汇总
  11. Kubeflow:连接云计算和机器学习的“桥梁”
  12. 我的世界JAVA会支持光追吗_《我的世界》RTX beta版视频体验:仿佛打破了次元壁...
  13. Array 常用函数
  14. python取系统日期前一天_python 获取前一天或前N天的日期
  15. socket 10106问题解决日记
  16. python爬房源信息_python爬虫获取链家二手房源信息
  17. 【实用软件 01期】B站视频下载器(免安装、即点即用)
  18. 西电计算机考研历年分数线,西安电子科技大学研究生,西电历年考研分数线?...
  19. jmeter压测生成报告
  20. 面试官:能说一说微信授权的原理吗?(Spring Cloud OAuth2 授权码模式)

热门文章

  1. java和php哪个更好学?
  2. 【Vue 实战】 生成二维码
  3. 提高产品质量的措施有哪些
  4. 入门运维需要注意的一些小技巧
  5. 《Servlet、JSP和Spring MVC初学指南》——第2章 会话管理 2.1URL重写
  6. 双目相机图像校正(五)
  7. Mac OS X 下 QQ 截图功能开机自启设置方法
  8. 大数据实训笔记4:mapreduce
  9. 阿里的Leader为什么牛逼?秘密都在“三板斧”里...
  10. dockerDesktop 安装自带k8s 1.19.7版本