一、Java语言之父
先来上一张面带慈祥笑容的老人照片,对于Java编程人员肯定都知道这个大佬是谁。
答案就是这个大佬就是Java之父:James Gosling(詹姆斯·高斯林),即使不知道名字,单从照片上一看就知道,这将绝对是个大佬级别的存在。
二、什么是Java语言
Java语言是美国Sun公司(Stanford University Network),在1995年推出的高级的编程语言。所谓编程语言,是计算机的语言,人们可以使用编程语言对计算机下达命令,让计算机完成人们需要的功能。
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
三、Java语言发展历史
在2019年之前,Java是属于Sun公司的,而在2019年的时候,甲骨文公司(Oracle)宣布收购Sun,从此Java便属于Oracle公司的了。
1995年Sun公司发布Java1.0版本
1997年发布Java 1.1版本
1998年发布Java 1.2版本
2000年发布Java 1.3版本
2002年发布Java 1.4版本
2004年发布Java 1.5版本
2006年发布Java 1.6版本
2009年Oracle甲骨文公司收购Sun公司,并于2011发布Java 1.7版本
2014年发布Java 1.8版本
2017年发布Java 9.0版本
2018年3月发布Java10版本
2018年9月发布Java11版本(LTS)
2019年3月发布Java12版本
2019年9月发布Java13版本
2020年3月发布Java14版本
2020年9月发布Java15版本
2021年3月发布Java16版本
2021年9月发布Java17版本
2022年3月发布Java18版本
以下这一张图详细说明了版本变化记录等信息,可以参考一下哦:
Tips:LTS 代表的是长期支持的版本。
四、Java语言能做什么
Java语言主要应用在互联网程序的开发领域。常见的互联网程序比如天猫、京东、物流系统、网银系统等,以及服务器后台处理大数据的存储、查询、数据挖掘等也有很多应用。
1995 年,Sun 公司发布了 Java 语言;2010 年,Oracle 公司收购了 Sun 公司,自此 Java 归属于 Oracle。根据 Oracle 的统计,有近 30 亿台各种各样的设备都是用过 Java 进行开发,包括 Windows、Unix、Linux、Mac OS、Android 等。另外,Java 在企业级解决方案和嵌入式领域也取得了不小的成就。
现在,Java 是全球最流行的编程语言之一,几乎在所有领域都能发现 Java 应用程序,比如 PC 客户端、Web 开发、大数据、Android APP 等。
五、Java语言体系
Java语言主要分为三个体系:
JavaSE(J2SE)(Java 2 Platform Standard Edition,java平台标准版)
JavaEE(J2EE)(Java 2 Platform Enterprise Edition,java平台企业版)
JavaME(J2ME)(Java 2 Platform Micro Edition,java平台微型版)
2005 年 6 月,JavaOne 大会召开,SUN 公司公开 Java SE 6。此时,Java 的各种版本已经更名,以取消其中的数字 “2”:J2EE 更名为 Java EE,J2SE 更名为Java SE,J2ME 更名为 Java ME。
Java SE:称为Java标准版,包含Java基础类库和语法。它主要用于开发图形用户界面(GUI)、复杂逻辑和高性能的桌面应用程序。Java SE分为四个组成部分JVM(Java Virtual Machine),JRE(Java SE Runtime Environment),JDK(Java Development kits)以及Java语言。JVM将Java编译好的文件翻译成对应的机器语言,JRE包含用于Java运行的环境,JDK包含用于Java开发的工具,Java语言则是定义Java开发的语法规则。想要学习及开发Java其他平台的应用,必须先了解Java SE以奠定基础。
Java EE:称为Java企业版,是以Java SE为基础,定义了一系列的服务,API,协议等,增加了编写企业级应用程序的类库。它是一个标准的多层体系结构,主要用于开发和部署分布式、基于组件、安全可靠、可伸缩和易于管理的企业级应用程序。
Java ME:称为Java微型版,主要用于开发消费性电子产品或嵌入式系统中的应用程序,开发具有有限的连接、内存和用户界面能力的设备应用程序。如移动设备(手机)、PDA、能够接入电缆服务的机顶盒,以及各种终端和其他消费电子产品。
六、Java语言主要特性
- 它是面向对象的
Java 语言提供类、接口和继承等面向对象的特性,为了简单起见,只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,而 C++语言只对虚函数使用动态绑定。总之,Java语言是一个纯的面向对象程序设计语言。 - 它具有可移植性
这种可移植性来源于体系结构中立性,另外,Java 还严格规定了各个基本数据类型的长度。Java 系统本身也具有很强的可移植性,Java 编译器是用 Java 实现的,Java 的运行环境是用 ANSI C 实现的。 - 它是解释型的:
如前所述,Java 程序在 Java 平台上被编译为字节码格式,然后可以在实现这个 Java 平台的任何系统中运行。在运行时,Java 平台中的 Java 解释器对这些字节码进行解释执行,执行过程中需要的类在联接阶段被载入到运行环境中。
Java编译程序生成字节码(byte-code),而不是通常的机器码。Java字节码提供对体系结构中性的目标文件格式,代码设计成可有效地传送程序到多个平台。Java程序可以在任何实现了Java解释程序和运行系统(run-time system)的系统上运行。
在一个解释性的环境中,程序开发的标准“链接”阶段大大消失了。如果说Java还有一个链接阶段,它只是把新类装进环境的过程,它是增量式的、轻量级的过程。因此,Java支持快速原型和容易试验,它将导致快速程序开发。这是一个与传统的、耗时的“编译、链接和测试”形成鲜明对比的精巧的开发过程。 - 它是高性能的
与那些解释型的高级脚本语言相比,Java 的确是高性能的。事实上,Java 的运行速度随着 JIT(Just-In-Time)编译器技术的发展越来越接近于 C++。 - 它是多线程的
在 Java 语言中,线程是一种特殊的对象,它必须由 Thread 类或其子(孙)类来创建。通常有两种方法来创建线程:其一,使用型构为 Thread(Runnable) 的构造子类将一个实现了 Runnable 接口的对象包装成一个线程,其二,从 Thread 类派生出子类并重写 run 方法,使用该子类创建的对象即为线程。值得注意的是 Thread 类已经实现了 Runnable 接口,因此,任何一个线程均有它的 run 方法,而 run 方法中包含了线程所要运行的代码。线程的活动由一组方法来控制。Java 语言支持多个线程的同时执行,并提供多线程之间的同步机制(关键字为 synchronized)。 - 它是健壮的:
Java 的强类型机制、异常处理、垃圾的自动收集等是 Java 程序健壮性的重要保证。对指针的丢弃是 Java 的明智选择。Java 的安全检查机制使得 Java 更具健壮性。 - 它是安全的
Java通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。 - 它是分布式的
Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket 等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。 - 它是简单的
Java 语言的语法与 C 语言和 C++ 语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java 丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java 语言不使用指针,而是引用。并提供了自动分配和回收内存空间,使得程序员不必为内存管理而担忧。 - 动态性
Java语言设计成适应于变化的环境,它是一个动态的语言。例如,Java中的类是根据需要载入的,甚至有些是通过网络获取的。
七、编程开发
7.1 编程环境
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Environment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK。
另外,可以把Java API类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(JAVA Runtime Environment),JRE是支持Java程序运行的标准环境。
JRE是个运行环境,JDK是个开发环境。因此写Java程序的时候需要JDK,而运行Java程序的时候就需要JRE。而JDK里面已经包含了JRE,因此只要安装了JDK,就可以编辑Java程序,也可以正常运行Java程序。但由于JDK包含了许多与运行无关的内容,占用的空间较大,因此运行普通的Java程序无须安装JDK,而只需要安装JRE即可。
7.2 编程工具
Eclipse:一个开放源代码的、基于Java的可扩展开发平台。
NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。
IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境。
EditPlus:如果正确配置Java的编译器“Javac”以及解释器“Java”后,可直接使用EditPlus编译执行Java程序。
八、终极问题——Java好学吗?
对于很多小白来说,肯定都会问到上面的这个问题,那么总的来说,学习Java的难易程度如何呢?Java真的会很难学习吗?
关于这个问题,大家都是仁者见仁,智者见智了,有的说好学,有的说比较难,有的说容易,有的说简单,反正各种回答的都有,这里也没有统一的答案。
但是有一点,是可以肯定的,那就是如果对这个编程感兴趣,那么学习起来就会相对来说比较容易一些,毕竟,上学的时候老师经常说兴趣是最好的老师,从我身边的经历来说,确实可以佐证这一点。
有兴趣了就可以驱使你自己一直坚持的学习下去,学习Java也是这样。
假如,如果你只是一时的对Java感兴趣,那么即使你学历再高,想要学会Java也就是空谈了。
掌握一门编程语言,是需要一个持续不断学习和使用的过程,新的技术层出不穷,一直更新迭代,而一门编程语言涉及面又多,牵涉比较广,所以需要了解的也会比较多。学习Java也是如此。
对于大多数人自学Java的时间会比较的长(这个主要看自律程度),去上Java培训班学习的比较的系统,时间也会短一些(费用比较高)。两者各有优缺点,可以根据自身情况选择哪一种方式。
当然,如果你已经选择了Java,那么恭喜你,选择了一个高薪行业,Java专业就业方向是比较广的,岗位也很多,选择了就不要后悔,就要义无反顾的坚持下去,持之以恒,它终不会负你!
完结!