Java语言概述
2004
年,
发布里程碑式版本:
JDK 1.5
,为突出此版本的重要性,更名为
JDK 5.0
2014年,
发布
JDK 8.0
,是继
JDK 5.0
以来变化最大的版本
Java技术体系平台
Java SE(Java Standard Edition)
标准版
支持面向桌面级应用(如
Windows
下的应用程序)的
Java
平台,提供了完整的
Java
核
心
API
,此版本以前称为
J2SE
Java EE(Java Enterprise Edition)
企业版
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如
:Servlet
、
Jsp
等,主要针对于
Web
应用程序开发。版本以前称为
J2EE
Java ME(Java Micro Edition)
小型版
支持
Java
程序运行在移动终端(手机、
PDA
)上的平台,对
Java API
有所精简,并加
入了针对移动终端的支持,此版本以前称为
J2ME
Java Card
支持一些
Java
小程序(
Applets
)运行在小内存设备(如智能卡)上的平台
Java语言的诞生
James Gosling
Java
确实是从
C
语言和
C++
语言继承了许多成份,甚至可以将
Java
看 成是
类
C
语言
发展和衍生的产物。比如
Java
语言的变量声明,操作符 形式,参数传递,流程控制等方面和C
语言、
C++
语言完全相同。但同时,Java
是一个
纯粹的面向对象
的程序设计语言,它继承了
C++
语言 面向对象技术的核心。Java
舍弃了
C
语言中容易引起错误的指针
(以引用取代)、运算符重载
、多重继承 (以接口取代)等特性,
增加了垃圾回收器功能
用于回收不再被引用的对象所占据的内存空间。JDK1.5
又引入了泛型编程(
Generic Programming)、类型安全的枚举、不定长参数和自动装
/
拆箱
Java语言的特点
特点一:
面向对象
两个基本概念:类、对象
三大特性:封装、继承、多态
特点二:
健壮性
吸收了
C/C++
语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制
特点三:
跨平台性
跨平台性:通过
Java
语言编写的应用程序在不同的系统平台上都可以运行。
“
Write
once , Run Anywhere
”
原理:只要在需要运行
java
应用程序的操作系统上,先安装一个
Java
虚拟机
(JVM
J
ava
V
irtual
M
achine)
即可。由
JVM
来负责
Java
程序在该系统中的运行。
Java两种核心机制
1. Java虚拟机 (Java Virtal Machine)
JVM是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指
令,管理数据、内存、寄存器
。
对于不同的平台,有不同的虚拟机。
只有某平台提供了对应的java
虚拟机,
java
程序才可在此平台运行
Java虚拟机机制屏蔽了底层运行平台的差别,实现了
一次编译,到处运行
2. 垃圾收集机制 (Garbage Collection) 不再使用的内存空间应回收—— 垃圾回收。
在C/C++
等语言中,由程序员负责回收无用内存。
Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空间的分配情况。并在JVM
空闲时,检查并释放那些可被释放的存储空间。
垃圾回收在Java
程序运行过程中自动进行,程序员无法精确控制和干预。
Java程序还会出现内存泄漏和内存溢出问题吗?
Yes!