本文地址:http://www.cnblogs.com/archimedes/p/java-study-note1.html,转载请注明源地址。

1.Java程序设计语言

Java程序设计语言是一种高级语言,它用我们熟悉的字词、句等表述需要计算机为我们做的事情。大多数程序设计语言,都要经过编译或解释以便能在计算机上运行。

在Java程序设计语言中,所有源代码写在一个扩展名是.java的纯文本文件里。这些源文件通过Java编译器(javac.exe)编译成.class文件。.class文件不包含本地处理器的代码,而包含Java虚拟机机器语言代码,它是一种在Java平台上被解释器解释的平台无关代码,称之为“字节码”。

Java执行工具(java)用来运行.class文件,它是一个解释程序,又称“Java虚拟机”,它负责解释分解并执行每个Java字节码指令。下图反映这个过程:

Java虚拟计算机,可以认为Java字节码像机器指令码一样。任何Java解释器,不论是开发工具的,还是运行applet的web浏览器,都可认为是运行的Java虚拟计算机。Java虚拟机在许多不同的操作系统都是有效的,所以同样的.class文件有能力运行在Windows、Solaris、 Linux、MacOS等多种操作系统下,如图:

2.Java平台

平台是程序运行的硬件和软件环境。我们已经了解的一些流行平台像Windows、Linux、Solaris和MacOS等。多数平台被描述成操作系统与硬件的复合体。Java平台不同于其它平台,它是一个纯软件平台,在其它硬件基础平台上运行,如下图:

Java平台有两个部分:

Java虚拟机(Java VM)

Java应用程序接口(Java API)

Java虚拟机是Java平台的基础,是在各种不同的硬件基础平台上的接入口。Java字节码程序就是由它解释并执行,同时提供程序的运行环境。

Java API是一个巨大的,提供许多有用功能的,软件组成的集合体。Java API被组合在库中,由相关的类和接口构成,这些库称做“包”。下图表示运行在Java平台上的程序。图中显示,Java API和虚拟机把程序与硬件隔离开,Java程序通过API在VM上运行。

3.Java术语

JVM - java虚拟机

  JVM将 java 字节码程序翻译成机器语言。然后由计算机执行。

JRE - java 运行环境

  JRE 是由JVM 和 java platform 核心类以及相关支撑文件组成。

API - Application programming interface.

  API 是rules(syntax) :在java技术中如何编程。

  API包括数百个类——公司预先编好的代码,你可以在编程中充分利用它们的功能。

JDK — java developer’s kit (java开发工具包)
JDK 包含JVM和其他工具,以及所有的API和相关的文件。
JDK 是java 技术的旧名(1999年11月以前采用), JDK1.1 是最后版本。
Java 2 — Java 2 Platform,
J2 SDK –java技术的新名称。
SDK — Software Development Kit

4.Java虚拟机

JVM提供以下定义:

  • 指令集(Bytecodes 是JVM的机器指令)。

  • 寄存器组

  • 类文件格式

  • 垃圾回收“堆”(实现内存的动态分配和自动回收)

  • 内存区域

Java程序执行时,首先虚拟机对要执行的class文件装载,然后对字节码进行验证,最后用解释器对字节码解释执行,下图是jvm的逻辑构造:

加载代码 — 类装配器

加载程序运行所需要的所有的类。类装配器将本地文件系统的类的名字空间与从网络资源来的类的名字空间分开。这样就限制了特洛伊木马程序,因为本地类总是首先加载。

一旦所有的类被加载,可执行程序的内存布局就被确定了。内存地址被分配给符号引用表,查找表被建立。由于内存的布局出现在运行时刻,防止了对于代码域的未授权的访问。

验证代码 — 字节码验证器

java代码在你的机器上执行前要经过几个测试。字节码验证器测试代码段的格式,检查代码段是否有非法代码(伪造指针,对象上的非法存取,试图改变对象类型等)。

所有网络来的类文件都要经过字节码验证。

执行代码 — 解释器

5.建立Java平台和开发环境

1.建立Java平台

Java平台的建立只需安装JDK或JRE就可以完成。JRE是Java运行环境(Java Runtime Environment)缩写,如果仅仅用来运行Java程序,仅安装JRE就可以了。如果需要开发和运行Java程序,就必须安装JDK。

第一步:下载JDK。

第二步:运行JDK安装程序。

以上两步比较简单,不赘述

第三步:设置JDK环境变量。

通常JDK安装完成后需要设置Java环境变量PATH和CLASSPATH。

(1).PATH变量

是操作系统用于查找可执行文件的目录集,格式如下:

PATH=<PATH原有的内容>;<JDK安装目录>\bin

JDK安装完成以后需要将开发工具的存放目录加入到PATH变量中,使得在编译或执行Java程序时操作系统能够找到编译程序javac或解释程序java。

(2).CLASSPATH变量

是Java编译器编译用于查找相关类或接口的目录集,也是Java解释器用于查找相关类或接口的目录集,格式如下:

CLASSPATH=<class文件目录>或<jar文件路径名>[;...]

这里< jar文件路径名>由每个jar文件及存放它的目录名组成,例如

D:\Program Files (x86)\Java\jdk1.7.0_07\lib\dt.jar

多个路径名之间用“;”分隔。

在Windows系统下设置环境变量可以从控制面板的系统设置添加,或者“计算机”->“属性”->"高级系统设置"->"环境变量"

这里以JDK1.7为例介绍环境变量的设置过程,假设JDK安装的安装路径是

D:\Program Files (x86)\Java\jdk1.7.0_07

在命令行中输入下面命令:

java -version

显示下面的版本信息,说明配置成功!

2、建立Java开发环境

Java平台建立(即安装JDK)完成后就可以运行或开发Java程序了。JDK提供了基本的Java开发工具,这些工具放在JDK安装目录下的bin目录。但是,对于复杂大型的Java程序是不能满足要求,需要专门的集成开发工具。下面分别介绍JDK提供主要工具软件,并对常用的集成开发工具做简单介绍。

(1)JDK开发工具

JDK开发工具包括工具和实用程序,可帮助开发、执行、调试和保存以 Java 编程语言编写的程序。在这些程序中主要工具程序有:编译工具Javac,解释工具Java,文档生成工具,Java平台调试工具等。

Javac

Java编译器,将Java源程序编译成字节码,生成class文件。在bin目录下,文件名称是javac.exe。命令格式:

javac [选项] 源文件 [类] [ @argfiles ]

其中,

选 项 –- 编译参数。

源文件 -– 一个或多个需要编译的java源程序文件。

类 –- 一个或多类。

@argfiles -– 参数文件。

使用示例:编译Java源程序helloworld.java。

Java解释器,直接从类文件执行Java应用程序,即application。命令格式:

java [选项] 类 [参数... ]

java [选项] -jar jar文件 [参数... ]

javaw [选项] 类 [参数... ]

javaw [选项] -jar jar文件 [参数... ]

其中:

选项        -– 运行参数。

类           -– 被调用的类的名称。

-jar jar文件 -– 被调用的jar文件名称。

参数         -– 传送给main方法的参数串。

使用示例:执行Java类hello.class

(2)Java集成开发工具

集成开发环境(简称IDE及Integrated Development Environment的缩写)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。就是集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开发软件服务套。所有具备这一特性的软件或者软件套(组)都可以叫做集成开发环境,可以独立运行,也可以和其它程序并用。JAVA的集成开发环境很多,比如 JCreator,NeBeans,Java Studio,JBuilder,Java Workshop,JDeveloper,Visual Age for java,Eclipse等等,这里简单介绍netbeans和eclipse。

NetBeans IDE

NetBeans是一个全功能的开放源码Java IDE,可以帮助开发人员编写、编译、调试和部署Java应用,并将版本控制和XML编辑融入其众多功能之中。NetBeans 可支持Java 2平台标准版(J2SE)应用的创建、采用JSP和Servlet的2层Web应用的创建,以及用于2层Web应用的API及软件的核心组的创建。此外,NetBeans 最新牒还预装了两个Web服务器,即Tomcat和GlassFish,从而免除了繁琐的配置和安装过程。所有这些都为Java开发人员创造了一个可扩展的开放源多平台的Java IDE,以支持他们在各自所选择的环境中从事开发工作,如Solaris、Linux、Windows或Macintosh。

Eclipse

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为C++、Python、PHP等其他语言的开发工具。Eclipse的本身只是一个框架平台,众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse的运行需要有Java的虚拟机存在,在编译java的时候不需要额外的编译器。自身就能对java源代码进行编译。由于Eclipse是使用java编写的,所以在跨平台上做的很好,常用的平台Eclipse都能运行。

Eclipse最大的特点使用插件满足使用者根据自己的需要对其进行扩展,且Eclipse源代码进行开放,使插件的数量不断增长,其中不乏一些非常优秀的插件。也使得Eclipse的功能大大增强,使用Eclipse作为基础来开发的软件也很多。

转载于:https://www.cnblogs.com/wuyudong/p/java-study-note1.html

java学习笔记1--开发环境平台总结相关推荐

  1. libgdx 学习笔记一 开发环境搭建

    本章内容讲述 libgdx 开发环境.怎么配置eclipse 用来开发,并且在桌面和android中运行libgdx applications 注:文章就是根据libgdx官方文档翻译或加入自己的理解 ...

  2. JAVA学习:maven开发环境快速搭建How to download J2EE API (javaee.jar) from Maven

    http://tech.it168.com/a2011/1204/1283/000001283307.shtml [IT168技术]最近,开发中要用到maven,所以对maven进行了简单的学习.因为 ...

  3. JAVA学习:maven开发环境快速搭建

    最近,开发中要用到maven,所以对maven进行了简单的学习.因为有个maven高手在身边,所以,很快就上手了,我这里算是自我总结吧.关于maven是什么东西,请参考其它文章. 准备工作 Jdk 1 ...

  4. 安装成功配置环境变量_go语言学习笔记-Windows10开发环境安装和环境变量配置

    相关文档 go语言学习笔记-目录 1.安装 1.1.访问 https://golang.google.cn/dl/ 或 https://golang.org/dl/ 下载官方安装包 1.2.选择Win ...

  5. CC2640R2F学习笔记(一.开发环境)

    文章目录 前言 一.硬件 二.操作系统 三.SDK 四.CCS 前言 以下列出CC2640R2F学习笔记所基于的软.硬件平台,笔记的所有实验.代码都是在这些平台上来进行的. 一.硬件 开发板LAUNC ...

  6. playframework学习笔记1 -- 开发环境和第一个工程

    对于scala的实际开发完全是新手,因此打算从play framework入手,学习一下实际开发中scala的使用,同时也了解一下play与spring mvc,struts这些传统的mvc框架有什么 ...

  7. 实时操作系统-NuttX学习笔记(1)-开发环境搭建

    1 简介 1.1 背景 学习NuttX视频教程,该视频教程语言为英文,为了在以后的工作学习中用到,在此记录学习内容,方便自己和大家查阅. 1.2 开发环境 虚拟机+系统:虚拟机VMware® Work ...

  8. Java学习笔记——Java6开发WebService进阶

    在上文中,使用Java6做了一个最简单的WebService服务的实现,并通过Java6API发布了该服务. 在本文中,将看到如何使用Java6来做一个WebService服务,并如何使用Java6提 ...

  9. (Object-C)学习笔记(一)--开发环境配置和与c语言的区别

    博主是大三快要实习的学生,作为软件技术专业的我认真的考虑了一下出路,认为去干起点低低java不如花点钱选择iOS.正好我也对iOS很感兴趣,虽然我赶不上08年之后的那一段互联网热潮,但是这一段时间互联 ...

最新文章

  1. Linux内存技术分析(上)
  2. 六、线程的实现方式---多线程模型
  3. numpy中计算矩阵数值的核心函数
  4. 201771010106东文财《面向对象程序设计(java)》实验12
  5. CodeForces 157C Message
  6. SpringMVC下的基本配置
  7. 【opencv】11.旋转、翻转图片
  8. Java平台无关性——跨平台
  9. 知乎高赞:本科生如何才能进入腾讯、阿里等一流互联网大厂?
  10. Hibernate中的inverse属性和cascade属性
  11. 帆软报表(finereport)JS实现cpt中详细单元格刷新
  12. 单词搭配用法查询网站
  13. Floyd算法及其应用
  14. 转:Linux设备驱动开发(1):内核基础概念
  15. Scala和Java二种方式实战Spark Streaming开发
  16. vb连接mysql出现的问题_连接数据库问题用户定义类型未定义【vb6】
  17. 如何在JSP里添加删除cookie
  18. Docker Swarm 入门一篇文章就够了【转】
  19. android 输入法更换_详解安卓手机输入法和键盘切换方式的教程
  20. JavaScript Promise迷你书(中文版)

热门文章

  1. 训练MNIST数据集模型
  2. Spring Security(一):整合JWT
  3. 「镁客·请讲」全盛科技吕盛:将侦测、跟踪、识别、管控融于一体,做低空安全守卫者...
  4. Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
  5. 你真的会玩SQL吗?EXISTS和IN之间的区别
  6. 45种Javascript技巧大全
  7. Windows Server 2012R2 WDS部署Windows 7
  8. django用户认证系统——注册3
  9. 第六十六篇、OC_Sqlite数据库操作
  10. JavaScript变量——栈内存or堆内存