本贴子转自:http://www.pbteach.com/post/2019/2.2prepare-javafeatures/
1 Java平台的三个版本
1)Java SE(Java Platform,Standard Edition)标准版
Java SE是为开发普通桌面和商务应用程序提供的解决方案,它包含了支持 Java Web 服务开发的类库,为 Java Platform Enterprise Edition(Java EE)提供基础。
2)Java EE(Java Platform,Enterprise Edition)企业版
JavaEE以前称为 J2EE,是为开发企业环境下的应用程序提供的一套解决方案,该技术体系中包含的技术如 Servlet、Jsp等,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和 Web 2.0 应用程序(比如电商网站)。
3)Java ME(Java Platform,Micro Edition)小型版
Java ME以前称为 J2ME,Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序(比如手机游戏)提供一个健壮且灵活的环境。
javase是基础,要先学,javaee是企业级,学完成javase就学javaee,就可以进行javaweb开发,开发互联网应用,比如作个网站,微信公众号等,javame是做手机应用(手机应用开发技术很多,这里不详情说)。
2 Java语言特性
SUN公司对java的描述:“Java is a simple,object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language”.
翻译: “Java是一门简单的,面向对象,分布式,解释性,健壮的,安全的,结构中立的, 便捷的, 高性能的, 多线程的, 动态的语言”。
Java语言特性列表如下:
简单(Simple)
面向对象(Object-Oriented)
方便,可移植(Portable)
平台独立(Platform independent)
安全(Secured)
强大,健壮(Robust)
体系结构中立(Architecture neutral)
动态(Dynamic)
解释执行(Interpreted)
高性能(High Performance)
多线程(Multithreaded)
分布式(Distributed)
1) 简单(Simple)
Java语言很简单,Java的语法是基于C++(程序员在学习C++之后更容易学习它)。
移除C++许多令人困惑或很少使用的特征,例如,显式指针,操作符重载等。
不需要删除未引用的对象,因为在Java中有自动垃圾收集。
2)面向对象(Object-Oriented)
一切皆对象,一个对象中包括了数据和行为。面向对象编程(OOP)是一种通过提供一些规则来简化软件开发和维护的方法,通常实践证明面向对象编程比面向过程编程(代表者c语言)更适合软件工程化的开发。
3)方便,可移植(Portable)
此特性也叫跨平台特性,通过Java语言编写的应用程序可以在不同的系统平台上都可以运行。
平台是程序运行的硬件或软件环境,系统平台主要是指操作系统,常见的操作系统有Windows、Linux、Android、Sun Solaris、Mac/OS等。
Java程序通过Java 虚拟机(JVM Java Virtual Machine)运行,只要在需要运行java应用程序的操作系统上先安装一个Java虚拟机即可,由JVM来负责Java程序在该系统中的运行,这就是跨平台的原理。
如下图是Java跨平台运行的示意图:
因为有了JVM所以同一个Java程序可以在三个不同的操作系统中都可以执行,这样就实现了Java程序的跨平台性。也称为Java具有良好的可移植性。
4)平台独立(Platform independent)
Java代码可以在多个平台上运行,Java代码由编译器编译并转换为字节码,它是一个独立于平台的代码,即字节码可以在多个平台上运行,达到一次编写和到处运行。
5)安全(Secured)
Java的安全体主要现在它的沙箱安全机制:
1.Java类装载器结构
2.Java字节码校验器
3.Java安全管理器
Java的安全还体现在它的其它功能特性:
1.类型安全的引用转换
2.结构化的内存訪问(无指针算法)
3.自己主动垃圾收集
4.数组边界检查
5.空引用检查
6)强大,健壮(Robust)
健壮意味着强大。Java使用强大的内存管理,从而避免有安全问题的指针。在java中有自动垃圾收集。 在java中有异常处理和类型检查机制。
7)体系结构中立(Architecture neutral)
这里的体系结构中立主要是指不同CPU的体系架构,Java编译器生成的是一个体系架构中立的对象文件格式(an architecture-neutral object file format)。通俗地讲,就是一个Java程序也能在许多不同的CPU下运行,当然前提必须有Java运行时系统(Java runtime system)在你的电脑上。
8)动态(Dynamic)
Java程序能够携带大量的运行时信息,这些运行时信息能够验证和访问程序运行时的各种对象。
9)解释执行(Interpreted)
Java的字节码是动态翻译成机器指令的,即边解释边执行,Java与其它解释型语言不同,Java是将.class文件先编译成字节码,然后由JVM对字节码进行解释执行。
10)高性能(High Performance)
Java的运行速度随着JIT(Just-In-Time)编译器技术的发展越来越接近于C++。
11)多线程(Multithreaded)
Java的多线程特性使得Java程序能够同时执行多项任务,这对于交互响应要求非常高的程序设计是至关重要的。
12)分布式(Distributed)
分布式是一种架构模式,是将模块进行抽取、单独构建、并部署在不同服务器上运行,比如天猫、京东等大型电商平台都是采用分布式架构,使用java可以创建分布式应用程序。