目录
问题3:JVM这种机制实现了跨平台,那么这种机制优点和缺点分别是什么?
如果一个软件公司开发一个新的软件,现在去客户那边给客户部署,把项目跑起来,需要安装JDK吗?
问题2:path环境变量是Java中的机制,还是windows操作系统中的机制?
一、思维导图
二、 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类。