Java零基础入门典藏,
疫情没啥事找找之前储备的资料给大家分享一下,希望对伙伴们有所帮助。。。
目录
1.6. public class和class的区别(掌握)
第一章Java开发环境搭建
本章节目标:掌握Java的开发环境搭建,会编写HelloWorld程序,并能够准确的进行编译和运行。
1.1. Java语言概述(了解)
Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
目前在世界各地都有Java程序员的存在,你走到哪里也不再孤单,因为有你的Java编程小伙伴在陪伴着你。我们一起来看看世界编程语言排行榜TIOBE(https://www.tiobe.com/tiobe-index)给出的统计数据。
图1-1:2018年5月编程语言排行榜
上图是TIOBE排行榜给出的2018年5月份的编程语言排行榜的统计数据,如果你一直在关注编程语言排行榜,那么你应该发现Java的排名多年以来一直在前两名徘徊,并且多数情况下都是以排名第一的形式存在。
1.2. 初步了解Java从开发到运行的过程(了解)
图1-2:Java的加载与执行
- Java程序从开发到运行包括编译和运行两个阶段,这两个阶段可以在不同的操作系统中完成,例如在windows环境下进行编译,在Linux环境下运行,这是因为有JVM机制的存在,做到了一次编译到处运行(跨平台/可移植)。
- 编译阶段需要使用javac.exe(安装JDK之后该命令就存在了)命令,运行阶段需要使用java.exe(安装JRE之后该命令就存在了)命令。
- 一个java源文件可能会编译生成多个class文件。
- java源文件中的源代码如果不符合java的语法机制则编译时编译器会提示错误信息,并且无法生成class文件。反之则生成class文件,而class文件才是最终要执行的程序,此时将java源文件删除是不会影响java程序运行的(当然,我们也不必删除java源文件,因为在运行class文件之后,如果没有达到预期的运行效果,这个时候还需要将java源代码修改,重新编译,以达到最终的运行效果)。
- 若生成的字节码文件名为A.class,那么我们称A为一个类的名字(这个先记住就行,后面的内容会讲)。
- 当编译阶段完成之后,我们可以使用JRE中的java.exe命令运行程序,例如执行命令“java A”,该命令执行后会启动类加载器,类加载器去硬盘上搜索A.class文件,找到该字节码文件之后,将其加载到JVM当中,JVM中的解释器会将A.class字节码文件解释为操作系统可以执行的二进制码,然后操作系统通过执行二进制码和硬件平台交互。
- 运行java程序的前提是当前操作系统上已经安装了对应版本的JVM(JVM不是单独安装的,安装JRE即可,不同的操作系统需要安装不同版本的JRE,不同版本的JRE对应不同版本的JVM)。
1.3. JDK、JRE、JVM三者关系(理解)
图1-3:JDK、JRE、JVM三者关系
- JDK:JDK(Java Development Kit)是Java 语言的软件开发工具包(SDK)。它是每一个Java软件开发人员必须安装的。JDK安装之后,它会自带一个JRE,因为软件开发人员编写完代码之后总是要运行的。注意:如果只是在这台机器上运行Java程序,则不需要安装JDK,只需要安装JRE即可。
- JRE:JRE(Java Runtime Environment,Java运行环境),运行JAVA程序所必须的环境的集合,包含JVM标准实现及Java核心类库。
- JVM:JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
注:不同的操作系统需要安装不同版本的JDK,有专门的windows版JDK,Linux版JDK,Mac版JDK等,当然不同版本的JDK安装之后会对应不同版本的JRE和JVM。
1.4. 开发第一个Java程序(掌握)
1.4.1. windows系统当中显示文件扩展名
java源文件要求扩展名必须为.java,不能使用其他扩展名,有些操作系统默认不显示文件扩展名,大家可按照以下步骤,将文件的扩展名显示出来(以win7系统为例):
图1-4:打开桌面上的计算机,菜单栏上的“工具”
图1-5:文件夹选项
图1-6:点击“查看”,把上图红框的对勾去掉
1.4.2. windows系统的常用DOS命令
- 打开DOS命令窗口,使用快捷键:win + r,输入cmd,回车。
- dir命令:查看当前目录下所有的子文件或子目录。
- cd命令:切换路径,使用方法是:cd+目录路径,需要注意的是路径包括相对路径和绝对路径,对于windows来说从硬盘的根路径下开始的路径都是绝对路径,例如:C:\Program Files、C:\Program Files\Java等,所有的相对路径都是从当前所在目录作为起点开始查找的路径。另外cd ..切换到上级目录,cd \切换到根目录。
图1-7:cd命令使用办法
- 切换盘符:直接输入c:,或者d:,然后回车即可。切换盘符不需要cd命令。
- del命令:删除文件或目录,例如:del *.class,删除当前目录下所有的.class文件。
- ipconfig命令:查看IP地址等信息,查看更详细的信息使用ipconfig /all。
- ping命令:查看两台计算机是否可以正常通信,例如:ping 192.168.1.100,正常情况下发送数据包和接收数据包数量相同并且没有延迟的时候表示通信正常,ping 192.168.1.100 -t表示一直发送数据包和接收数据包,ping www.baidu.com可以查看电脑是否可以正常上网。
- cls命令:清屏。
- exit命令:退出DOS命令窗口。
1.4.3. 文本编辑器EditPlus的安装与配置
这里安装的EditPlus版本为:,双击之后,一直点击下一步就可以了。
以下主要说一下对该工具的配置:取消自动备份、设置字体大小、设置缩进长度:
图1-8:菜单栏“工具”,然后“首选项”
图1-9:设置字体和取消自动备份
图1-10:设置缩进长度
图1-11:这里设置缩进长度为3
1.4.5. JDK的下载与安装
Java语言由Sun(Sun Microsystems)公司开发,2009年时被Oracle(甲骨文)公司收购,所以目前JDK需要从Oracle下载,Oracle官网地址是https://www.oracle.com,这里我们学习Java10版本,所以下载JDK10,具体下载过程如下图所示:
图1-12:选择JavaSE
图1-13:点击“Download Java SE...”
图1-14:点击“DOWNLOAD”
图1-15:选择“Accept...”,然后选择“windows”版
注意:JDK10要求windows操作系统必须是64bit的。下载完成之后,直接双击进行安装,具体步骤如下所示:
图1-16:点击“下一步”
图1-17:选择JDK10的安装目录,点击下一步
图1-18:正在安装JDK10
图1-19:选择JRE10的安装目录,点击“下一步”
图1-20:正在安装JRE10
图1-21:点击关闭,安装结束
1.4.6. JDK的bin目录
图1-22:java和javac命令的存放位置
javac.exe命令用来完成java程序的编译,java.exe命令用来完成java程序的运行。
1.4.7. 编写HelloWorld
该程序大家目前不需要理解,照抄就行,包括大小写以及标点符号,这只是一个测试Java环境的程序,后期学习的过程中会让大家理解该程序的含义。首先新建文件,具体代码如下所示:
1 2 3 4 5 |
public class HelloWorld { public static void main(String[] args) { System.out.println("动力节点-口口相传的Java黄埔军校"); } } |
1.4.8. 编译HelloWorld程序
编译java程序需要使用JDK bin目录下的javac.exe命令,首先我们来看看这个命令是否可以在DOS命令窗口中使用,如下图所示:
图1-23:测试javac命令
根据以上测试结果,说明在“C:\Users\Administrator”目录下javac命令是无法使用的,那么我们来切换到另外一个目录“C:\Program Files\Java\jdk-9.0.4\bin”再来测试,如下图所示:
图1-24:切换到bin目录下再次测试javac命令
根据测试结果可以得出:windows操作系统默认是从当前路径下查找可执行命令文件的。但每一次使用javac命令的时候都需要切换到bin目录下,显然是很麻烦的,有什么比较方便的方法吗?我们先来研究一下ipconfig命令是怎么执行的,如下图所示:
图1-25:测试ipconfig命令
ipconfig.exe文件实际上在“C:\Windows\System32”目录下,如下图所示:
图1-26:ipconfig.exe在这里
ipconfig命令为什么在命令窗口可以直接执行而不需要切换到命令所在目录呢?实际上是因为windows系统中的环境变量path在起作用。如下图所示,windows操作系统有这样的默认配置:
图1-27:windows自带的path环境变量配置
我们来做一个实验,把上图path环境变量当中的“C:\Windows\System32;”删掉。怎么删除呢?鼠标双击Path,将“C:\Windows\System32;”删除,注意:System32路径后面的半角分号也需要删除,然后点击确定。将所有的DOS命令窗口全部关闭(注意:修改了任何环境变量,DOS命令窗口都需要关闭之后重新打开,这样新的环境变量才会生效),打开一个新的DOS命令窗口,测试ipconfig,如下图所示:
图1-28:测试ipconfig命令
根据以上测试,windows操作系统已经找不到ipconfig.exe文件了,接下来我们再重新恢复path环境变量的配置,配置环境变量path的步骤是这样的:在电脑桌面图标上点击鼠标右键,继续点击,在弹出的窗口上选择,然后在弹出的窗口上点击,此时会弹出以下窗口:
图1-29:配置环境变量的窗口
在上图的系统变量当中找到path环境变量,点击“编辑”,将“C:\Windows\System32;”添加到path环境变量当中(注意:环境变量path当中有很多路径,路径和路径之间必须使用半角的英文分号进行分隔),然后点击确定,重新配置了环境变量需要关闭所有DOS命令窗口,打开一个新的DOS窗口测试ipconfig命令,如下图所示:
图1-30:测试ipconfig命令
根据以上讲解,我们怎么让javac命令可以使用呢?很简单,我们只要把“C:\Program Files\Java\jdk-9.0.4\bin;”路径配置到环境变量path当中即可,配置完成之后,再次测试javac命令,如下图所示:
图1-31:测试javac命令
在javac命令后面添加“-version”参数可以查看编译器的版本,如下图所示:
图1-32:查看编译器版本
通过以上内容的学习,大家应该思考这样一个问题:path环境变量是隶属于java的吗,它和java有关系吗?答案是:path环境变量隶属于windows操作系统,不属于java范畴,是windows操作系统搜索某个命令文件的路径依据。windows操作系统到底是如何搜索命令文件的呢?实际上它会先在当前路径下找,找不到的时候会自动去环境变量path的路径中查找,找到则执行该命令,找不到则在DOS窗口中提示错误信息。希望大家以后遇到类似的“在DOS命令窗口中输入某个命令时出现找不到命令”这样的问题都能够独立的解决。
通过以上的配置,javac命令已经可以使用了,那么它具体怎么使用才能编译java程序呢,接下来我们详细的讲解一下javac命令的具体使用办法。
javac命令的语法格式是:“javac java源文件路径”,非常简单,就是javac命令后面加上java源文件的路径,当然,之前我们说过,路径包括绝对路径和相对路径。也就是说javac后面的java源文件路径可以是绝对的也可以是相对的,如下图所示:
图1-33:编译之前
图1-34:编译之后(绝对路径方式)
图1-35:编译之后(相对路径方式)
我们把HelloWorld.java文件中的程序故意修改让其出现错误,再次编译,如下图所示:
1 2 3 4 5 |
public class HelloWorld { public static void main(Strin[] args) {//String修改为Strin System.out.println("动力节点-口口相传的Java黄埔军校"); } } |
图1-36:编译器报错测试
通过以上的测试,可以得出这样的结论:java源代码中存在语法错误,在编译的时候编译器会提示错误消息,并且不会生成class字节码文件。在以后的学习过程当中,编译的时候尽可能将错误信息记录起来,并且给出该错误的解决方案,久而久之不断积累,大家就会成为改错高手。
小结:通过本小节的学习,每位同学都必须掌握path环境变量的作用,以及它是怎么配置的,还有怎么使用javac编译java源程序。
1.4.9. 运行HelloWorld程序
运行java程序的前提是已经正常生成了class字节码文件,本课程中生成的class文件是,我们称HelloWorld为类名。那么怎么运行呢,这个时候就需要借助JDK bin目录下的java.exe命令了,我们先来测试这个命令是否可以在DOS窗口中使用,如下图所示:
图1-37:测试java.exe是否可用
经过测试,我们看到java.exe命令是可以在DOS窗口中直接使用的,因为javac.exe和java.exe都在JDK的bin目录下,之前的课程中这个目录已经配置到环境变量path当中,所以这里是可以使用的。
那么java.exe具体怎么使用呢,语法是:“java类名”,需要注意的是java命令后面是类名,而不是class文件的名字,也不是class文件的路径,不能这样写java HelloWorld.class,也不能这样写java E:\course\JavaProjects\01-JavaSE\chapter01\HelloWorld.class,只能这样写:java HelloWorld,它的运行原理是:在命令窗口中输入“java HelloWorld”回车之后,先启动的是类加载器,类加载器从硬盘上查找HelloWorld.class字节码文件,默认情况下类加载器只从当前路径下查找,查找到之后则将HelloWorld.class文件加载到JVM并执行,如果没有查找到则会出现错误信息(如果输入的是“java A”那么类加载器会从硬盘上查找A.class字节码文件,以此类推),如下图所示:
图1-38:运行HelloWorld类(正常)
1.5. Java中的注释(掌握)
三种类型:
1、单选注释:符号是://
2、块注释: 符号是:/* */ 可以跨多行
3、javadoc注释: 符号是:/** */ 可以跨多行
1.6. public class和class的区别(掌握)
图1-43:一个java源文件中可定义多个class
通过以上的测试可以得出:一个java源文件中可以定义多个class,并且在编译的时候一个class会对应编译生成一个class字节码文件。
图1-44:public class的类名要求和java源文件名一致
通过以上的测试可以得出:如果定义public class的类,只能定义一个,并且要求此类名必须和java源文件名保持一致。(这是规则记住就行,学计算机编程语言有很多知识点在学习的时候很难理解,只能靠记忆,随着后面内容的学习,大家会对以前困惑的知识点有所理解)
图1-45:每个类中都可以定义main方法
通过以上的测试可以得出:任何一个class中都可以设定程序入口,也就是说任何一个class中都可以写main方法(主方法),想从哪个入口进去执行,则让类加载器先加载对应的类即可,例如:想让A类中的main方法执行,则执行:java A,想让B类中的main方法执行,则执行:java B。但实际上,对于一个完整的独立的应用来说,只需要提供一个入口,也就是说只需要定义一个main方法即可。
还有,在实际的开发中,虽然一个java源文件可以定义多个class,实际上这是不规范的,比较规范的写法是一个java源文件中只定义一个class。
1.7. 本章节练习题
- 编写HelloWorld程序输出以下学生信息:学号,姓名,年龄,性别,家庭住址等。
- 编写java程序,输出商品列表,如下所示:
- 编写java程序输出1-10,如下所示:请分析这种输出方式有什么缺点,或者说你有什么想改进的吗?
连载中
题