码迷,mamicode.com
首页 > 编程语言 > 详细

Java程序设计简介

时间:2015-10-29 07:22:43      阅读:304      评论:0      收藏:0      [点我收藏+]

标签:

 这篇教程介绍了Java编程语言的安装和使用,并且包含一些编程实例。

Java简介

历史


Java编程语言由Sun微电子公司的James Gosling于1991年创建。1995年发布第一个版本(Java 1.0)。2010年 Sun 微电子公司被 Oracle 公司收购,现在 Java 语言由 Oracle公司控制和管理。2006年Sun宣布Java遵循GNU General Public License (GPL), Oracle继续该项目,即OpenJDK。随着时间的推移,新的增强版本的 Java 已经发布,最新的版本是 Java 1.8 即 Java 8。

Java由规范确定,包含编程语言、编译器、核心库和JVM (运行时Java virtual machine)。Java运行时允许软件开发者用其他语言编码,仍然运行在Java虚拟机上。 Java平台通常与Java虚拟机和Java核心库相关联。

 

Java 虚拟机


Java 虚拟机(JVM)可以理解为是由软件实现的虚拟计算机,可以像物理计算机一样执行程序代码。Java 虚拟机在不同操作系统下有特定的版本,比如:针对 Linux 操作系统的版本与针对 Windows 操作系统的版本是不一样的。

Java程序由 Java 编译器编译成字节码(bytecode),编译后的字节码由 Java 虚拟机解释执行。技术分享

 JRE 和 JDK


Java 的发布版本有两种,Java Runtime Environment(JRE)以及 Java Development Kit(JDK)。

Java Runtime Environment(JRE)包含运行 Java 程序需要的必要组件:Java 虚拟机以及 Java 类库。

Java Development Kit(JDK)包含用来创建 Java 应用程序的必要工具,比如,Java 编译器、Java 虚拟机以及 Java 类库。

Java 语言的特点

Java 语言的设计目标是:一次编写到处运行。

Java 语言有以下特点:

  • 平台无关性:Java 使用 Java 虚拟机运行 Java 程序,Java 虚拟机相当于应用程序和操作系统间的抽象层,应用程序不会直接访问操作系统。这使得 Java 应用程序具备高度的可移植性。一个兼容标准和遵循规则的 Java 应用程序可以无需修改的在所有已支持的平台上工作,例如: Windows 和 Linux。
  • 面向对象的编程语言:除了原生数据类型,Java 语言中一切皆对象。
  • 强类型编程语言:Java 语言是强类型编程语言。比如:变量类型需要预先定义,严格的类型转换检查(大多数情况下有程序猿完成)。
  • 解释性和编译型语言: Java 源代码被编译成字节码(bytecode)这样使得 Java 语言具备平台独立性。这些字节码(bytecode)指令由 Java虚拟机(JVM)解释执行。JVM 使用 Hotspot 编译技术会将性能相关的字节码指令转换为对用操作系统的二进制代码执行。
  • 自动内存管理: Java 。管理新创建对象的内存分配和回收工作应用程序代码不直接访问内存。由称之为垃圾回收(garbage collector)的机制自动删除没有无引用的对象。

Java 语言的语法与 C++ 语言的语法非常接近,Java 语言是大小写敏感的,比如: myValue 变量与 myvalue 变量是两个不同的变量。

Java语言的开发过程


Java 源代码文件是一个纯文本文档,Java 程序员通常在 Integrated Development Evvironment(IDE)中编写 Java 程序。IDE是帮助程序员完成编码工作的工具,它具备自动格式化代码、语法高亮等功能。

Java 程序员(或 IDE)调用 Java 编译工具(javac)编译源代码,Java 编译工具会将源代码编译成字节码(bytecode)指令。这些指令保存在 .class 文件中由 Java 虚拟机(JVM)来运行。


垃圾回收(Garbage collector)


JVM 自动回收没有被引用的内存空间,它会检查所有对象的引用并查找那些对象可以被自动回收。垃圾回收机制使程序员无需手工管理内存,但是程序员还是需要保证程 序中没有不需要的对象引用,否则垃圾回收机制就无法自动释放对象内存。我们通常把不需要的对象引用通常被称为“内存泄漏”。

Classpath


Java 编译器以及 Java 运行时通过类路径(classpath)来查找和装载 .class文件。比如,如果你打算在应用程序中使用第三方 Java 类库那么你需要把类库的路径添加到你的类路径中,否则你的应用程序无法编译或者运行。

 

安装 Java

 

检查安装

你的计算机可能已经安装了 Java,你可以在控制台中使用下面命令来测试 Java 是否已安装(如果你使用 Windows 操作系统,可以按下 Win+R,输入 cmd 后回车即可打开控制台):

java -version
 

如果你的计算机已经安装了 Java,你应该会看到输出已安装的 Java 版本信息。如果命令行返回应用程序没有找到,那么你就需要安装 Java 了。

安装 Java

在 Ubuntu 操作系统中,你可以使用下面的命令安装 Java:

sudo apt-get install openjdk-7-jdk
 

对于 Microsoft Windows 操作系统,可以到 Oracle 官网下载对应的安装包,官网也有相应的文档来指导你如何在其他操作系统上安装 Java。

如果在安装过程中出现了问题,可以使用“how to install JDK on your_os"关键词在谷歌搜索(对于国内用户则使用”如何在your_os安装JDK“关键词在百度搜索)记住把 "your_os" 替换为你的操作系统名称哦,比如:Windows、Ubuntu、Mac OS X 等等。

2.3 验证安装

回到刚才的命令行(不知道那个?参考2.3节)执行下面的命令:

java -version

 

 

你会得到下面的输出内容:


java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)
 

2.4 如何查看当前使用的是32位或64位版本的 Java

在64位操作系统上你可以使用32位或64位版本的Java,如果 java -version 命令的输出中包含 64-bit 这样的字符串说明你正在使用的 Java 版本是64位的,否则你正在使用的 Java 版本是32位的。下面的是64位版本的输出:

java version "1.7.0_25"
OpenJDK Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2)
OpenJDK 64-Bit Server VM (build 23.7-b01, mixed mode)

 




编写源代码

下面的 Java 代码是在 Linux 操作系统命令行上使用文本编辑器(vim、emacs等)编写的。其他操作系统上也类似,这里就不再做介绍了。

首先需要新建一个目录来保存源代码,这里我们使用目录 \home\vogella\javastarter。如果你使用 Windows 目录可能是 c:\temp\javastarter,后面我们会使用 "javadir" 来代表这个路径。

打开一个文本编辑器,不如:Linux操作系统下的 gedit、vim、emacs等,Windows下的 Notepad等,然后输入以下代码:

HelloWorld.java:

 

// a small Java program 
public class HelloWorld {
  public static void main(String[] args) {
    System.out.println("Hello World");
  }
}

注意:不要使用富文本编辑器,如:Microsoft Word 或者 LibreOffice 来编写源代码。

 

将源代码保存到 “javadir” 目录下的 HelloWorld.java 文件中。Java 源文件名称始终要与源代码中得类名一致,并且以 .java 作为后缀。这个例子中源文件名为 HelloWorld.java 因为我们定义的类名是 HelloWorld

编译、运行

打开一个Shell(Linux以及Unix-like)或者命令行(Windows),使用 cd javadir 进入 "javadir" 目录,在我们的例子中命令是 cd \home\vogella\javastarter。使用 ls (Window中是 dir)来验证源文件是否存在。

使用下面命令编译源文件:

javac HelloWorld.java
 

命令完成后,重新使用 ls(或者 dir)命令查看目录内容,可以看到目录中多出一个 HelloWorld.class 文件,说明你已经成功的将源代码编译成字节码了。

提示:默认情况下编译器会将每个类文件放在和源文件下共同的目录中。你可以在编译时使用 -d 参数来指定不同的目录。

现在可以运行你的第一个 Java 应用程序了。确保你还在 "javadir" 目录,然后执行下面命令来运行程序:

java HelloWorld

 

 

程序会在终端输出 "Hello World" 字符串,参考下图

技术分享

 

使用类路径(classpath)

你可以通过指定类路径从其他位置运行应用程序。还是打开Shell或者控制台,然后随便进入一个目录,输入以下命令:

java HelloWorld
 

如果你当前不在编译后类文件所在的目录,那么 Java 虚拟机会提示错误:"Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld"。

要正确运行程序,输入下面的命令(将mydirectory替换为你的”javadir"):

java -classpath "mydirectory" HelloWorld
 

这样你又可以看到 "HelloWorld" 字符串输出了。

 

Java 语言结构

基础:包(Package)、类(Class)和对象(Object)

了解 Java 的包(Package)、类(Class)和对象(Object)这些基础术语是非常重要的,这部分内容将概要的介绍这些术语。

包(Package)

Java 使用包来组织类,通常按照业务逻辑将类分组到不同的包中。比如:应用程序的所有图形界面可能被分组到 com.vogella.webapplication.views 包中。

通常的做法是使用公司域名的倒序作为顶层包,比如:公司的域名是 "4byte.cn" 那么这个公司 Java 应用的顶层包名可能是 cn.4byte

包的另一个重要用途是避免类命名冲突,类命名冲突是指两个开发人员为他们编写的类使用了同样的全限定名。Java 中类的全限定名是 报名+‘.‘+类名,比如:cn.4byte.HelloWorld

如果没有包,当两个程序猿同时给他编写的类起名为 Test 时就会产生命名冲突(而且操作系统也无法创建文件)。结合 Java 包机制,我们可以明确的告诉虚拟机我们将使用哪个 Test 类,比如:第一个程序员将 Test 类放到 report 包中,另一个程序员将他写得 Test 类放到 xmlreader 包中,那么他们就可以通过全限定名来明确区分两个类 report.Test 以及 xmlreader.Test

类(class)

定义:类是一个模板,用来定义对象的数据以及行为,可以理解类为对象的蓝图。

在 Java 中使用 class 关键字来定义类,类名的第一个字母必须大写。类体需要在‘{..}‘中定义。如:

MyClass.java:

package test;

class MyClass {

}

类的数据保存在属性中,类行为由方法实现。Java 源文件需要以 "类名“ + ".java" 的形式保存。

对象(Object)

定义:对象是类的一个实例。 对象是真实的元素具有数据和可执行的操作。每一个对象都是依据类的定义进行创建的。

继承

一个类可以从另一个类派生,我们称之为子类。另一个常用的说法是:一个类扩展另一个类。被派生(或继承或被扩展)的类我们称之为"父类"。

继承允许子类继承父类的方法和行为(这里还没有提到访问限定问题,会在后面介绍),下面的代码演示了如何继承一个类,Java 是单继承体系(与C++不同)一个类只能有一个父类。

MyBaseClass.java:

package com.vogella.javaintro.base;

class MyBaseClass {
  @Override
  public void hello() {
    System.out.println("Hello from MyBaseClass");
  }
}

class MyExtensionClass extends MyBaseClass {
}

 

Object是所有类的父类

Java 中所有的类都隐式继承 Object 类。Object 类为每一个 Java 对象定义了下面的一些方法:

  • equals(other) 检查当前对象是否等于other对象

  • getClass() 返回对象的类(Class对象)

  • hashCode() 返回对象的唯一标示符

  • toString() 返回当前对象的字符串描述

 

英文地址:http://www.vogella.com/tutorials/JavaIntroduction/article.html

中文地址

 

Java程序设计简介

标签:

原文地址:http://www.cnblogs.com/pythontesting/p/4918853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!