Java语言是由Sun公司于1995年5月23日正式推出的面向对象的程序设计语言,集安全性、简单性、易用性和平台无关性于一身,适合网络环境下跨平台编程使用。
其最大的优势是跨平台运行,源代码被编译成.class文件后,把.class放到不同的平台上直接运行,代码的可移植性非常好。
Java语言特征
- 简单:Java源于C++,但做了很多的简化。例如,取消了多重继承、指针、自动垃圾回收。
- 面向对象:纯粹的面对对象程序设计语言,没有面向过程语言的全局变量、全局函数等。
- 分布式:Java程序可以在多台计算机上协同计算,可以基于Java RMI,Java RPC编写分布式应用程序
- 解释性:Java的源程序被编译成字节码,在Java虚拟机上解释运行,因此效率不如C++。
- 健壮性: Java取消了指针,对数组下标越界进行检查,垃圾自动回收,具有运行时的异常处理功能。
- 安全性:从网络上下载的Applet程序,在Java的安全机制保护下,不会破坏本地系统。
- 与体系结构无关: 所谓 Write once, run anywhere。
- 可移植性好:Write once, run anywhere。
- 高性能:基于Java的分布式计算环境能够应付高并发的服务请求
- 多线程: Java在语言级别(例如synchronized关键字)支持多线程编程,不需要额外的线程库。
Java语言规范
Java语言规范(Java Language Specification, JLS)
Java语言的语法和语义技术性定义,对语言的语法、语义最权威的解释。
应用程序接口(Application Program Interface, API)
Java预定义类和接口。
Java开发工具包(Java Development Kit, JDK)
包含软件库、基于命令行的编译器、解释器以及其它工具,如javac(编译Java程序)、java(运行Java程序)、jdb(调试Java程序)
集成开发环境(Integrated Development Environment, IDE)
在一个图形界面中,完成工程管理、源代码编辑、编译、调试和在线帮助等功能。
Java平台版本
Java SE(Java Flatform, Standard Edition):以前称 J2SE,主要用于开发和部署在桌面使用的 Java 应用程序。
Java EE(Java Flatform, Enterprise Edition):以前称 J2EE,帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 的基础上构建的,它提供 Web 服务、组件模型、管理和通信 API。
Java ME(Java Flatform, Micro Edition):以前称 J2ME。它为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
一个简单的Java程序
又到了HelloWorld时间
public class Main{
public static void main (String [] args) {
System.out.println("Hello World");
}
}
Java运行环境
Java的目标代码可以在任何平台上运行。
Java的源代码编译之后生成.class文件,由字节码(bytecode)构成,字节码可以在任何装有Java虚拟机(Java Virtual Machine)的计算机上运行,Java虚拟机是一个用于解释字节码的软件,有一套虚拟的CPU指令集及汇编指令,class文件包含了JVM的CPU指令集。
安装JDK、创建、编译和执行Java程序
- 下载机器OS对应的JDK(官网: www.oracle.com) Java Downloads | Oracle,除了下载JDK,建议下载该JDK对应的API帮助文档。
- 安装JDK,记住安装目录,可以在机器上安装多个版本的JDK,不同版本的JDK安装在不同的目录下,通过环境变量JAVA_HOME可以切换不同JDK版本。
- 安装好JDK后,需要配置环境变量(以Windows为例,其它OS类似):首先配置环境变量JAVA_HOME,指向JDK的安装目录,将%JAVA_HOME%/bin路径加到环境变量PATH里,这样在命令行窗口里可以在任何位置调用JDK里面的命令行工具,如javac 、java等。在通过命令行运行Java程序时,还需要配置环境变量CLASSPATH, CLASSPATH的作用是让JVM能够找到要运行的Java类。在设置CLASSPATH时,可以指定class文件所属包的顶级目录;如果多个class文件被打包到.jar文件,则一定要指定到jar文件(而不是jar文件所在的目录)。
可以直接在命令行运行的一个脚本(如run.bat文件)如下示例:
set JAVA_HOME=D:\jdk1.8.0_231_64bit
set PROJECT_HOME=D:\IdeaWorkspace\JavaDemo
set path=%path%;%JAVA_HOME%\bin
set classpath=%classpath%;%PROJECT_HOME%\bin\production\JavaDemo
java -classpath %classpath% hust.cs.javacourse.ch1.HelloWorld
总结一下步骤:
- 1. 创建和编辑源代码,可以使用任何文本编译器创建和编辑源代码。:文件名必须与公共的类名一致,文件后缀为.java,如果有多个类,且没有public类,文件名可与任一类名相同,一个JAVA源文件最多只能有一个public类,如果一个Java源文件包含多个class,那么编译后会产生多个.class文件
- 2. 安装好JDK,配置好环境变量
- 3. 编译:在控制台中执行:javac 源文件名(要保证OS能找到该文件),生成.class字节码文件
- 4. 执行:在控制台中执行: java 启动类完全限定类名(要保证JVM能找到这个类),启动类必须有public static void main(String[] args)函数
Java注释
Java程序包含三种注释
多行注释:用于某行的一部分、单行或多行注释
/* 注释内容
注释内容
*/
单行注释:用于单行或不到一行的注释
// 注释内容
/** 注释内容
注释内容
*/
- 类,特别是public 类
- 类的方法,特别是类的公有方法(静态方法,实例方法)
- 类的数据成员,特别是公有数据成员(静态成员、实例成员)
Java保留字
保留字或关键字(keyword)是对编译器有具体意义,不能在程序中用于其它目的的单词,程序员定义的标识符不能是保留字。
Java修饰符
Java语句
语句(statement)代表一个动作或一系列动作。Java中的每个语句都以分号(;)结尾。
注意区分表达式(expression)和语句的区别i = 1 是赋值表达式i = 1; 是语句
Java块
Java类、对象和方法
类(class)是Java的基本结构,类是对象的模板或蓝图。一个程序可以包含一个或多个类。一个JAVA源文件里最多只有一个公有类。
方法必须通过对象或类调用,System.out是标准输出流对象,println是该对象的一个方法,该方法向标准输出流(显示屏)显示字符。括号中的字符串是方法的参数。
main方法及init方法Java解释器通过调用main 方法执行应用程序。 main 方法是 Java 应用程序( Java Application )的入口。 Java 有二种类型的程序:Application:由操作系统通过启动类的main 方法启动。可以启动任意一个类,被启动的类必须有公有的静态的 main 方法Applet:只能嵌在网页里,在浏览器里运行。没有main 方法,入口为 init ( ) 。