第一章 Java开发环境
1.Java文件的扩展名结尾是.java
如何让win10系统显示文件时显示后缀扩展名?
打开此电脑,点击菜单栏里的查看,在文件扩展名前面打上勾。
2.一个基本常识:
如果软件是32位的,会自动安装到C:\Program Files(X86)目录下;
如果软件是64位的,会自动安装到C:\Program Files目录下。
3.windows系统中常用的DOS命令:
①怎么打开DOS命令窗口?
win键+r键(组合键):可以打开“运行”窗口
在运行窗口文本框中输入:cmd
然后回车即可打开DOS命令窗口。
默认当前路径:C:\Users\Administrator。
②什么是DOS命令?
在DOS命令窗口中才可以输入并执行DOS命令。在最初的windows计算机中没有图形界
面的,只有DOS命令窗口,也就是说 通过执行DOS命令窗口完全可以完成文件的新建、编
辑、保存、删除等一系列操作。
在win10中对DOS命令窗中内容的复制:
左键直接选中,然后右键单击一下就到剪贴版里面了。
③mkdir:创建目录
del:删除文件或目录,支持模糊匹配
cls:清屏
dir:查看当前目录下有什么东西
exit:退出DOS命令窗口
切换盘符:盘符名称: 如c: d: e:
切换目录:cd+路径(change directory)
路径在windows系统上包括相对路径和绝对路径:
相对路径:从路径形式上看,相对路径是一定不会以盘符开始的。相对路径一定是
相对于当前所在“位置”而言的。
绝对路径:在windows操作系统中凡是路径起点是盘符的都是绝对路径。
cd..:回到当前路径的上一级。
cd\:直接回到根目录。
.:一个点代表当前路径,cd命令用不着,配置环境变量的时候需要使用。
ipconfig:查找ip地址的配置信息。
ipconfig /all:可以查看更详细的网络信息。
ping+ip地址/域名:查看两台计算机是否可以正常通信。
ctrl+c组合键:终止在DOS命令窗口中一直在执行的命令。
4.常用文本编辑快捷键:
5.Java被分为三大块:
JavaSE:标准版(基础语法+基础库)
JavaEE:企业版(专门为企业开发软件,为企业提供解决方案)
JavaME:微型版(专门为微型设备做嵌入式开发的)
6.Java语言的特性:
①简单性:在Java语言当中去操作内存的是JVM(Java虚拟机),所有的Java程序都是运行在
Java虚拟机当中的,而Java虚拟机执行过程中再去操作内存。而对于C/C++来说,可以利
用指针直接去操作内存。
②面向对象性:面向对象更容易让人理解,人类通常是以对象的方式认知世界的,采用面向
对象的方式可以让复杂问题简单化。
③健壮性:主要是因为Java中有一种机制---自动垃圾回收机制(GC机制)。相对于C/C++,有
这个机制的Java不容易出现内存泄漏问题。
④Java完全支持多线程并发。
⑤可移植性/跨平台性:Java语言只要编写一次,可以做到到处运行。例如:Java程序编写完
之后,可以运行在windows操作系统上,不需要做任何改动可以直接运行在Linux操作系统
上,也可以运行到Mac OS上。平台改变了但是程序不需要修改。因为Java程序直接是运行
在JVM(不同平台上,版本不同,JVM屏蔽了操作系统之间的差异)上,Java程序实际上没有
直接和操作系统打交道。
7.JDK、JRE、JVM三者之间的关系:
JDK:Java开发工具箱
JRE:Java运行环境
JVM:Java虚拟机
JDK包括JRE,JRE包括JVM。
JVM是不能独立安装的,JRE和JDK都是可以独立安装的。安装JDK的时候,JRE就自动安装了,同时JRE内部的JVM也就自动安装了;安装JRE的时候,JVM也就自动安装了。
8.Java的加载与执行的理解(理论比较重要,详细知识见JVM虚拟机)
Java程序从编写到最终运行经历了哪些过程?
Java程序员直接编写的Java代码(普通文本,Java源代码)是无法直接被JVM识别的,这种源代码必须经过一个编译,将这个源代码变成“字节码”,JVM能够识别“字节码”,这个过程被称为编译。
对于Java来说,因为它是跨平台的语言,所以编译阶段和运行阶段可以在不同的操作系统上完成,一次编写,到处运行。
源代码的文件扩展名是.java;编译生成的字节码文件(不是二进制文件,需要通过JVM解释生成二进制文件)扩展名是.class。一个Java源文件可以编译生成多个class文件,最终运行的是class文件。
编译期的完整过程:
①在硬盘的某个位置(随意),新建一个xxx.java文件;
②使用记事本或其他文本编辑器打开xxx.java文件;
③在xxx.java文件中编写“符合Java语法规则”的源代码;
④保存(一定要将xxx.java文件保存一下);
⑤使用编译器(javac.exe[JDK安装后自带])对xxx.java文件进行编译;
⑥如果xxx.java文件中编写的源代码是符合语法规则的,编译会通过,如果xxx.java文件
中编写的源代码违背了语法规则,那么编译器会报错,编译器报错之后class文件是不
会生成的,只有编译通过了才会生成class字节码文件,并且一个Java源文件是可以生
成多个class文件的。(编译实质上是检查语法)。
运行期(JRE在起作用,可以在任意的操作系统上):
⑦如果是在另一个系统上运行,就需要将生成的class文件拷贝过去,不需要拷贝源代
码,因为真正运行的是字节码;(但是源代码也不要删除,如果结果有问题,可以修改)
⑧使用JDK自带的一个命令/工具:java.exe(负责运行的命令/工具)执行字节码;
⑨往下的步骤就全部交给JVM了,不需要程序员干涉。JVM会将字节码文件装载进去,
然后JVM对字节码进行解释(解释器负责将字节码解释为二进制);
⑩JVM会将生成的二进制码交给OS操作系统,操作系统会执行二进制码和硬件进行交
互。
9.编写第一个Java程序Hello World:
第一步:安装文本编辑器EditPlus
第二步:下载并安装JDK。网站oracle.com
第三步:写代码(注意:如果Java源代码需要修改,必须重新编译,生成新的字节码文件)
第四步:编译,需要使用C:\Program Files\Java\jdk1.8.0_101\bin\javac.exe
要直接在DOS命令窗口直接使用javac的命令,需要在“高级系统设置”中配置环境变
量中的系统变量中的Path的值添加上:C:\Program Files\Java\jdk1.8.0_101\bin
(jdk15以上版本会自动配置环境变量)
注意:环境变量分为系统变量和用户变量。
系统变量:范围比较大,会对计算机所有用户都起作用;
用户变量:范围比较大,只会对当前用户起作用。
Path环境变量的作用:告诉windows操作系统去哪里找这个命令文件。
javac命令的使用:javac java源文件的路径(相对路径或绝对路径均可)
第五步:运行,需要使用C:\Program Files\Java\jdk1.8.0_101\bin\java.exe
运行的前提是class文件(字节码文件)生成了,没有字节码文件程序是无法运行的。
语法格式:java 类名(只能是类名,不能加.class后缀名,也不能跟路径)
10.上面配置的Path环境变量是属于windows操作系统的。对于Java的JDK所属的环境变量,有一个叫做JAVA_HOME变量,目前不配置这个变量不会影响当前Java程序的运行,但是后期学习到JavaWeb的时候,需要安装Tomcat服务器,那个时候JAVA_HOME就必须要配置了。
当然,除了JAVA_HOME环境变量之外,JDK相关的环境变量还有其他的。
“java HelloWorld”的执行过程及原理:
①会先启动JVM(java虚拟机);
②JVM启动之后,JVM会去启动“类加载器classloader”(加载类的,负责去硬盘上找类对
应的字节码文件);
③类加载器如果找不到对应的字节码文件,报错java.lang.ClassNotFoundException;
如果找到了,类加载器会将该字节码文件装载到JVM当中,JVM启动“解释器”将字节码
解释为二进制码,操作系统执行二进制码和硬件交互。
默认情况下,类加载器去硬盘上找字节码文件的时候会从当前路径下找。
可以给类加载器指定一个路径,让类加载器去指定路径下加载字节码文件,需要设置一个环境变量:classpath。classpath环境变量不属于操作系统,是java特有的,需要新建。但是配置了classpath之后只能从配置的路径中查找,不再会从当前路径下查找,所以比较麻烦,一般不配置这个环境变量。理解classpath环境变量是做什么的。
11.Java程序中的注释:是对Java源代码的解释说明,注释可以帮助程序员更好地理解程序。注释信息只保存在Java源文件当中,Java源文件编译生成的字节码class文件,这个class文件中是没有这些注释信息的。
注释三种写法:
①//:单行注释,只注释两个斜杠后面的部分
②/* ......
*/:多行注释
③/**
*
*
*/:Java专有的注释方式,可以被工具javadoc.exe识别解析,生成帮助文档
12.针对第一个HelloWorld程序的一些理解:
每个类代码中都有一个main方法(主方法),这个方法是程序的入口,也就是说,JVM在执行程序的时候,会主动去找这样一个方法,没有这个主方法,程序是无法进行的。但是一个类中只能有一个main方法。
public static void main(String[] args){}
方法必须放到类体中,不能放到类体外面(在java中,任意有效代码都是写在类体中的)。
类中的每个方法内的代码块称为方法体,方法体是由一行一行的java语句构成,并且非常重要的是任何一条java语句都必须以;结尾。方法体中的代码遵循自上而下的顺序依次逐行执行。
13.public class 和 class 的区别。
①一个java源文件中可以定义多个class;
②public修饰的类不是一个java源文件必须的,可以没有;
③在java源文件中一个class的定义,编译后就对生成一个对应的class文件;
④public修饰的类可以没有,但如果有的话,该类名必须和java源文件名保持一致;
⑤public的类有的话也只能有一个;
⑥每一个class中都可以有一个main方法,并且想执行哪个类就打开哪个类的字节码文件。
PS:本文内容根据动力节点课程自己归纳总结,如有侵权,联系删除。