Java语言概述
1.1 什么是Java
Java是一个有一系列计算机软件和规范形成的技术体系,它提供了完整的用于软件开发和跨平台部署的主持环境,且广泛应用于嵌入式系统、移动终端、企业服务器。大型机等各种场合。
Java官方数据:
97%的企业锥面运行Java
美国有89%的桌面(或计算机)运行Java
全球有900万Java开发人员
开发人员的头号先择
排名第一的部署平台
有30亿部移动电话运行Java
100%的蓝光盘播放器附带了Java
有50亿张Java卡在使用
1.25亿台TV运行Java
前5个原始设备制造商均提供了JavaME
这些数据可以告诉我们,Java到底有多“火”。
1.2 Java的11个特性
1)简单性
Java语法是C++语法的“纯净版本”。没有头文件、指针运算、(甚至指针语法)、结构、联合、操作符重载、虚基类等等。而且Java开发环境远远超出大多数其他编程语言的开发环境。
2)面向对象
什么是面向对象?用木匠打个比方,一个“面向对象”的工匠始终关注的的是所制作的椅子,第二位才是所使用的工具;而一个“非面向对象”的木匠首先考虑的是所使用的工具。
在Java的世界里,一切皆对象。
Java的面向对象特性与C++相似,只要不同点在于多重继承。Java中取而代之的是更简单的接口概念。而且相比C++,Java提供了更丰富的运行时自省功能。
3)分布式(微服务)
Java有丰富的例程序,用于处理像HTTP和FTP之类的TCP/IP协议。Java应用程序能够通过URL打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。
4)健壮性
Java和C++最大的不同在于Java采用的指针模型可以消除重写内存和损坏数据的可能性。而且,Java编译器能够检测许多在其他语言中仅在运行时才能检测出的问题。
5)安全性
Java适用于网络/分布式环境。使用Java可以构建防病毒、防篡改的系统。可以防范常见的各种攻击:运行时堆栈溢出、蠕虫和病毒常用的攻击手段;破坏自己进程空间之外的内存;未经授权读写文件。
6)体系结构中立
只要有Java运行时系统,编译后的代码就可以在许多处理器上运行。Java编译器通过生成与特定计算机体系结构无关的字节码指令来实现这一特性。精心设计的字节码不仅可以很容易的在任何机器上解释执行,而且还可以动态地翻译成本地机器码。
7)可移植性
与C/C++不同,Java规范中没有“依赖具体实现的地方”。基本数据类型的大小以及有关运算都做了明确的说明。例如,Java中的int永远是32位的整数,而在C/C++中,int可能是16位、32位整数,也可能是编译器提供商指定的其他大小。在Java中,数据类型具有固定的大小,这消除了代码移植时令人头疼的问题。
8)解释型
Java解释器可以在任何移植了解释器的机器上执行Java字节码。
9)高性能
尽管对解释后的字节码性能已经比较满意,但在有些场合下可能需要更加高效的性能。字节码可以在运行时刻动态的翻译成对应运行这个应用的特定cpu的机器码。
10)多线程
Java是第一个支持并发程序设计的主流语言。多线程可以带来更好的交互响应和实时行为。Java在并发程序方面出色,可以很好的管理这个工作。
11)动态性
Java和C/C++相比更具动态性。它能够适应不断发展的环境。库中可以自由的添加新方法和实例变量,而对客户端没有任何影响。
1.3 Java是最好的语言么
不是,因为在每个领域都有更合适的编程语言。
C语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是C语言写成的。C++是面向对象的C语言,一直在不断改进。
JavaScript是能运行在浏览器中的语言,丰富的前端界面离不开JavaScript的功劳。近年来的Node.js又在后端占有一席之地。
Python用于系统管理,并通过高性能预编译的库,提供API来进行科学计算,文本处理等。是Linux必选的解释性语言。
Ruby强于DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。Eriang就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。
Go语言内置了并发能力,可以编译成本地代码。当前新的的网络相关项目,很大的比例是由Go语言编写的,如Docler、Kubernets等。
编写网页用PHP,函数式编程有Lisp/Scala,编写ios程序有Swift/Objective-C。
Java的优势:
其一,语法简单,学过计算机编程的开发者都能快速上手。
其二,在若干领域都有很强的竞争力,比如服务端编程,高性能网络程序,企业软件事务处理,分布式计算,安卓移动终端应用开发等。
Java不仅是一门编程语言,它是一个综合的技术体系,是面向对象思想的规范。