01 java开发前小知识

1.常见的dos命令

盘符: 进入指定的盘符下。

dir : 列出当前目录下的文件以及文件夹

md : 创建目录

rd : 删除目录    注意:rd不能删除非空的文件夹,而且只能用于删除文件夹。

cd : 进入指定目录

cd.. : 退回到上一级目录

cd \ : 退回到根目录

echo "hello java">a.txt  写入文本到指定文件 

type a.txt 显示文件内容命令

del : 删除文件    注意:不能删除文件夹,只能删除文件。

exit : 推出dos命令行

cls  : 通知计算机将当前的命令清空

*:  是通配符。

tab  命令补全。

方向键上下是找回上次你写过的命令。

2. 跨平台

即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。Java的跨平台是通过Java虚拟机(JVM)来实现的。

3. Java虚拟机(JVM:Java Virtual Machine)

jvm在整个jdk中处于最底层,负责于操作系统的交互,用来屏蔽操作系统环境,提供一个完整的java运行环境,因此也就虚拟计算机。Java源程序想象成我们的C源程序,Java源程序编译后生成的字节码(.class)就相当于C源程序编译后的二进制可执行文件。JVM虚拟机相当于计算机系统(操作系统+硬件环境),Java解释器相当于CPU。

.exe文件直接在windows操作系统下运行,在CPU上运行的是机器码(.exe文件)

.class字节码文件是运行在JVM虚拟机下的,在Java解释器上运行的是Java字节码。

Java解释器相当于运行Java字节码的“CPU”,但该“CPU”不是通过硬件实现的,而是用软件实现的。Java解释器实际上就是特定的平台下的一 个应用程序。只要实现了特定平台下的解释器程序,Java字节码就能通过解释器程序在该平台下运行,这是Java跨平台的根本。当前,并不是在所有的平台 下都有相应Java解释器程序,这也是Java并不能在所有的平台下都能运行的原因,它只能在已实现了Java解释器程序的平台下运行。

4.JDK目录介绍

  1. bin目录:存放Java的编译器、解释器等工具(可执行文件)。
  2. db目录:JDK7附带的一个轻量级的数据库,名字叫做Derby。
  3. include目录:存放的调用系统资源的接口文件。
  4. jre目录:存放Java运行环境文件。
  5. lib目录:存放Java的类库文件。
  6. src.zip文件:JDK提供的类的源代码。

安装JDK需要注意的事项:1、安装路径中不要包含中文。2、安装路径中不要包含空格。

JRE (Java Runtime Environment Java)运行环境。包括Java虚拟机和Java程序所需的核心类库等,如果要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

JRE = JVM + 核心类库

JDK = JRE + java开发工具(Java编译器等)

5.配置path环境变量

编译的过程中面临的问题:每次编译的时候都需要写上java源文件的完整路径()。 烦!

解决方案: 如果可以在任意的路径下都可以找到java的开发工具,则该问题就解决了。

目前在控制台窗口下只能在jdk安装目录的bin目录下才能使用jdk的开发工具在控,如果想制台窗口下想要在任意目录下都可以使用javac与java或者jdk其他的开发工具那应该怎么做呢?

5.1.在dos窗口敲上javac

我们在随意的一个目录敲javac或者java命令时候,发现dos窗口显示这个不是内部命令,然后我们在上面敲上notepad命令时,打开了一个记事本的程序,但是在当前目录下页没有存在notepad.exe的可执行文件,那么为什么能启动呢?

错误原因:原来在dos窗口上写上一个命令时候,如果在当前目录下找不到指定的可执行文件,那么它会根据path环境变量保存的路径去搜索是否存在这个可执行文件,如果存在则启动该程序,否则就没有这个命令。

5.2.解决方法:

1、  进入jdk的安装目录的bin目录。

2、  在dos命令上敲javac。(如果出现了以上的图信息则配置成功)

5.3 为什么要配置path环境变量: 在任意的路径下都可以找到java的开发工具

5.4 javac 生成的.class 文件的名称取决于类名,跟.java名没有关系。

6 .classpath环境变量: 设置了class文件的路径信息。

6.1. classpath的引入:

编译好的Hello.class文件在F盘,当前路径在E盘,直接输入命令

Java Hello运行class文件时,报错,找不到类。。。。

6.2解决:

既然class文件(字节码文件)是java的运行文件,可不可以实现,在任意目录下都可以执行某一目录下的class文件呢?根据path环境变量的原理,可以定义一个名为classpath环境变量,将要运行的class文件所在目录定义在该变量中。例如set classpath=F:\ 但是这设置的是临时变量。如何能一劳永逸呢?设置classpath环境变量

要使用已经编写好的类,前提当然是能够找到它们了。(1)当没有设置classpath环境变量的时候,启动jvm(java虚拟机)的时候,那么java虚拟机就会在当前路径下寻找对应的class文件。(2)设置了classpath环境变量的时候,jvm就会根据classpath环境变量所保存路径信息下去寻找对应的class文件。

设置classpath环境变量信息的有分号与没有分号 的区别:分号相当于当前路径。1. 如果配置classpath环境变量信息没有加上分号,那么JVM仅会在classpath所保存的路径下去搜索对应的class文件,不会在当前路径下去搜索了。2. 如果配置classpath环境变量信息加上分号,那么JVM除了会在classpath所保存的路径下去搜索对应 的class文件之外,如果能找到对应的class文件.那么就马上指定对应的class文件,否则还会去 当前路径下去搜索。

7.Java是编译型语言还是解释型语言?

编译型语言:源程序经过编译之后,生成系统可直接运行的二进制文件的语言.

解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!

个人认为,java是解释型的语言,因为虽然java也需要编译,编译成.class文件,

但是并不是机器可以识别的语言,而是字节码,最终还是需要 jvm的解释,才能在各个平台执行,这同时也是java跨平台的原因。所以可是说java即是编译型的,也是解释型.

8.JVM是以什么形式存在的,是包含在jdk中吗?他的文件叫什么名字?

在jdk里面,是javaw.exe,因为每次eclipse启动,都有javaw.exe这个进程.Jvm是java程序运行的环境,但是他同时一个操作系统的一个应用程序一个进程,因此他也有自己的运行的生命周期,也有自己的代码和数据空间.操作系统装入jvm是通过jdk中java.exe来完成,通过下面4步来完成jvm环境. 1.创建jvm装载环境和配置 ;  2.装载jvm.dll ;  3.初始化jvm.dll并挂界到JNIENV(JNI调用接口)实例;  4.调用JNIEnv实例装载并处理class类。

上一篇:(1)RabbitMQ在Docker上安装


下一篇:CI与CD之Docker上安装Jenkins