Java开发环境搭建(JDK安装、JAVA执行原理)

目录

 

一、思维导图

二、 JAVA语言特性

(1)简单性:相对于C++来说(指针)

(2)面向对象:

(3)健壮性:自动垃圾回收机制(GC)机制

(4)可移植性/跨平台:

问题1:JAVA怎么实现跨平台的?

问题2:JVM是怎么来的?

问题3:JVM这种机制实现了跨平台,那么这种机制优点和缺点分别是什么?

问题4:Java语言可以编写病毒吗?

 (5)多线程

三、JDK、JRE、JVM三者之间的关系

问题1:

如果一个软件公司开发一个新的软件,现在去客户那边给客户部署,把项目跑起来,需要安装JDK吗?

问题2:

为什么安装JDK的时候会自带一个JRE?

四、Java的加载与执行

Java从编写到运行经历了哪些过程?

问题1:字节码文件是二进制文件吗?

问题2:java程序从开发到最终运行经历了什么?

五、安装JDK

第一步:安装JDK(先下载JDK)

六、环境变量path

为什么要配置path?

配置环境变量path的步骤:

怎么修改path环境变量?

问题1:path环境变量的作用?

问题2:path环境变量是Java中的机制,还是windows操作系统中的机制?

 七、类体中不能直接编写输出语句

八、public class和class区别


一、思维导图

二、 JAVA语言特性

(1)简单性:相对于C++来说(指针)

在JAVA语言当中真正操作内存的是:JVM(JAVA虚拟机),所以的JAVA程序都是运行在JAVA虚拟机当中的。所有的Java程序都是运行在JAVA虚拟机当中的。

而JAVA虚拟机执行过程中再去操作内存。

对于C和C++来说程序员都是直接通过指针操作内存的。

优点:不容易导致内存泄露(简单了)

缺点:效率问题,包括驾驭感差。

java语言底层是C++,所以JVM是C++语言写好的一个虚拟的电脑。

JVM在哪里?告诉大家,安装了JDK之后,JVM就代表安装好了。

(2)面向对象:

(3)健壮性:自动垃圾回收机制(GC)机制

(4)可移植性/跨平台:

Java语言只要编写一次,可以做到到处运行。

mspaint打开画板

问题1:JAVA怎么实现跨平台的?

JAVA程序运行在虚拟机中,然后windows版本的虚拟机和ios版本的虚拟机又是不一样的,所以这才实现了跨平台。

问题2:JVM是怎么来的?

在安装JDK的时候会自动带有JVM,所以JDK也有不同的版本,windows版本的JDK,Linux版本的JDK。

问题3:JVM这种机制实现了跨平台,那么这种机制优点和缺点分别是什么?

优点:一次编写导出运行,可以跨平台。

缺点:麻烦。

问题4:Java语言可以编写病毒吗?

可以,没问题,但是很难让用户中毒。装有JDK中毒。

 

 (5)多线程

三、JDK、JRE、JVM三者之间的关系

JDK:Java Development Kit 是Java语言的软件开发工具包

JRE:java运行环境

JVM:java虚拟机

JDK包括JRE、JRE包括JVM

JVM是不能独立安装的,JRE和JDK都是可以独立安装的,有单独的JDK安装包,也有单独的JRE安装包,没有单独的JVM安装包。

问题1:

如果一个软件公司开发一个新的软件,现在去客户那边给客户部署,把项目跑起来,需要安装JDK吗?

只需要安装JRE就行。

问题2:

为什么安装JDK的时候会自带一个JRE?

因为需要跑起来

四、Java的加载与执行

Java从编写到运行经历了哪些过程?

Java程序非常重要的两个阶段:

编译阶段

运行阶段

注意:java程序员直接编写的java代码(普通文本)是无法执行被JVM识别的。Java程序员编写的java代码这种普通文本必须经过一个编译,将这个“普通文本代码”变成”字节码“,JVM能够识别”字节码“java代码这种普通文本编程字节码的过程被称为:编译。

.java就是源文件,这个文件中编写源代码。

.class文件就是字节码文件,这个文件时编译源代码而得到的

 

问题1:字节码文件是二进制文件吗?

不是,如果是二进制的话,就不需要JVM了,

 

编译器和运行阶段可以在不同的操作系统上运行。

在编译阶段,各个系统之间编译的是一样的。也就是生成的字节码是一样的。

 

问题2:java程序从开发到最终运行经历了什么?

编译器(可以在windows上)

第一步:在硬盘的某个位置(随意),新建一个xxx.java文件

第二步:使用记事本或者其他文本编辑器例如EditPlus打开xxx.java文件

第三步:编写源程序然后保存。

第四步:使用编译器javac运行,对xxx.java文件进行编译。

第五步:如果xxx.java文件中编写的源代码是符合语法规则的,编译会通过,如果xxx.java文件中编写的源代码违背了语法规则,那么编译器会报错,编译报错后class文件是不会生成的,只有编译通过了才会生成class字节码文件,并且一个Java源代码可以生成多个class文件的。(编译实质上是检查语法错误的)

运行期:(windows上,也可以在其他的OS上)(JRE起作用)

第七步:如果在Linux上,需要将windows上生成的class文件拷贝过去,不需要拷贝源代码,真正运行的是字节码。

第八步:使用JDK自带的一个命令/工具:java(负责运行的命令/工具)执行字节码

第九步:往下的步骤就全部交给JVM了,就不需要程序员干涉了,JVM会将字节码文件装载进去,然后对JVM对字节码进行解释(解释器负责将字节码解释为1010101,等二进制)

第十步:JVM会将生成的二进制码交给OS操作系统,操作系统会执行二进制码和硬件进行交互。

注意:在以上的过程中,需要使用两个非常重要的命令?

Javac命令,负责编译

java命令,负责运行。

小插曲:

Xxx.java源文件经过编译之后生成A.class 、B.class、C.class等文件,那么我们称A是一个类.B 是一个类。C是一个类。其中A、B、C是类的名字。

五、安装JDK

第一步:安装JDK(先下载JDK)

JDK安装的时候内置了一个JRE,JDK8安装的时候,不仅JDK内置了一个JRE,而且还会在JDK目录之外独立的生成一个独立的JRE。

JDK安装的时候不仅JDK内置了一个JRE,而且还会在JDK目录之外独立的一个单独的JRE(以前低版本的时候,JRE实际上是有2个。一个JDK内置的,一个是独立于JDK之外的。)

JDK的bin目录下:

Javac.exe负责编译

Java.exe负责运行

六、环境变量path

为什么要配置path?

因为我们的程序需要进行编译,编译的时候需要用到javac,所以我们需要让系统找到javac,这个时候我们就需要配置一个环境变量path了。

怎么编译?怎么使用命令?这个命令怎么用?

需要使用命令是:C:\Program Files\Java\jdk1.8.0_60\bin\javac.exe

这个命令需要先测试一下,打开DOS命令窗口,看看javac命令是否可用

这说明:windows操作系统没有发现“javac.exe”命令在哪里。

配置环境变量path的步骤:

打开环境变量:(此电脑—属性)

桌面计算机右键-->属性-->高级系统设置-->环境变量

怎么修改path环境变量?

找到Path,双击!!!

path环境变量当中都是路径,路径和路径之间必须采用“半角的分号”分隔。

让javac,exe能用,我们配置那个路径到path中?

将C:\Program Files\Java\jdk1.8.0_60\bin配置到path中

然后再在DOS中输入javac,如果出来下面的东西就表示成功了。

%SystemRoot%\system32表示:C:\Windows

注意:环境变量包括"系统变量"和用户变量"

系统变量:范围比较大,系统变量会让计算机所以用户都起作用。

用户变量:范围比较小,这个变量只对当前用户起作用。

如何查看JDK版本?

如何查看Java虚拟机的版本

Java -version

 

问题1:path环境变量的作用?

path环境变量的作用就是给windows操作系统之路的。

告诉windows操作系统去哪里找这个命令文件。

path环境变量中有很多很多的路径,路径和路径之间用半角分号分隔。

Path=A;B;…

A,B…是环境变量的值。

 

问题2:path环境变量是Java中的机制,还是windows操作系统中的机制?

path环境变量隶属于Java的吗?path环境变量和Java有关系吗?

path环境变量本质上是隶属于windows操作系统的,和Java没有关系,java只不过用了一下Path环境变量。

javac命令怎么用?

语法格式:

Javac java源文件的路径

可以选择通过拖的方式,直接将文件拖到DOS里面。

 如何在DOS命令窗口中快速定位到某个路径呢?

运行阶段

前提:class文件(字节码)生成了。

 运行Java程序需要哪些步骤呢?

第一步:

先使用cd命令切换到xxx.class文件所在的路径。

第二步:

"java.exe"这个命令怎么用,语法格式是什么?

Java 类名

执行java xxx

 七、类体中不能直接编写输出语句

//类体当中应该是方法,而不是直接的java语句。

八、public class和class区别

1、一个java源文件里面可以定义多个class的。

2、public不是必须的

3、只要有一个class定义,就会生成一个class文件。

4、pulic的类可以没有,如果有的话,public修饰的类名必须和源文件名保持一致。(如下图)

5、一个源文件中只能有一个Public类。

 

发布了168 篇原创文章 · 获赞 28 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/MyxZxd/article/details/105616198
今日推荐