Java学习-002-Java初识
此文主要讲述什么是 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 可分为以下三个体系:
- JavaSE(Java Platform,Standard Edition,Java 标准版)。它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。Java SE 包含了支持Java Web 服务开发的类,并为Java Platform,Enterprise Edition(Java EE)提供基础。
- JavaEE(Java Platform,Enterprise Edition,Java 企业版)。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在Java SE 的基础上构建的,它提供Web 服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-oriented architecture,SOA)和Web 2.0 应用程序。
- JavaME(Java Platform,Micro Edition,Java 移动设备版)。Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。Java ME 包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。基于Java ME 规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
三、Java 语言的特点:
Java 是一门优秀的程序设计语言,是一个简单、面向对象、分布式、解释型、健壮性、安全、平台无关性(跨平台)、体系结构中立、可移植、高性能、多线程、自动内存管理、动态的语言。
- 简单性:Java 是一种简单易学的语言。其语法与 C 语言 和 C++ 语言很接近,比较容易学习和使用;同时,丢弃了 C++ 中很少使用的、很难理解的、令人迷惑的特性,如操作符重载、多继承等。另外 Java 语言不再使用指针,并提供了自动的垃圾回收处理机制,使程序员不必为内存管理而担忧。
- 面向对象:Java 是一种面向对象语言,对于Java来说,一切皆是对象。Java 语言提供类、接口和继承等原语,只支持类之间的单继承,接口之间支持多继承,并支持类与接口之间的实现机制(关键字为 implements)。Java 语言全面支持动态绑定,C++ 仅支持对虚函数的动态绑定。若是理解了 Java 面向对象的基本概念,学习 Java 将更加轻松。
- 分布式:Java 可以应用于分布式的互联网环境中。Java 语言支持 Internet 应用的开发,在基本的 Java 应用编程接口中都有一个网络应用编程接口(Java.net),提供了用于网络应用编程的类库,包括 URL、URLConnection、Socket、ServerSocket等。Java 的 RMI(远程方法激活)机制也是开发分布式应用的重要手段。
- 解释型:Java 程序在 Java 平台上被编译为字节码格式,可在实现这个 Java 平台的任何系统中运行。在运行时, Java 平台中的 Java 解释器对这些字节码进行解释执行,在执行过程中需要的类在连接阶段被载入到运行环境中。
- 健壮性:Java 主要通过在编译期以及运行时的错误检查,来尽可能排除未知的错误。Java 的强类型机制、异常处理、垃圾的自动回收机制、安全检查机制等是 Java 程序健壮性的重要保证。
- 安全性:Java 语言提供了一个安全机制以防止恶意代码的攻击。除了Java 语言具有许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防止替代本地的同类名、字节代码检查,并提供安全管理机制(类 SecurityManager)成为 Java 的安全保障。Java 的安全特性确保Java可以用来开发无病毒、难篡改的系统。Java 的认证技术是基于公钥加密的。
- 平台无关性:Java 语言的设计不针对某种具体平台结构,这点不像 C/C++ 等编程语言。在编译时,是将 Java 程序编译成与具体体系结构无关的字节码。字节码可以发布在互联网上并且由 Java 虚拟机(JVM)解释执行。
- 体系结构中立:Java 编译器生成与平台无关的字节码格式文件(后缀为 calss 的文件),这种文件可以在实现这个 Java 平台的任何系统中运行,适合用于异构的网络环境和软件的分发。
- 可移植性:来源于体系结构中立性。Java 语言与平台无关,Java语言规范中也没有规定任何与具体实现相关的内容,这使得 Java 具有可移植性。编译器和 Java 依据 POSIX 方便移植的限制,用 ANSI C 语言写成。
- 高性能:与解释型的高级脚本语言相比, Java 是高性能的。同时,随着 JIT(Just-In-Time)即时编译技术的快速发展,使得 Java 将具有高性能特性。
- 多线程:Java 支持多线程编程,使用 Java 可以编写同时执行多个任务的程序。这种特征使得开发者可以构建稳定的交互式应用程序。
- 动态性:Java 是一种比 C/C++ 更具有动态特性的语言,它可以适应不断变化的环境。Java 程序可以携带大量的运行时信息,这些信息用来验证和解析运行时对象。
Java学习-002-Java初识的更多相关文章
- Java学习-027-JSON 之一 -- 初识
通常,我们在生活中使用的应用产品(无论是 Web应用还是 App 应用),又或者我们平常的信息交流,均无可避免的存在着信息交互,在信息交互的过程中就有着信息载体的存在.那么,在我们熟知的网络应用产品中 ...
- [java学习笔记]java语言核心----面向对象之this关键字
一.this关键字 体现:当成员变量和函数的局部变量重名时,可以使用this关键字来区别:在构造函数中调用其它构造函数 原理: 代表的是当前对象. this就是所在函数 ...
- [java学习笔记]java语言核心----面向对象之构造函数
1.构造函数概念 特点: 函数名与类名相同 不用定义返回值类型 没有具体的返回值 作用: 给对象进行初始化 注意: 默认构造函数 多个构造函数是以重载出现的 一个类中如果 ...
- [ Java学习基础 ] Java构造函数
构造方法是类中特殊方法,用来初始化类的实例变量,它在创建对象(new运算符)之后自动调用. Java构造方法的特点如下: 构造方法名必须与类名相同. 构造方法没有任何返回值,包括void. 构造方法只 ...
- [ Java学习基础 ] Java的继承与多态
看到自己写的东西(4.22的随笔[ Java学习基础 ] Java构造函数)第一次达到阅读100+的成就还是挺欣慰的,感谢大家的支持!希望以后能继续和大家共同学习,共同努力,一起进步!共勉! ---- ...
- [ Java学习基础 ] Java的抽象类与接口
一.抽象类 1. 抽象类 Java语言提供了两种类:一种是具体类:另一种是抽象子类. 2. 抽象类概念: 在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的 ...
- Java学习笔记心得——初识Java
初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开 ...
- java学习路线图-----java基础学习路线图(J2SE学习路线图)
安装JDK和开发软件跳过,网上太多了,不做总结,以下是我总结的学习路线图,欢迎补充. JAVA基础语法 注释,标识符命名规则及Java中的关键字 Java基本数据类型 Java运算符与表达式 Java ...
- Java学习之Java接口回调理解
Java接口回调 在Java学习中有个比较重要的知识点,就是今天我们要讲的接口回调.接口回调的理解如果解释起来会比较抽象,我一般喜欢用一个或几个经典的例子来帮助加深理解. 举例:老板分派给员工做事,员 ...
- Java学习笔记 -- Java定时调度工具Timer类
1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...
随机推荐
- NSMutableArray 存放BOOL
注意BOOL是不能直接存放在NSMutableArray中的 NSNumber* yesObj = [NSNumber numberWithBool:YES]; NSMutableArray* arr ...
- HDU 4057 Rescue the Rabbit(AC自动机+DP)
题目链接 一个数组开小了一点点,一直提示wa,郁闷,这题比上个题简单一点. #include <iostream> #include <cstring> #include &l ...
- 简单了解Flux,注意这是一个设计思想,是一个架构!!!!!
在RN开发中,我们总是需要去更改一个组件个数据(也就是所谓的状态),我们一般是采用是在初始化的函数constror()(好像拼错了) 在这个函数里面申明我们的初始化数据(状态)eg:this.stat ...
- 李洪强-C语言4-内存分析
C语言内存分析 一.进制 概念:进制是一种计数方式,是数值的表现形式 4种主要的进制: ①. 十进制:0~9 ②. 二进制:0和1 ③. 八进制:0~7 ④. 十六进制:0~9+a b c d e f ...
- 一些Office 365的问题收集
1. 按照MS的最佳实践, 应该是先有本地域, 然后再有Office 365. 但是我们公司刚好相反, 于是按照前面的文章做完了硬关联, 但是现在发现对于那些原本就在Office 365上的用户的Pr ...
- POJ 1144 Network(Tarjan求割点)
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 12707 Accepted: 5835 Descript ...
- ERROR com.opensymphony.xwork2.interceptor.ParametersInterceptor.error:34 - Developer Notification
We are trying to migrate from Struts 2.2 to Struts 2.3, after getting to run the project I am seeing ...
- ubuntu下用virtualbox安装windows虚拟机
按照这个教程: http://jingyan.baidu.com/article/eae07827856ac21fed54856f.html 安装. 会出现问题:"VT-x is disab ...
- GDC2016【彩虹六号:围攻 】使丰富的“突破”成为可能的破坏系统
[彩虹六号:围攻 ]使得丰富的“突破”成为可能的破坏系统 深奥的战术游戏的背景下,最新的程序化破坏技术[REALBLAST]! 进行演讲的是Ubisoft Montreal的Julien ...
- WordPress博客教程:博客赚钱
稍有关注独立博客的人都应该知道,中文博客实现盈利非常艰难,至少对于大部分中文博客来说是这样的.但很多时候我们不得不往赚钱的方向前进,至少要交得起域名和空间的租用费吧.不过期待赚钱前,你必须思考下如何提 ...