1.1 JAVA的地位
JAVA面向对象,与平台无关,安全,稳定,多线程。 不仅可以用来开发大型的应用程序,特别适用于
internet
应用开发。
1.2 JAVA的特点
风靡世界的原因
- 语法简单
- 面向对象
- 稳定
- 与平台无关
- 多线程
- 动态
1.3 安装JDK
write once,run anywhere. 是JAVA的目标,必须要提供JAVA运行环境,即JAVA程序运行平台。
什么是JDK?
JDK(Java Development Kit) 包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。
JDK是java开发工具包
什么是JRE?
RE(Java Runtime Environment,Java运行环境),包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)
JRE是指java运行环境。
什么是JVM?
JVM(Java Virtual Machine),即java虚拟机, java运行时的环境,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
三者之间的联系
- JDK
- JRE
- JVM
- JRE
- JVM是Java虚拟机,程序都是运行在虚拟机上
- JRE是Java运行环境,包含了一些核心类库。
- JDK是开发JAVA程序的工具包,包含了许多开发人员工具。
JDK的安装与配置
- 下载JDK
- OracleJDK下载官网:
- 进入网址后选择适当的JDK版本,然后选择对应平台,下载即可.
- 安装JDK
- 打开下载好的安装文件
- 选择安装目录
- 完成安装
- 配置环境变量
- 配置
JAVA_HOME
环境变量- 打开此电脑属性
- 选择系统特性对话框
- 点击高级属性设置
- 添加环境变量
JAVA_HOME
- 环境变量值为 JDK所安装的目录
- 配置
PATH
环境变量- 由于之前已经设置了
JAVA_HOME
那么这里可以直接拿来用 %JAVA_HOME%\bin
添加到PATH
环境变量中
- 由于之前已经设置了
- 配置
classpath
环境变量- 新建环境变量
classpath
- 值填写
%JAVA_HOME%\jre\bin\rt.jar:.;
- 新建环境变量
- 配置
- 测试安装
- 打开CMD
- 输入
java --version
- 输入
javac
1.4 JAVA程序开发步骤
开发一个Java程序需要三个步骤
- 编写
- 编译
- 运行
1. 编写源文件
使用文本编辑器,编写Java源文件,结尾是 .java
2. 编译源文件
使用 javac
命令进行程序编译,得到编译后的 字节码
文件
javac = java compile
4. 运行程序
使用 java
命令解释字节码文件,来运行Java程序.
1.5 我的第一个Java程序
HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello,World!");
}
}
解释说明
public
访问权限修饰符class
类关键字HelloWorld
类名,和文件名HelloWorld.java
一致
static
表示静态,这里用来表示静态方法void
返回值类型main
主方法名(String[] args)
参数
System.out.println
打印输出到屏幕上,并换行
编译上述程序
javac HelloWorld.java
这里 javac命令是用来编译java源程序的,编译完成后会生成
HelloWorld.class
字节码文件
运行上述程序
java HelloWorld
需要注意的是这里的
HelloWorld
不需要加.java
运行结果
Hello,World!
编码细节
- 每行Java语句后面要跟一个
;
英文状态下的 - 应保持良好的缩进习惯
{
在上一行的尾部,}
另起一行
1.6 JAVA反编译
所谓反编译就是:吧编译得到的字节码文件还原成源码文件。
JDK提供了个 javap
工具可以用来反编译java字节码文件。
使用方法:javap 全限定类名
这里我们来对 java.util.Date
类进行反编译
javap java.util.Date
Compiled from "Date.java"
public class java.util.Date implements java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<java.util.Date> {
public java.util.Date();
public java.util.Date(long);
public java.util.Date(int, int, int);
public java.util.Date(int, int, int, int, int);
public java.util.Date(int, int, int, int, int, int);
public java.util.Date(java.lang.String);
public java.lang.Object clone();
public static long UTC(int, int, int, int, int, int);
public static long parse(java.lang.String);
public int getYear();
public void setYear(int);
public int getMonth();
public void setMonth(int);
public int getDate();
public void setDate(int);
public int getDay();
public int getHours();
public void setHours(int);
public int getMinutes();
public void setMinutes(int);
public int getSeconds();
public void setSeconds(int);
public long getTime();
public void setTime(long);
public boolean before(java.util.Date);
public boolean after(java.util.Date);
public boolean equals(java.lang.Object);
static final long getMillisOf(java.util.Date);
public int compareTo(java.util.Date);
public int hashCode();
public java.lang.String toString();
public java.lang.String toLocaleString();
public java.lang.String toGMTString();
public int getTimezoneOffset();
public static java.util.Date from(java.time.Instant);
public java.time.Instant toInstant();
public int compareTo(java.lang.Object);
static {};
}
1.7 编程风格
Java开发者中,普遍采用
Kernighan风格
,即 左大括号在上一行行位,右大括号独占一行。
示例代码
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello,World!");
}
}
而不是
public class HelloWorld
{
public static void main(String[] args)
{
System.out.println("Hello,World!");
}
}
1.8 注释
Java注释分为两种
- 行注释
- 块注释
// 这是行注释
/*
这是块注释,
可以有很多行.
*/
1.9 小结
- Java是面向对象的语言,编写的软件和平台无关。
- Java源文件是由若干个书写形式独立的类组成
- 开发一个Java程序需要经过三个步骤
编写
源文件编译
源文件运行
字节码文件
- 编写代码要遵循一定的代码规范