持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第32天,点击查看活动详情
1️⃣前言
- 本篇笔记:Java简介
2️⃣概述
🌱什么是Java?
- Java是一门面向对象的编程语言
- 具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点 。
- Java是由Sun Microsystems公司于1995年5月推出的Java面向对象程序设计语言和Java平台的总称。
- java不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念。
- 因此Java语言具有功能强大和简单易用两个特征。
- Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
- Java语言还可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。
🌱Java体系
3️⃣java发展历程
20世纪90年代,单片式计算机系统的出现,引起了自动控制领域人员的注意。为了抢占市场先机和开发新的技术,
Sun公司在1991年成立Green的项目小组,专攻计算机在家电产品上的嵌入式应用。刚开始编写程序时,
Green小组采用了C++编程语言,但对于单片式系统来说,C++程序过于复杂与庞大,而且程序的跨平台运行也是一个难题。因此,Sun公司的项目小组将目光转到了开发语言。他们假设了一种结构简单且符合嵌入式应用需要的硬件平台体系结构,并且为该体系结构制订了相关规范。但是,此时的
Sun公司研发人员没有设计一个全新的开发语言,而是对C++进行了改造,去除了留在C++的一些不太实用及影响安全的成分,并结合嵌入式系统的实时性要求,开发了一种称为Oak的面向对象语言。为了边开发边对Oak语言进行实验研究,研究人员在已有的硬件和软件平台基础上,按照之前指定的规范,建设了一个运行平台,该系统除了比C++更简单以外,本质上并无区别。1992年的夏天,当
Oak语言开发成功后,研究者们便想说服硬件生产商使用Oak语言生产硬件芯片,但由于人们并不熟悉这个新的开发语言,就此生产硬件产品的风险过大。就这样,Oak语言因为缺乏硬件的支持而无法进入市场,从而被搁置了下来。1994年6、7月间,在经历了一场历时三天的讨论之后,团队决定再一次改变了努力的目标,这次他们决定将该技术应用于万维网。他们认为随着
Mosaic浏览器的到来,因特网正在向同样的高度互动的远景演变,而这一远景正是他们在有线电视网中看到的。作为原型,帕特里克·诺顿写了一个小型万维网浏览器WebRunner。1995年,互联网的蓬勃发展给了
Oak机会。业界为了使死板、单调的静态网页能够“灵活”起来,急需一种软件技术来开发一种程序,这种程序可以通过网络传播并且能够跨平台运行。于是,世界各大IT企业为此纷纷投入了大量的人力、物力和财力。这个时候,Sun公司想起了那个被搁置起来很久的Oak,并且重新审视了那个用软件编写的试验平台。由于
Oak是按照嵌入式系统硬件平台体系结构进行编写的,所以非常小,特别适用于网络上的传输系统,而Oak也是一种精简的语言,程序非常小,适合在网络上传输。Sun公司首先推出了可以嵌入网页并且可以随同网页在网络上传输的Applet(Applet是一种将小程序嵌入到网页中进行执行的技术),并将Oak更名为Java(在申请注册商标时,发现Oak已经被人使用了,再想了一系列名字之后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java词语)。1995年5月23日,Sun公司在
Sunworld会议上正式发布Java和HotJava浏览器。IBM、Apple、DEC、Adobe、HP、Oracle、Netscape和微软等各大公司都纷纷停止了自己的相关开发项目,竞相购买了Java使用许可证,并为自己的产品开发了相应的Java平台。注:内容材料参考自百度百科----java(计算机编程语言)
java的发展过程如下图所示:
4️⃣Java特性
✔️简单的
Java的语法与C/C++相类似,如果你学过C或者C++的话,是较易上手的。另一方面,Java语法与C++相比,要简单得多,比如Java里没有操作符重载、多继承、自动的强制类型转换等概念。而且Java也没有指针,而是使用引用和提供自动的废料收集,内存管理会较简单些。
✔️面向对象的
Java提供类、接口和(单)继承等面向对象的特性。Java支持接口之间的多继承。Java语言全面支持动态绑定(C++语言只对虚函数使用动态绑定)总之,Java语言是一个纯的面向对象程序设计语言。
✔️分布式的
Java支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
✔️健壮的
Java的强类型机制、异常处理、垃圾的自动收集等是Java程序健壮性的重要保证。对指针的丢弃是Java的明智选择。Java的安全检查机制使得Java更具健壮性。
✔️安全的
Java通常被用在网络环境中,为此,Java提供了一个安全机制以防恶意代码的攻击。除了Java语言具有的许多安全特性以外,Java对通过网络下载的类具有一个安全防范机制(类ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类SecurityManager)让Java应用设置安全哨兵。
✔️体系结构中立的
Java程序(后缀为java的文件)在Java平台上被编译为体系结构中立的字节码格式(后缀为class的文件),然后可以在实现这个Java平台的任何系统中运行。这种途径适合于异构的网络环境和软件的分发。
✔️可移植的
这种可移植性来源于体系结构中立性,另外,
Java还严格规定了各个基本数据类型的长度。Java系统本身也具有很强的可移植性,Java编译器是用Java实现的,Java的运行环境是用ANSI C实现的。
✔️解释型的
如前所述,
Java程序在Java平台上被编译为字节码格式,然后可以在实现这个Java平台的任何系统中运行。在运行时,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中的类有一个运行时刻的表示,能进行运行时刻的类型检查。
5️⃣写在最后
好了,本篇笔记就到这里。
(备注:本篇笔记部分内容取自菜鸟教程:Java 简介 | 菜鸟教程)