文章目录
1. Java开发环境搭建
1.1 什么是JDK、JRE
- JDK (
J
avaD
evelopmentK
it):是Java程序开发工具包,包含JRE
和开发人员使用的工具。 - JRE (
J
avaR
untimeE
nvironment) :是Java程序的运行时环境,包含JVM
和运行时所需要的核心类库
。
小结:
JDK = JRE + 开发工具集(例如Javac编译工具等)
JRE = JVM + Java SE标准类库
1.2 JDK的下载与安装
2.开发步骤
Java程序开发三步骤:编写、编译、运行。
- 将 Java 代码编写到扩展名为 .java 的源文件中
- 通过 javac.exe 命令对该 java 文件进行编译,生成一个或多个字节码文件
- 通过 java.exe 命令对生成的 class 文件进行运行
2.1 编写
(1)在D:\JavaSE\test
目录下新建文本文件,完整的文件名修改为HelloWorld.java
,其中文件名为HelloWorld
,后缀名必须为.java
。
(2)用记事本或editplus等文本编辑器打开
(3)在文件中输入如下代码,并且保存:
class HelloChina {
public static void main(String[] args) {
System.out.println("HelloWorld!!");
}
}
-
友情提示1:每个字母和符号必须与示例代码一模一样,包括大小写在内。
-
友情提示2:
第一个HelloWord
源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我们必须将编写好的Java源文件
编译成JVM可以看懂的字节码文件
,也就是.class
文件。
2.2 编译
在DOS命令行中,进入D:\JavaSE\test
目录,使用javac
命令进行编译。
使用文件资源管理器打开D:\JavaSE\test
目录,然后在地址栏输入cmd。
命令:
javac Java源文件名.后缀名java
举例:
javac HelloWorld.java
编译成功后,命令行没有任何提示。打开D:\JavaSE\test
目录,发现产生了一个新的文件 HelloChina.class
,该文件就是编译后的文件,是Java的可运行文件,称为字节码文件,有了字节码文件,就可以运行程序了。
2.3 运行
在DOS命令行中,在字节码文件目录下,使用java
命令进行运行。
命令:
java 主类名字
主类是指包含main方法的类,main方法是Java程序的入口:
public static void main(String[] args){
}
举例:
java HelloChina
错误演示:
java HelloChina.class
3.Java开发工具
-
级别一:文本开发工具
-
级别二:集成开发环境(Integrated Development Environment,IDE)
把代码编写,编译,执行,调试等多种功能综合到一起的开发工具。
4.注释(comment)
什么是注释?
-
源文件中用于解释、说明程序的文字就是注释。
-
Java中的注释类型:
-
单行注释
//注释文字
-
多行注释
/* 注释文字1 注释文字2 注释文字3 */
-
文档注释 (Java特有)
/** @author 指定java程序的作者 @version 指定源文件的版本 */
-
-
注释的作用
- 它提升了程序的可阅读性。
- 调试程序的重要方法。
-
注意
-
对于单行和多行注释,被注释的文字,不会不会出现在字节码文件中,进而不会被JVM(java虚拟机)解释执行。
-
多行注释里面不允许有多行注释嵌套。
-
4.Java API文档
- API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。
- Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的说明文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。
- Java API文档,即为JDK使用说明书、帮助文档。
- 下载API文档:
5.Java语言的优缺点
5.1 优点
- 跨平台性:这是Java的核心优势。Java在最初设计时就很注重移植和跨平台性。比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。
- 通过Java语言编写的应用程序在不同的系统平台上都可以运行。“
Write once , Run Anywhere
”。 - 原理:只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (
J
VM ,JavaV
irtualM
achine) 即可。由JVM来负责Java程序在该系统中的运行。
-
面向对象性:
面向对象是一种程序设计技术,非常
适合大型软件的设计和开发
。面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚
,低耦合
的标准。 -
健壮性:吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。
-
安全性高:
Java适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。如:
安全防范机制
(ClassLoader类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。 -
简单性:
Java就是C++语法的
简化版
,我们也可以将Java称之为“C++--
”。比如:头文件,指针运算,结构,联合,操作符重载,虚基类等。 -
高性能:
- Java最初发展阶段,总是被人诟病“
性能低
”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率
。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。
- Java最初发展阶段,总是被人诟病“
5.2 缺点
语法过于复杂、严谨
,对程序员的约束比较多,与python、php等相比入门较难。- 一般适用于大型网站开发,
整个架构会比较重
,对于初创公司开发和维护人员的成本比较高,选择用Java语言开发网站或应用系统的需要一定的经济实力。 并非适用于所有领域
。比如,Objective C、Swift在iOS设备上就有着无可取代的地位。浏览器中的处理几乎完全由JavaScript掌控。Windows程序通常都用C++或C#编写。Java在服务器端编程和跨平台客户端应用领域则很有优势。
6.Java核心机制:JVM
JVM(J
ava V
irtual M
achine ,Java虚拟机):是一个虚拟的计算机,是Java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。
6.1 功能1:实现Java程序的跨平台性
编写的Java代码,都运行在JVM 之上。正是因为有了JVM,才使得Java程序具备了跨平台性。
6.2 功能1:自动内存管理(内存分配、内存回收)
- Java程序在运行过程中,涉及到运算的
数据的分配
、存储
等都由JVM来完成 - Java消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。
- GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上
减少了
因为没有释放空间而导致的内存泄漏
。
Java程序还会出现内存溢出和内存泄漏问题