1. Java 简介

Java由Sun Microsystems公司于1995年5月推出,是一种面向对象的编程语言。在2009年4月20号,ORACLE (甲骨文)收购了 Sun 公司,也就是说 Java 这门语言现在归属于 ORACLE 这家公司门下。

在 Java 这门语言体系当中,最基础的部分就是 Java SE 部分,Java 的标准版本。它包括Java最基础的一些结构,包括面向对象的一些特性等等,同时它也是 Java 技术基础和核心。在 Java SE 的基础之上,又分为了 Java EE(Java 的企业版),应用于大型企业级应用的开发。Java ME 主要用于嵌入式开发。初学的时候我们都是从 Java SE 开始的。

JVM 是 Java 虚拟机,它也是整个 Java 技术的核心。Java 语言的跨平台就多亏了JVM。JDK 是 Java 开发工具包,没有 JDK 就没有办法进行 Java 程序的开发。(JDK 1.6 在线中文手册)JRE 是 Java 运行环境,如果我们需要运行一个Java程序,就得安装 JRE。

Java语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C++中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地,Java语言不使用指针,而是引用。并提供了自动的废料收集,使得程序员不必为内存管理而担忧。

2. Java 开发环境搭建

第一步:安装JDK

  • 从ORACLE官方网站上下载,下载路径
    按照指示安装,打开dos命令行,输入命令 java -version,如果显示了Java的版本,那么表示JDK安装成功。

第二步:配置环境变量

* JAVA_HOME 配置 JDK 安装路径
* PATH 配置 JDK 命令文件的位置
* CLASSPATH 配置类库文件的位置
配置的目的:
1. 设置JAVA_HOME:

一、为了方便引用,比如,你JDK安装在C:\Program Files\Java\jdk1.7.0目录里,则设置 JAVA_HOME 为该目录路径那么以后你要使用这个路径的时候,只需输入 %JAVA_HOME% 即可,避免每次引用都输入很长的路径串;二、归一原则,当你JDK路径被迫改变的时候,你仅需更改JAVA_HOME 的变量值即可,否则,你就要更改任何用绝对路径引用JDK目录的文档,要是万一你没有改全,某个程序找不到JDK,后果是可想而知的----系统崩溃!三、第三方软件会引用约定好的JAVA_HOME 变量,不然,你将不能正常使用该软件,以后用JAVA久了就会知道,要是某个软件不能正常使用,不妨想想是不是这个问题。

2. 设置CLASSPATH:

这是一个很有趣,当然也比较折磨初学者的问题,这个变量设置的目的是为了程序能找到相应的".class"文件,不妨举个例子: 你编译一个JAVA程序---A.java,会得到一个A.class的类文件,你在当前目录下执行java A,将会得到相应的结果(前提是你已经设置CLASSPATH为"."). 现在,你把A.class移到别的目录下(例如:"e:"),执行java A,将会有NoClassDefFindError的异常,原因就是找不到.class文件,现在你把CLASSPATH增加为:".;e:"再在任何目录下运行java A,看看会有什么结果😃~,一切正常,java命令通过CLASSPATH找到了.class文件!

3. 设置PATH:

道理很简单,你想在任何时候都使用%JAVA_HOME%\bin\java 等来执行java命令吗,当然不会,于是,你可以选择把%JAVA_HOME%\bin添加到PATH路径下,这样,我们在任何路径下就可以仅用java来执行命令了。(当你在命令提示符窗口输入你个代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序,并且执行。)

具体步骤:
步骤一:右击计算机,选择**属性**
步骤二:打开**高级系统设置**
步骤三:选择高级
步骤四:选择**环境变量**
步骤五:在**系统变量**里配置**JAVA_HOME**
点击系统变量下的**新建**
**变量名**填JAVA_HOME
**变量值**填JDK的安装路径(若是默认安装路径,打开计算机->C盘->Program Files->Java->jdk1.7.0.13(或者其他版本),拷贝路径就可以了)
点击确定
步骤六:在系统变量里配置**PATH**变量
系统变量默认里有Path变量,找到它,点击编辑
在变量值最前面添加指定jdk命令文件的位置(jdk1.7.0.13->**bin**目录,拷贝路径)
将路径添加到Path变量值前面用**;**和后面的路径隔开
步骤七:配置**CLASSPATH**变量
点击**系统变量**下的**新建**
**变量名**填CLASSPATH
变量值填JDK的安装路径(若是默认安装路径,打开计算机->C盘->Program Files->Java->jdk1.7.0.13(或者其他版本)->**lib**目录,拷贝路径就可以了)
点击确定
第三步:验证环境配置是否正确
点击开始
在搜索中输入 cmd,按回车,打开 dos 命令行
输入命令 java ,按回车
下面会出现一系列的命令行,这些提示是Java工具的用法和作用
再执行一个命令,输入javac,按回车
如果以上均给出提示,则开发环境配置是没有问题的


3. 利用文本文件编辑 Java 程序

  • Java的源代码文件以.java结尾,源代码文件默认是不能被机器执行的
  • javac命令,对源代码文件进行编译的操作,编译成的字节码文件以.class结尾。
  • 字节码文件与平台无关,无论你是windows还是linux,字节码文件都是这样的一个文件,这跟系统没有关系。
  • 实际上Java的跨平台就是因为字节码文件的存在。
  • 针对不同的平台,根据相应的解释器,去解释运行字节码文件。
  • 这里我们使用java命令,java 命令不能跟上文件的后缀名
    照着样例打的经典的helloworld:
public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}
运行结果:

linux的java环境变量修改了不生效 linux中java环境变量配置_Java

实际上并没有这么顺利,一开始编译命令都不能成功,看到后面的详解才知道类名和文件名一定要一样,事实说明是大小写都要区分。编译成功后执行文件码文件,又报错说“找不到或无法加载主类”,查了下发现是环境变量的配置问题,CLASSPATH值的最后没;(分号)。

源文件的命名规则
如果源文件中有多个类,那么只能有一个类是 public 类。如果有一个类是 public 类,那么源文件的名字必须与这个类的名字完全相同,拓展名是.java。如果源文件没有 public 类, 那么源文件的名字和某个类的名字相同,并且拓展名是.java就可以了。

编译
如果 Java 源文件中包含了多个类,那么用编译器 javac 编译完源文件后将生成多个拓展名为.class 文件,每个拓展名是.class 的文件中只存放一个类的字节码,其文件名与该类的名字相同。这些字节码文件将被存放在与源文件相同的目录中。如果你对源文件进行了修改,那么必须重新编译,再生成新的字节码文件。

运行

  • java 命令后的类名必须是包含了 main 方法的那个类的名字,即主类的名字(可能和所在源文件名不同),但是源文件名和 main 方法所在类并没有关系
  • 每个类可以有个一个 main 方法,这是一个常用于对类进行单元测试的技巧。

4. Eclipse 开发 Java 程序

Eclipse是一款开源软件,所以是免费的,官方下载地址

使用Eclipse开发Java程序一共分为四个步骤:

  1. 创建一个Java项目
  2. 创建程序包
  3. 编写Java源程序
  4. 运行Java程序
新建一个 Java Project ,工程里会有许多文件,其中 src 用来放置我们的源代码文件。接下来我们要在 src 目录下创建程序包(Package),指定包名(一般为域名的反向,Sun公司建议将公司的因特网域名以逆序的形式作为包名),创建包是为了方便管理源代码。我们可以将不同的源代码文件放到指定的包下,避免重名。然后我们便在指定的包下面来编写源代码。在包下新建一个 Class 源代码文件,指定类的名称。创建成功之后,我们就可以在源代码文件里输入helloworld的代码啦。注意这里类名和文件名要一模一样。运行的话,右击选择 Run AS ,运行 Java Application 或是点击上方的运行按钮。于是我们便会在下面的窗口中看到Hello World!的输出。

linux的java环境变量修改了不生效 linux中java环境变量配置_Java_02

1-5. HelloWorld 代码详解

public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } }

  1. public是类修饰,表示公有,class是关键字类 ,HelloWorld是类名,这里类名一定要与 Java 文件名一致;
  2. 内部是一个main方法,是一个程序执行入口方法,方法上的public也是修饰,表示公有,static是静态修饰关键字是类的一部分,不是对象的一部分,void是方法返回值,标识返回空,Java 必须用对象去调用方法,所以程序的入口方法是静态的;
  3. main是方法名,特殊方法,表示执行入口,括号里的String[] args 是方法参数,这里是指字符串数组,也就是命令行参数,用来初始化程序(注意:在Java应用程序的main方法中,程序名并没有存储在args数组中,与C++不同,参见计算器第二步);
  4. 方法里System.out.println是一个输出语句,输出括号里的内容。
    而Java程序基本运行原理如下图:

参考资料

  • java环境变量详解
  • 菜鸟教程:java简介
  • 实验楼:Java编程语言(新版)
  • Java核心技术 卷Ⅰ基础知识 原书第8版
  • Java2实用教程 (第三版)_ 耿祥义,张跃平