Java的历史与特点
Java的历史
Sun Microsystems于1995年推出的面向对象的程序设计语言,共同创始人的詹姆斯·高斯林 (James Gosling)被誉为“Java之父”。
- 1996年发布JDK 1.0
- 1998年发布JDK 1.2
- 平台名称:J2SE(Stadard Edition)、J2EE(Enterprise Edition)、J2ME(Micro Edition)
- 2004年发布JDK 1.5 版本更名:Java 5.0
- 平台名称:Java SE、Java EE、Java ME
- 2006年发布Java 6.0
- 2009年被Oracle收购
- 2011年由Oracle发布Java 7.0
- 2014年由Oracle发布Java 8.0
- 2017年由Oracle发布Java 9.0
- 2019年由Oracle发布Java 14.0
Java的语言特点
- 面向对象(贴近人类思维模式,模拟现实世界,解决现实问题)。
- 简单性(自动内存管理机制、不易造成内存溢出;简化流程处理、语义清晰)。
- 跨平台(操作系统、服务器等)。
Java的运行机制
计算机的执行机制
编译执行
- 将源文件编译成平台相关的机器码文件,一次编译,多次执行。
- 执行效率高,不可跨平台。
解释执行
- 将源文件交给不同的平台独有的解释器。
- 执行效率低,可以跨平台
Java的执行机制
先编译、再解释、后执行:
- 将源文件编译成字节码文件(平台中立文件.class),再将字节码文件进行解释执行。
- Java的设计理念:Write Once Run Anywhere。
java跨平台性的原理
- 跨平台,是指java语言编写的程序,一次编译后,可以在多个系统平台上运行。
实现跨平台
- Java程序是通过java虚拟机在系统平台上运行的,只要该系统可以安装相应的java虚拟机,该系统就可以运行java程序。(不是能在所有的平台上运行,关键是该平台是否能安装相应的虚拟机)
Java跨平台原理
- 由源文件(.java)—>字节码文件(.class)(二进制文件)-----> 解释---->Unix,Win,Linux等机器。
- 而这一系列的步骤就是通过JVM (JAVA虚拟机) 来进行实现的。
- 就是当你需要执行某个Java程序时,会牵扯到JVM。具体就是我们编写的Java源码,编译后会生成一种.class文件,称为字节码文件。而Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码,然后运行。
JVM、JRE、JDK名词解释
JVM
JVM(Java Virtual Machine)虚拟机:使用软件在不同操作系统中,模拟相同的环境。
- Java虚拟机本质是就是一个程序,当它在命令行上启动的时候,就开始执行保存在某字节码文件中的指令。
JRE
JRE(Java Runtime Environment)运行环境:包含JVM和解释器,完整的Java运行环境。
- JRE包括Java虚拟机(JVM java Virtual Machine)和Java程序所需的核心类库等。
- 如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
- JRE=JVM+核心类库。
- JRE是只能运行class而没有编译功能。
JDK
JDK(Java Development Kit)开发环境:包含JRE + 类库 + 开发工具包(编译器+调试工具)。
- JDK是提供给Java开发人员使用的,其中包含了Java的开发工具,也包括了JRE。
- 安装了JDK,就不需要再安装JRE了。
- Java的开发工具:编译器(javac)、打包工具(jar)等。
- JDK=JRE+JAVA的开发工具。
- JDK=JVM+核心类库+Java开发工具(javac、jar...)。
- 总的来说JDK是用于Java程序开发。
JVM,JRE,JDK三者的作用
- JDK:主要用于编译
- JRE:主要作用看运行效果
- JVM:主要作用跨平台,负责Java程序调用
配置环境变量
“我的电脑”(“此电脑”) -> 右键点击“属性” -> “高级系统设置”。
第一个Java应用程序
创建源文件
创建一个以 .java 结尾的源文件
编写第一个程序
在记事本中编辑
public class HelloWorld{
public static void main(String[] args){
System.out.print("Hello JAVA!!!");
}
}
编译与运行
编译:在控制台中输入
javac 文件名.java
运行:在控制台中输入
java 文件名
注意事项
- 大小写要区分
- 文件名与class名(类名)需要一致
类的相关问题
- 同一个源文件中可以定义多个类。
- 编译后,每个类都会生成独立的 .class文件。
- 一个类中,只能有一个主方法,每个类都可以有自己的主方法。
- public修饰的类称为公开类,要求类名必须与文件名称完全相同,包括大小写。
- 一个源文件中,只能有一个公开类。
public class HelloWorld{
public static void main(String[] args){
System.out.print("Hello Java!!!");
}
}
class GoodByeWorld{
public static void main(String[] args){
System.out.print("GoodBye Java!!!");
}
}
Java的语言规范
书写规范
- 层级之间必须缩进(Tab:一个制表位)。
- 一行只写一句代码。
代码注释
- 文档注释生成外部文档:javadoc -d . HelloWorld.java
- 注释不参与编译。
标识符命名
语法规定
- 可以由字母、数字、_、$ 组成,但不能以数字开头。
- 不能与关键字、保留字重名。
约定俗成
- 望文生义、见名知义。
- 类名由一个或多个单词组成,每个单词首字母大写(pascal)。(大驼峰命名法)
- 函数名、变量名由一个或多个单词组成,首单词首字母小写,拼接词首字母大写(camel)。(小驼峰命名法)
- 包名全小写,只可以使用特殊字符“.”,并且不以“.”开头或结尾。
- 常量全大写,多个单词用 _ 连接。