此文主要讲述什么是 Java,以及 Java 常识性知识,方便亲们进一步了解 Java 语言相关的常识。

一、Java 概述

Java 语言是美国 Sun Microsystems 公司于 1995 年推出的面向对象的程序设计语言,其充分考虑了互联网时代的特点,适合互联网的开发。用 Java 实现的 HotJava 浏览器(支持 Java Applet)显示了 Java 的潜力:跨平台、动态的 Web、Internet计算。在设计上具有跨平台、安全、面向对象等特点收到了广大编程爱好者的喜爱,同时也成为了众多公司编程语言的首选。另外现在很多的开源测试工具也都有 Java 的身影(例如 JMeter,Selenium等)。

Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称,是一个纯的面向对象的程序设计语言。

Java 平台由 Java 虚拟机(Java Virtual Machine)和 Java 应用编程接口(Application Programming Interface, API)构成。Java 应用编程接口为 Java 应用提供了一个独立于操作系统的标准接口,使 Java 语言实现了跨平台。

二、Java 可分为以下三个体系:

  1. JavaSE(Java Platform,Standard Edition,Java 标准版)。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java SE 包含了支持Java Web 服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。
  2. JavaEE(Java Platform,Enterprise Edition,Java 企业版)。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web 2.0 应用程序。
  3. JavaME(Java Platform,Micro Edition,Java 移动设备版)。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。

三、Java 语言的特点:

Java 是一门优秀的程序设计语言,是一个简单、面向对象、分布式、解释型、健壮性、安全、平台无关性(跨平台)、体系结构中立、可移植、高性能、多线程、自动内存管理、动态的语言。

  1. 简单性:Java 是一种简单易学的语言。其语法与 C 语言 和 C++ 语言很接近,比较容易学习和使用;同时,丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的特性,如操作符重载、多继承等。另外 Java 语言不再使用指针,并提供了自动的垃圾回收处理机制,使程序员不必为内存管理而担忧。
  2. 面向对象:Java 是一种面向对象语言,对于Java来说,一切皆是对象。Java 语言提供类、接口和继承等原语,只支持类之间的单继承,接口之间支持多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,C++ 仅支持对虚函数的动态绑定。若是理解了 Java 面向对象的基本概念,学习 Java 将更加轻松。
  3. 分布式:Java 可以应用于分布式的互联网环境中。Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中都有一个网络应用编程接口(Java.net),提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。
  4. 解释型:Java 程序在 Java 平台上被编译为字节码格式,可在实现这个 Java 平台的任何系统中运行。在运行时, Java 平台中的 Java 解释器对这些字节码进行解释执行,在执行过程中需要的类在连接阶段被载入到运行环境中。
  5. 健壮性:Java 主要通过在编译期以及运行时的错误检查,来尽可能排除未知的错误。Java 的强类型机制、异常处理、垃圾的自动回收机制、安全检查机制等是 Java 程序健壮性的重要保证。
  6. 安全性:Java 语言提供了一个安全机制以防止恶意代码的攻击。除了Java 语言具有许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防止替代本地的同类名、字节代码检查,并提供安全管理机制(类 SecurityManager)成为 Java 的安全保障。Java 的安全特性确保Java可以用来开发无病毒、难篡改的系统。Java 的认证技术是基于公钥加密的。
  7. 平台无关性:Java 语言的设计不针对某种具体平台结构,这点不像 C/C++ 等编程语言。在编译时,是将 Java 程序编译成与具体体系结构无关的字节码。字节码可以发布在互联网上并且由 Java 虚拟机(JVM)解释执行。
  8. 体系结构中立:Java 编译器生成与平台无关的字节码格式文件(后缀为 calss 的文件),这种文件可以在实现这个 Java 平台的任何系统中运行,适合用于异构的网络环境和软件的分发。
  9. 可移植性:来源于体系结构中立性。Java 语言与平台无关,Java语言规范中也没有规定任何与具体实现相关的内容,这使得 Java 具有可移植性。编译器和 Java 依据 POSIX 方便移植的限制,用 ANSI C 语言写成。
  10. 高性能:与解释型的高级脚本语言相比, Java 是高性能的。同时,随着 JIT(Just-In-Time)即时编译技术的快速发展,使得 Java 将具有高性能特性。
  11. 多线程:Java 支持多线程编程,使用 Java 可以编写同时执行多个任务的程序。这种特征使得开发者可以构建稳定的交互式应用程序。
  12. 动态性:Java 是一种比 C/C++ 更具有动态特性的语言,它可以适应不断变化的环境。Java 程序可以携带大量的运行时信息,这些信息用来验证和解析运行时对象。

Java学习-002-Java初识的更多相关文章

  1. Java学习-027-JSON 之一 -- 初识

    通常,我们在生活中使用的应用产品(无论是 Web应用还是 App 应用),又或者我们平常的信息交流,均无可避免的存在着信息交互,在信息交互的过程中就有着信息载体的存在.那么,在我们熟知的网络应用产品中 ...

  2. [java学习笔记]java语言核心----面向对象之this关键字

    一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理:         代表的是当前对象.         this就是所在函数 ...

  3. [java学习笔记]java语言核心----面向对象之构造函数

    1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用:                给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...

  4. [ Java学习基础 ] Java构造函数

    构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只 ...

  5. [ Java学习基础 ] Java的继承与多态

    看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...

  6. [ Java学习基础 ] Java的抽象类与接口

    一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...

  7. Java学习笔记心得——初识Java

    初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开 ...

  8. java学习路线图-----java基础学习路线图(J2SE学习路线图)

    安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...

  9. Java学习之Java接口回调理解

    Java接口回调 在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调.接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解. 举例:老板分派给员工做事,员 ...

  10. Java学习笔记 -- Java定时调度工具Timer类

    1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...

随机推荐

  1. 【BZOJ】1146: [CTSC2008]网络管理Network(树链剖分+线段树套平衡树+二分 / dfs序+树状数组+主席树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1146 第一种做法(时间太感人): 第二种做法(rank5,好开心) ================ ...

  2. elasticsearch1.0 升级2.2的数据备份和恢复

    近期由于elasticsearch的版本升级,需要研究下elasticsearch的快照(snapshot)和恢复(restore)功能.   先说下背景,目前环境采用的是elasticsearch1 ...

  3. 什么是SQL注入式攻击

    什么是SQL注入式攻击? 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响 ...

  4. Struts1与Struts2的12点区别

    Struts1与Struts2的12点区别  1) 在Action实现类方面的对比:Struts 1要求Action类继承一个抽象基类:Struts 1的一个具体问题是使用抽象类编程而不是接口.Str ...

  5. 深度解析开发项目之 05 - 解决textField编辑之后点击其他内容改变的问题

    深度解析开发项目之 05 - 解决textField编辑之后点击其他内容改变的问题 问题的解决:  只需要给HeadeVIew加上这句代码

  6. Android Studio 想说爱你不容易

    开始使用Android Studio 真是非常痛苦的一段经历,而这一切的根源就在于GFW,俗称“墙” 如果避过墙来安装 AS,其实我已经在另外一篇文章中说明:http://www.cnblogs.co ...

  7. 完美洗牌&洗牌

    完美洗牌问题,给定一个数组a1,a2,a3,...an,b1,b2,b3..bn,把它最终设置为b1,a1,b2,a2,...bn,an这样的. O(n)的算法,O(n)的空间. 对于前n个数,映射为 ...

  8. HDU 2594 Simpsons’ Hidden Talents(KMP的Next数组应用)

    Simpsons’ Hidden Talents Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java ...

  9. Web中的图标

    随着时代的变迁与技术的不断的更新,在当今这个时代,Web中的图标(Icons)不再仅仅是局限于<img>.除了<img>直接调用Icons文件之外,还有Sprites(俗称雪碧 ...

  10. 如何用Apache POI操作Excel文件-----如何在已有的Excel文件中插入一行新的数据?

    在POI的第一节入门中,我们提供了两个简单的例子,一个是如何用Apache POI新建一个工作薄,另外一个例子是,如果用Apache POI新建一个工作表.那么在这个章节里面,我将会给大家演示一下,如 ...