读者福利
更多笔记分享
- 本章小结
世界上并没有完美的程序,但我们并不因此而沮丧,因为写程序本来就是一个不断追求完美的程。
Java不仅仅是一门编程语言,还是一个由一系列计算机软件和规范形成的技术体系,这 个技术体系提供了完整的用于软件开发和跨平台部署的支持环境,并广泛应用于嵌入式系统、移动终端、企业服务器、大型机等各种场合,如图1-1所示。时至今日,Java技术体系已 经吸引了900多万软件开发者,这是全球最大的软件开发团队。使用Java的设备多达几十亿 台,其中包括11亿多台个人计算机、30亿部移动电话及其他手持设备、数量众多的智能卡, 以及大量机顶盒、导航系统和其他设备。
Java能获得如此广泛的认可,除了它拥有一门结构严谨、面向对象的编程语言之外,还 有许多不可忽视的优点:它摆脱了硬件平台的束缚,实现了"一次编写 ,到处运行"的理想;它提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问 题;它实现了热点代码检测和运行时编译及优化,这使得Java应用能随着运行时间的增加而 获得更高的性能;它有一套完善的应用程序接口,还有无数来自商业机构和开源社区的第三 方类库来帮助它实现各种各样的功能……Java所带来的这些好处使程序的开发效率得到了很 大的提升。作为一名Java程序员,在编写程序时除了尽情发挥Java的各种优势外,还应该去了解和思考一下Java技术体系中这些技术特性是如何实现的。认识这些技术运作的本质,是 自己思考"程序这样写好不好"的基础和前提。当我们在使用一种技术时,如果不再依赖书本和他人就能得到这些问题的答案,那才算上升到了"不惑"的境界。
本书将与读者一起分析Java技术中最重要的那些特性的实现原理。在本章中,我们将重点介绍Java技术体系内容以及Java的历史、现在和未来的发展趋势。
从广义上讲,Clojure、JRuby、Groovy等运行于Java虚拟机上的语言及其相关的程序都 属于Java技术体系中的一员。如果仅从传统意义上来看,Sun官方所定义的Java技术体系包括以下几个组成部分:
-
Java程序设计语言
-
各种硬件平台上的Java虚拟机
-
Class文件格式
-
Java API类库
-
来自商业机构和开源社区的第三方Java类库
图1-2展示了Java技术体系所包含的内容,以及JDK和JRE所涵盖的范围。
以上是根据各个组成部分的功能来进行划分的,如果按照技术所服务的领域来划分,或者说按照Java技术关注的重点业务领域来划分,Java技术体系可以分为4个平台,分别为:
-
Java Card : 支持一些Java小程序( Applets ) 运行在小内存设备(如智能卡)上的平台。
-
Java ME ( Micro Edition ) : 支持Java程序运行在移动终端(手机、 PDA ) 上的平台,对 Java API有所精简,并加入了针对移动终端的支持,这个版本以前称为J2ME。
-
Java SE ( Standard E d i t i o n ) : 支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,这个版本以前称为J2SE。
-
Java EE ( Enterprise Edition): 支持使用多层架构的企业应用(如ERP、CRM应用)的 Java平台,除了提供Java SE API外 ,还对其做了大量的扩充- 并提供了相关的部署支持,这 个版本以前称为J2EE。
从第一个Java版本诞生到现在已经有18年的时间里。沧海桑田一瞬间,转眼18年过去了,在图1-3所展示的时间线中,我们看到JDK已经发展到了1.7版。在这18年里还诞生了无数和Java相关的产品、技术和标准。现在让我们走入时间隧道,从孕育Java语言的时代开始,再来回顾一下Java的发展轨迹和历史变迁。
具体可以参考我的这篇博客Java发展历程
上一节我们从整个Java技术的角度观察了Java技术的发展,许多Java程序员都会潜意识地把它与Sun公司的HotSpot虚拟机等同看待,也许还有一些程序员会注意到BEA JRockit和 IBM J9 ,但对JVM的认识不仅仅只有这些。
从1996年初Sun公司发布的JDK 1.0中所包含的Sun Classic VM到今天,曾经涌现、浬灭过许多或经典或优秀或有特色的虚拟机实现,在这一节中,我们先暂且把代码与技术放下,一 起来回顾一下Java虚拟机家族的发展轨迹和历史变迁。
-
Sun Classic / Exact VM
-
Sun HotSpot VM
-
Sun Mobile-Embedded VM / Meta-Circular VM
-
BEA JRockit / IBM J9 VM
-
Azul VM / BEA Liquid VM
-
Apache Harmony / Google Android Dalvik VM
-
Microsoft JVM 及其他
最后
我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。
还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。
//bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)收录**