Java,是一种解释型语言。由SUN公司开发,最初用于移动设备软件开发,结果却因为Internet的发展而成名。

Java语言基本上属于一个完全面向对象的语言,并且语言的设计仍然以简捷为重点,因此有其它语言基础的朋友学习Java语言会感觉比较简单,对于这个语言学习的难点则是面向对象的相关概念,包括:包、类、对象、实例、接口、继承、重载与覆盖,还有就是类、变量、函数的相关作用域,这些是语言学习的重点和难点。

对于语言的学习可以参考《Java 2参考大全》,对于面向对象的学习可以参考《Think in Java》,先学语言打好基础,再学面向对象的概念以及设计,通过自己设计程序再进一步去了解设计模式,循序渐进地达到Java程序员的基本要求。

学习Java还有个非常重要的就是类库,因为没有人还会从头开发程序,SUN公司提供了一套完整的开发用的基础类库,如何用好这些类才是Java语言学习的重中之重。

JVM (Java Virtual Machine, Java虚拟机)。

就是Java程序运行的虚拟环境,因为Java是解释型的语言,因此需要一个边解释边运行的支撑环境。同时,JVM又是在OS(操作系统)之上的,对于在JVM上运行的Java程序提供了统一的标准接口,从而屏蔽了操作系统的差异性,实现了Java代码的“一次编写,处处运行”的承诺,这个解释说明.NET平台理论上也可以实现这个功能,只是微软没有提供这样的支持。

为了提升程序运行的效率以及代码知识产权的保护,Java代码会使用JDK中的编译器编译成字节码(中间代码),从而运行在JVM之上,但是这个编译结果与C/C++这种编译型语言编译出来的结果不同,Java编译出来的是一种结构中立的中间文件格式,只能在JVM上执行,而C/C++编译出来的已经是最终的执行程序,操作系统只是管理和支撑应用运行,但是编译出来的结果已经是机器码。因此Java的Class文件可以使用反编译工具转换成Java代码进行分析,推荐的反编译工具是JAD及它的Eclise插件。

许多公司都有开发自己的JVM,据测试数据显示性能都比SUN提供的免费版本要好,但是我实际使用中没有发现明显地区别,而SUN也有高级但是收费的版本,因此性能上没有显示地提升还是使用免费地版本就可以了。

JRE(Java Runtime Environment,Java运行环境)。JRE提供了类库、JVM与其他组件来支持applet和Java应用程序的运行。另外,JRE拥有两个关键的发布技术:Java Plug-in与Java Web Start,Java Plug-in支持applet运行在大部分浏览器上,Java Web Start则可以将一个独立的应用程序发布到网络上。

JRE同时还是J2EE平台企业级应用开发与部署的支撑技术,但是不包括编译器与调试器等各种工具去支持applet和应用程序的开发。

Java Plug-in。这个技术是JRE的一部分,用于连接浏览器与Java平台。这个连接使得WEB站点的applets运行在客户端的浏览器中。

Java Web Start:只要拥有相同版本的JRE,独立的Java应用程序就可以通过这个技术发布到网络上。

JDK(Java Development Kit,Java开发工具)。

包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar),还有Java类库的源代码(src.zip)以及学习用的例子(sample与demo)。为了使程序安装后就可以运行,许多Java应用服务器会集成JDK,原因可以参考我所写的《JRE与JDK在启动应用服务器中的作用》。

无论是JRE还是JDK最主要是使用他们携带的JVM,以及安装到JDK与JRE目录下的LIB目录里的JAR包。使用JRE还是JDK都通过JAVA_HOME这个参数完成,而对LIB目录下的JAR包则通过CLASSPATH目录进行添加。值得注意的是如果JAVA_HOME设置成JDK的安装目录,实际上用的是包含在JDK安装目录下的JRE目录里的JVM。

JDK里面还包括了开发所需要用的编译、跟踪、发布等多种工具,这里就不一一描述,大家可以在网上查询资料,如果需要我这边补充,也可以跟帖说明。

J2SE( Java 2 Standard Edition, Java 2 标准版)。
Java 2平台标准版(现在叫Java SE)支持客户端和服务器端的Java应用程序开发,如今还包括了嵌入式和实时系统环境。Java SE还支持Java Web Services的开发,并且还是Java EE平台的基础。
Java SE平台中有两个主要的产品就是JRE与JDK。

J2EE( Java 2 Enterprise Edition, Java 2 企业版)。

J2EE(现在叫Java EE)是一种工业标准,用于支持可移植、可扩展、健壮并安全的服务器端Java程序。Java EE提供了web服务、组件模型、管理和通讯API从而可以实现符合工业标准SOA框架与WEB应用程序。Java EE平台包括符合Java EE规范的应用服务器,以及相关的工具、例子及帮助文件。还有符合Java EE标准的应用程序的发布与调试工具。


-A-
AJAX: (建议不译,原因:专有名词) [Asynchronous JavaScript and XML,异步JavaScript及XML]
annotation: 注解
Ant: (建议不译,原因:专有名词)
AOP: (建议不译,原因:专有名词) [aspect-oriented programming, 面向方面编程]
application: 应用
argument: 参数

-B-
B2B: (建议不译,原因:专有名词) [Business-to-Business, 业务对业务]
BAM: (建议不译,原因:专有名词) [Business Activity Monitoring, 业务活动监测]
BMP: (建议不译,原因:专有名词) [bean-managed persistence, Bean管理的持久化]
BPEL: (建议不译,原因:专有名词) [Business Process Excution Language, 业务流程执行语言]
BPM: (建议不译,原因:专有名词) [Business Process Modeling, 业务流程建模]
build: 建立;编译

-C-
C2B: (建议不译,原因:专有名词) [Consumer-to-Business, 客户对业务]
CAD: (建议不译,原因:专有名词) [Computer Aided Design, 计算机辅助设计]
CAM: (建议不译,原因:专有名词) [Computer Aided Modeling, 计算机辅助建模]
case-insensitive: 大小写不敏感
case-sensitive: 大小写敏感
container: 容器
cluster: 集群
CMP: (建议不译,原因:专有名词) [container-managed persistence, 容器管理的持久化]
component: 组件,部件
configuration: 配置
context: 上下文,环境
control: 控件
convention: 约定
CORBA: (建议不译,原因:专有名词) [Common Object Request Broker Architecture,公共对象请求代理体系]
COS: (建议不译,原因:专有名词) [Common Object Services,公共对象服务]
couple: 耦合
CRUD: 专指数据库操作create, read, update, delete,可以不译

-D-
Daemon: (建议不译,原因:专有名词) [Internet中用于邮件收发的后台程序]
DAO: (建议不译,原因:专有名词) [Data Access Object, 数据访问对象]
data: 数据
DBMS: (建议不译,原因:专有名词) [Database Management System, 数据库管理系统]
DDL: (建议不译,原因:专有名词) [Data Definition Language, 数据定义语言]
Declarative Programming: 声明式编程
delegate: 委托
Dependency Injection: 依赖注入
deploy: 部署
deserialize: 反序列化(也可译为反串行化),即取出
dialect: (行业)术语
directive: 指令
DIT: (建议不译,原因:专有名词) [Directory Information Tree, 目录信息树]
DML: (建议不译,原因:专有名词) [Data Manipulation Language, 数据操作语言]
DNS: (建议不译,原因:专有名词) [Internet Domain Name System, 因特网域名系统]
domain: 域
DSL: (建议不译,原因:专有名词) [Domain-Specific Languages, 特定领域语言]
DTOs: (建议不译,原因:专有名词) [data transfer objects, 数据传输对象]

-E-
EAI: (建议不译,原因:专有名词) [Enterprise Application Integration: 企业应用集成]
ECC: (建议不译,原因:专有名词) [error correcting codes: 错误纠正代码]
EIS: (建议不译,原因:专有名词) [Enterprise Information System: 企业信息系统]
EJB: (建议不译,原因:专有名词) [Enterprise JavaBean, 企业JavaBean]
encapsulate: 封装
ESB: (建议不译,原因:专有名词) [Enterprise Service Bus, 企业服务总线]
event: 事件

-F-
FAQs: (建议不译,原因:专有名词) [Frequently Asked Questions, 经常提问的问题]
FIFO: 先进先出 [First in, First out]
fire: 触发
firewall: 防火墙
framework: 框架
function: 函数

-G-
GoF: "四人帮",对名著Design Patterns-Elements of Reusable Object-Oriented Software的四名作者的"戏"称。[Gang of Four]
granularity: 颗粒性,颗粒度
GUI: (建议不译,原因:专有名词) [Graphic User Interface: 图形用户接口]
GUID: (建议不译,原因:专有名词) [Globally Unique Identifier: 全球唯一标识符]

-H-
hard-coding: 硬碥码
Hibernate: (建议不译,原因:专有名词) [一种为应用程序提供持久化服务的框架]

-I-
IDE: 集成开发环境 [Integrated Development Environment]
implement: 实现
internet: 因特网 (也可以不译,原因:在中文环境下已经得到充分理解及认同)
intranet: 企业内部网
IoC: (建议不译,原因:专有名词) [Inversion of Control, 控制反转]

-J-
JavaBean: (建议不译,原因:专有名词)
JCP: (建议不译,原因:专有名词) [Java Community Process, Java社区研究]
JDBC: (建议不译,原因:专有名词) [Java DataBase Connectivity, Java数据库连接]
JDO: (建议不译,原因:专有名词) [Java Data Objects, Java数据对象]
JES: Java企业系统 [Java Enterprise System]
JOnAS: (建议不译,原因:专有名词) [ Java Open Application Server, Java开放应用服务器]
JNDI: (建议不译,原因:专有名词) [Java Naming and Directory Interface, Java命名与目录接口]
JTA: (建议不译,原因:专有名词) [Java Transaction API: Java事务API]
JVM: (建议不译,原因:专有名词) [Java Virtual Machine: Java虚拟机]
JXTA: (建议不译,原因:专有名词) [一个用于P2P应用开发的网络计算平台]

-L-
Laszlo: (建议不译,原因:专有名词) [一个大量应用于internet应用程序的基于XML平台的开源项目]
LDAP: (建议不译,原因:专有名词) [Lightweight Directory Access Protocol, 轻量目录访问协议]
leverage: 均衡

-M-
MEPs: (建议不译,原因:专有名词) [message exchange patterns,消息交换模式]
meta: 元
metadata: 元数据
method signature: 方法签名
middleware: 中间件
mock: 虚拟的
modal dialog: 模态对话框
modular: 模组。是模块module的集合,它由多个独立的模块构成。
modular organization: 模组结构
module: 模块
MOM: (建议不译,原因:专有名词) [message-oriented middleware,面向消息的中间件]
MVC: (建议不译,原因:专有名词) [Model-View-Control,模型-视图-控制]

-N-
NDS: (建议不译,原因:专有名词) [Novell Directory Service,Novell目录服务]
NIS: (建议不译,原因:专有名词) [Network Information Service,网络信息服务]
node: 节点

-O-
ODMG: (建议不译,原因:专有名词) [Object Data Management Group, 对象数据管理组织]
OGNL: (建议不译,原因:专有名词) [Object Graph Navigation Language, 对象图导航语言]
OODBMS: (建议不译,原因:专有名词) [Object-Oriented Database Management System,  面向对象数据库管理系统]
ORM: (建议不译,原因:专有名词) [object-relational (O-R) mapping,  对象关系映射]

-P-
persistence: 持久化(使用SQL语句在关系数据库中存储数据)
POJO: (建议不译,原因:专有名词) [Plain Old Java Objects,简单初始Java对象]
POJI: (建议不译,原因:专有名词) [Plain Old Java Interface,简单初始Java接口]
procedural: 过程的
profiling: 配置
prototype: 原型

-Q-
queue: 队列

-R-
RAD: (建议不译,原因:专有名词)  [Rapid application development,快速应用开发]
RCS: (建议不译,原因:专有名词) [Revision Control System,修订控制系统]
RMI: (建议不译,原因:专有名词) [Remote Method Invocation: 远程方法调用]
retrieve: 检索
RIAs: 丰富的Internet应用程序 [Rich Internet Applications]
RPC: (建议不译,原因:专有名词) [remote procedure calls,远程过程调用]

-S-
schema: 规划,设计,方案
serialize: 序列化(也可译为串行化),即保存
session: 会话
SOA: (建议不译,原因:专有名词) [Service-Oriented Architecture: 面向服务体系]
SOAP: (建议不译,原因:专有名词) [Simple Object Access Protocol,简单对象访问协议]
SPI: (建议不译,原因:专有名词) [Service Provider Interface,服务提供接口]
Spring: (建议不译,原因:专有名词)
SQL: (建议不译,原因:专有名词) [Structured Query Language,结构化查询语言]
Struts: (建议不译,原因:专有名词) [一种基于MVC模式的Web应用程序框架]
surrogate keys: 替代键

-T-
tag: 标签
TDD: (建议不译,原因:专有名词) [Test Driven Development,测试驱动的开发]
third-party: 第三方,泛指其他开发商,生产商等
transaction: 事务
Tomcat: (建议不译,原因:专有名词) [一个非常有名的Java Web容器]

-U-
UDT: (建议不译,原因:专有名词) [user-defined column types: 用户定义字段类型]
use case: 用例
UI: 用户界面 (User Interface)

-W-
wizard: 向导
Web: (建议不译,原因:专有名词)
Web service: (可以不译,原因:专有名词) [Web服务]
WS-addressing: (建议不译,原因:专有名词) [web service寻址]
WSDL: (建议不译,原因:专有名词) [Web Service Description Language: Web服务描述语言]
WYSIWYG: 所见即所得 [What You See is What You Get]