文章由《大牛1对1》书写,保留所有权利,如有转载请注明来源。
如果你对内容有更好的建议,请联系我们。

你知道Java是谁发明的吗?那就是曾经辉煌的Sun公司,现在它已经被Oracle甲骨文公司收购。
Java经过20多年的发展,在各个方面已经十分成熟,并在各个领域都大显身手。
Java项目能过做到一次编译到处运行,这是它独特的优势。

1.1 为何学习Java

当你拿到这本书的时候,有没有想过,我为何要学习Java呢?
广受大企业单位和程序员的追捧和喜爱。 根据TIOBE公布的历年编程语言排行榜,Java一直是王者,经常和C系列编程语言一起霸占前三名。

数据来自:https://www.tiobe.com/tiobe-index/

应用领域十分广泛。在手机应用软件、Web服务器等等领域,Java可谓是大显身手。像阿里巴巴、淘宝、京东等大型网站,他们大部分功能使用了Java。大型企业级的应用软件,比如CRM、ERP等业务管理系统也是使用Java开发的。还有比较流行主流的大数据框架Hadoop的也是主要用Java开发的。总之,Java在各个领域都有很深的耕耘。
Java学习比较简单。 它是面向对象的编程语言,是在现实物理世界的基础上进行的抽象表达,比较容易理解。Java的编程工具包JDK提供了特别丰富的接口,也就是说,要想完成一个功能,通常不需要关心太多底层实现,你只需要调用这个接口即可。

1.2 是谁发明了Java

20世纪90年代,硬件领域出现了单片式计算机系统,这种系统有两个优点,一是价格很低,二是提高了消费类电子产品的智能化程度,比如让电视机顶盒、面包烤箱、移动电话等产品更加智能,这使得此类产品当时受到了广大消费者的喜爱和追捧。在1991年,Sun公司为了抢占这片蓝海市场,专门成立了Green项目小组,主要成员有詹姆斯·高斯林、帕特里克、麦克·舍林丹,他们的任务是发明一种计算机语言,使Sun公司可以在智能化市场可以分一杯羹。



Green项目小组对C++进行了改造,1992年成功开发出一种叫做Oak的面向对象语言。但是,当时大量的硬件生产商对Oak是一无所知的,不敢冒然地让自己的设备使用Oak,所以,Oak也就因为缺乏硬件的支持而无法进入市场,从而被搁置了下来。
俗话说:功夫不负有心人。走到1995年,互联网的蓬勃发展给了Oak带来了机遇。Sun公司首先推出了可随网页在网络上传输的Applet,Applet可以让网页和用户进行交互,并实现图形绘制、字体和颜色控制、动画和声音的插入、人机交互、网络交流等等功能,这样的网页更加丰富多彩。从此,Sun公司决定大力发展Oak。但在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语,并将Oak更名为Java。同年5月23日,Sun公司在Sun world会议上正式发布Java。

1.3 Java的版本发展

1996年1月,Sun公司发布了Java的第一个开发工具包JDK 1.0,这是Java发展历程中的重要里程碑,标志着Java成为一种独立的开发工具,开发者可以在JDK的基础上开发自己想要的功能。
随后Java进入快速发展,1997年发布JDK1.1,1998年发布JDK1.2,2000年发布JDK1.3,2002年发布JDK1.4。
2004年,Sun公司对JDK进行了大更新,发布了JDK5,2006年发布了JDK6。


2009年甲骨文公司收购了Sun公司。
2011年发布了JDK7,2014年发布了JDK8,JDK7和JDK8是企业使用最广泛的版本
而2017年9月的JDK9和2018年3月的JDK10是属于过度性的版本。截止到2020年9月,最新版本是Java15。

Green项目小组成员詹姆斯·高斯林博士(James Gosling)是Java编程语言的共同创始人之一,一般公认他为“Java之父”。

1.4 Java的三个版本

Java具有三个版本,分别是JavaSE、JavaEE、JavaME
Java SE(Java Platform Standard Edition)标准版,是为开发普通桌面和商务应用程序提供的解决方案。 JavaSE是三个版本中最核心的部分,JavaEE和JavaME都是从 JavaSE的基础上发展而来的。
Java EE(Java Platform Enterprise Edition)企业版,是为开发企业级应用程序提供的解决方案,定位在服务器端的应用。主要包括 Servlet、JSP、 Javabean、JDBC、EJB、Web等技术。
Java ME( Java Platform Micro Edition) 微型版,是为开发电子消费产品和嵌入式设备提供的解决方案。主要为家用电器增加智能化控制和联网功能,为手机增加新的游戏和通讯录管理功能。此外,JavaME提供了HTTP等高级Internet协议,使移动电话能以Client/ Server方式直接访问 Internet的全部信息,提供最高效率的无线交流。

1.5 Java的跨平台原理

Java具有跨平台的特性,可以“一次编译,到处运行”。比如,在Windows下编写的程序,无需任何修改就可以在Linux下运行。这里“到处”说的是任意平台,平台是CPU和操作系统的结合体,在平时,大家更偏好于操作系统就是平台。
Java的跨平台是如何实现的呢?举个例子,比如“小明”就是编译好的Java项目,世界上的国家就是平台,那么如何做到“到处运行”,也就是“小明”在任意国家畅通无阻。我们可以给小明配一个翻译官,在英语国家给他配一个英语翻译官,在俄语国家给他配一个俄语翻译官。这儿的翻译官在Java中指的是Java虚拟机(Java Virtual Machine,简称 JVM),它是用软件虚构出来的一个计算机,如同上边的两个翻译官,JVM在不同的平台有着不同的版本。

1.6 JRE与JDK


图片来自:https://docs.oracle.com/javase/8/docs/ 并经过处理

JVM和核心类库组成了JRE(Java Runtime Environment,Java运行时环境),也就是说运行一个Java编译好的项目,有JRE就够了。JRE并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)。
JRE、Java开发工具和基础类库组成了JDK(Java Development Kit,Java的软件开发包),JDK是给开发者使用的。

1.7 总结

Sun公司于1995年发布了Java编程语言。
JDK8是目前企业使用最广泛的版本。
詹姆斯·高斯林博士被公认为“Java之父”。
Java具有JavaSE、JavaEE、JavaME三个版本。
JVM机制使得Java可以做到“一次编译,到处运行”。
JRE是Java运行时环境,JDK是面向开发者的Java的软件开发包。

1.8 思考与作业

思考一:我们为何学习Java?
思考二:Sun公司为何发明了Java?
思考三:既然最新的JDK版本是15,那为何JDK8在目前企业中使用的最广泛?
思考四:Java是如何做到“一次编译,到处运行”的。
思考五:JDK是什么?
作业一:常见Java开发工具有哪些?

文章由《大牛1对1》书写,保留所有权利,如有转载请注明来源。
如果你对内容有更好的建议,请联系我们。

第 1 章 认识一下Java相关推荐

  1. java从入门到精通第11章_《Java从入门到精通》第十章学习笔记

    第10章 Java集合类 一.概述 Java中的java.util包中提供了一些集合类,也被称为容器,不同于数组,集合的长度是可变的,存放的是对象的引用.常用的集合有List集合.Set集合.Map集 ...

  2. 第 1 章 JVM 和 Java 体系架构

    第 1 章 JVM 和 Java 体系架构 1.JVM 前言 作为Java工程师的你曾被伤害过吗?你是否也遇到过这些问题? 运行着的线上系统突然卡死,系统无法访问,甚至直接OOM! 想解决线上JVM ...

  3. 第五章 如何使用java中的线程打印偶数和奇数

    你有两个线程.您需要使用一个线程打印奇数,使用另一个线程打印偶数.您需要以自然顺序打印最多 MAX. 例如: 如果 MAX 为 10,则需要打印: 1 2 3 4 5 6 7 8 9 10 所以 1 ...

  4. 《java虚拟机规范SE7》整理——第三章:为Java虚拟机编译

    按照<java虚拟机规范SE7>章节顺序整理的笔记. 目录: 常量.局部变量的使用和控制结构 算术运算 访问运行时常量池 接收参数 方法调用 使用类实例 数组 编译switch语句 抛出异 ...

  5. Hbase高手之路 -- 第五章 -- HBase的Java API编程

    Hbase高手之路 – 第五章 – HBase的Java API编程 一. 需求与数据集 某自来水公司,需要存储大量的缴费明细数据,以下截取了缴费明细的一部分内容: 因为缴费明细的数据记录非常庞大,该 ...

  6. java实现备忘录模式_设计模式之第17章-备忘录模式(Java实现)

    设计模式之第17章-备忘录模式(Java实现) 好男人就是我,我就是曾小贤.最近陈赫和张子萱事件闹得那是一个沸沸扬扬.想想曾经每年都有爱情公寓陪伴的我现如今过年没有了爱情公寓总是感觉缺少点什么.不知道 ...

  7. 《java学习之路》第一章:初识java第二节:helloworld

    嗨大家好,我是埪动白,前一段时间由于一些原因,java学习之路停更了,我向大家道歉.今天我们来学习下一节 第一章:初识java 第二节:hello world 如果哪位同学没有看第一节,建议先看一下, ...

  8. 一篇文章搞定java中的垃圾回收机制面试题

    一篇文章搞定java中的垃圾回收机制面试题 任何语言在运行过程中都会创建对象,也就意味着需要在内存中为这些对象在内存中分配空间,在这些对象失去使用的意义的时候,需要释放掉这些内容,保证内存能够提供给新 ...

  9. Kotlin极简教程:第10章 Kotlin与Java互操作

    Kotlin is 100% interoperable with Java™ and Android™ 在前面的章节中,我们已经学习了Kotlin的基础语法.类型系统.泛型与集合类.面向对象与函数式 ...

  10. java第十版基础篇答案第九章_《Java语言程序设计》(基础篇原书第10版)第九章复习题答案...

    第九章 9.1:类为对象定义属性和行为,对象从类创建. 9.2:public class ClassName { } 9.3:ClassName v; 9.4:new ClassName(); 9.5 ...

最新文章

  1. string与数值之间的转换
  2. 【算法】快速选择算法 ( 数组中找第 K 大元素 )
  3. (2.15)备份与还原--使用作业备份、清理过期备份、清理历史记录、事务日志是否备份过...
  4. excel 两列模糊匹配给出结果_北大硕士给大脑植入Excel病毒,工作效率提升了好几倍...
  5. 解决Tocmat6.x的catalina.out日志不断增加问题
  6. ZZULIOJ 1085: 求奇数的乘积(多实例测试)
  7. css索引_CSS中的Z索引:它是什么以及它做什么
  8. 云图说|ModelArts Pro,为企业级AI应用打造的专业开发套件
  9. PHP foreach如何判断是数组最后一个元素
  10. 强一致、高可用、自动容灾能力背后,阿里X-Paxos的应用实践
  11. [NOI2015]寿司晚宴——状压dp
  12. android plot,androidplot行不显示
  13. 南京地图全图 南京卫星地图下载 百度高清卫星地图含道路、标签信息叠加
  14. 计算机cpu位数是啥,怎么看电脑cpu的位数
  15. PECompact 2.79 Beta D by Sonny27
  16. 【2016阿里安全峰会】“安全攻防”烧脑博弈全解读【附PDF下载】
  17. [渝粤教育] 郑州工程技术学院 食品微生物学 参考 资料
  18. aardio - 范例搜索工具
  19. JAVA解析字符串数学公式
  20. EMV规范(二)——应用选择

热门文章

  1. Python学习——字符串切片步长为负值时
  2. AMD在今天公布了最新的Ryzen 3代处理器与Radeon 7显卡
  3. AD20画板基本流程
  4. boss直聘一句话介绍优势_BOSS直聘,综艺混战中的“技术流”
  5. 大地水准面、大地基准面
  6. 库存转换是什么意思_亚马逊listing什么意思,翻新listing会被严惩吗?
  7. OSChina 周六乱弹 —— 战斗阿丽塔
  8. linux脚本if then,shell里if-then的使用
  9. 借AI之势,打破创意与想象的边界
  10. linux 脚本 计划任务,详解在Linux中怎么使用cron计划任务