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
  1. JVM是Java虚拟机,程序都是运行在虚拟机上
  2. JRE是Java运行环境,包含了一些核心类库。
  3. JDK是开发JAVA程序的工具包,包含了许多开发人员工具。

JDK的安装与配置

  1. 下载JDK
    1. OracleJDK下载官网:
    2. 进入网址后选择适当的JDK版本,然后选择对应平台,下载即可.
  2. 安装JDK
    1. 打开下载好的安装文件
    2. 选择安装目录
    3. 完成安装
  3. 配置环境变量
    1. 配置JAVA_HOME环境变量
      1. 打开此电脑属性
      2. 选择系统特性对话框
      3. 点击高级属性设置
      4. 添加环境变量JAVA_HOME
      5. 环境变量值为 JDK所安装的目录
    2. 配置PATH环境变量
      1. 由于之前已经设置了JAVA_HOME那么这里可以直接拿来用
      2. %JAVA_HOME%\bin添加到PATH环境变量中
    3. 配置classpath环境变量
      1. 新建环境变量classpath
      2. 值填写%JAVA_HOME%\jre\bin\rt.jar:.;
  4. 测试安装
    1. 打开CMD
    2. 输入java --version
    3. 输入javac

1.4 JAVA程序开发步骤

开发一个Java程序需要三个步骤

  • 编写
  • 编译
  • 运行

1. 编写源文件

使用文本编辑器,编写Java源文件,结尾是 .java

2. 编译源文件

使用 javac命令进行程序编译,得到编译后的 字节码文件

javac = java compile

4. 运行程序

使用 java命令解释字节码文件,来运行Java程序.

1.5 我的第一个Java程序

HelloWorld.java

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. System.out.println("Hello,World!");
  4. }
  5. }

解释说明

  • public 访问权限修饰符
  • class 类关键字
  • HelloWorld 类名,和文件名HelloWorld.java一致

  • static表示静态,这里用来表示静态方法
  • void 返回值类型
  • main 主方法名
  • (String[] args) 参数

  • System.out.println 打印输出到屏幕上,并换行

编译上述程序

  1. javac HelloWorld.java

这里 javac命令是用来编译java源程序的,编译完成后会生成 HelloWorld.class字节码文件

运行上述程序

  1. java HelloWorld

需要注意的是这里的 HelloWorld不需要加 .java

运行结果

  1. Hello,World!

编码细节

  • 每行Java语句后面要跟一个; 英文状态下的
  • 应保持良好的缩进习惯
  • {在上一行的尾部,}另起一行

1.6 JAVA反编译

所谓反编译就是:吧编译得到的字节码文件还原成源码文件。

JDK提供了个 javap工具可以用来反编译java字节码文件。

使用方法:javap 全限定类名

这里我们来对 java.util.Date类进行反编译

  1. javap java.util.Date
  2. Compiled from "Date.java"
  3. public class java.util.Date implements java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<java.util.Date> {
  4. public java.util.Date();
  5. public java.util.Date(long);
  6. public java.util.Date(int, int, int);
  7. public java.util.Date(int, int, int, int, int);
  8. public java.util.Date(int, int, int, int, int, int);
  9. public java.util.Date(java.lang.String);
  10. public java.lang.Object clone();
  11. public static long UTC(int, int, int, int, int, int);
  12. public static long parse(java.lang.String);
  13. public int getYear();
  14. public void setYear(int);
  15. public int getMonth();
  16. public void setMonth(int);
  17. public int getDate();
  18. public void setDate(int);
  19. public int getDay();
  20. public int getHours();
  21. public void setHours(int);
  22. public int getMinutes();
  23. public void setMinutes(int);
  24. public int getSeconds();
  25. public void setSeconds(int);
  26. public long getTime();
  27. public void setTime(long);
  28. public boolean before(java.util.Date);
  29. public boolean after(java.util.Date);
  30. public boolean equals(java.lang.Object);
  31. static final long getMillisOf(java.util.Date);
  32. public int compareTo(java.util.Date);
  33. public int hashCode();
  34. public java.lang.String toString();
  35. public java.lang.String toLocaleString();
  36. public java.lang.String toGMTString();
  37. public int getTimezoneOffset();
  38. public static java.util.Date from(java.time.Instant);
  39. public java.time.Instant toInstant();
  40. public int compareTo(java.lang.Object);
  41. static {};
  42. }

1.7 编程风格

Java开发者中,普遍采用 Kernighan风格,即 左大括号在上一行行位,右大括号独占一行。

示例代码

  1. public class HelloWorld {
  2. public static void main(String[] args) {
  3. System.out.println("Hello,World!");
  4. }
  5. }

而不是

  1. public class HelloWorld
  2. {
  3. public static void main(String[] args)
  4. {
  5. System.out.println("Hello,World!");
  6. }
  7. }

1.8 注释

Java注释分为两种

  • 行注释
  • 块注释
  1. // 这是行注释
  2. /*
  3. 这是块注释,
  4. 可以有很多行.
  5. */

1.9 小结

  • Java是面向对象的语言,编写的软件和平台无关。
  • Java源文件是由若干个书写形式独立的类组成
  • 开发一个Java程序需要经过三个步骤
    • 编写源文件
    • 编译源文件
    • 运行字节码文件
  • 编写代码要遵循一定的代码规范