在此想要记录一下自己学习java的过程,以下是我通过在B站看动力节点-《Java零基础教程视频(适合Java 0基础,Java初学入门)》学习java所做的笔记。其实大部分是里面老师所讲的内容,再加上自己认为重要的内容和不理解的地方补充上去的,根据网上查询资料进行补充知识点。
1、关于java的加载和执行
*Java程序的运行包括两个非常重要的阶段
—编译阶段
—运行阶段
**编译阶段
—主要任务是检查Java源程序是否符合Java的语法,
符合Java语法则能够生成正常的字符码文件(xxx.class)
不符合Java语法规则无法生成字符码文件
—字符码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。
*程序员需要在硬盘的某个位置<位置随意>新建一个.Java扩展名的文件,
该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。 而这个源程序是不能随意编写,必须符合Java的语法规则<Java语法规则是需要记忆的>
*Java程序员需要使用JDK当中自带的java.exe命令进行Java程序的编译。
javac怎么用呢?在哪里用呢?
-在DOS命令窗口中使用
-javac的使用规则:
javac java源文件的路径
javac是一个java编译的工具/命令。
*一个java的源文件可以编译生成多个.class文件。
*字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源程序不要删除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头重新修改java源程序,然后将java源程序重新编译生成新的class文件,
然后再运行这个class程序,生成新的效果。
**运行阶段<可以在其他操作系统当中,跨平台>
--JDK.exe在哪里用?怎么样?
-----在DOS窗口中使用。
-----java.exe怎么用呢?
java 类名
例如:
硬盘上有一个A.class,那么就这样用:java A;
硬盘上有一个B.class,那么就这样用:java B;
硬盘上有一个C.class,那么就这样用:java C;
千万要注意,不要写成这样:java A.class【这种方式是错误对的,大家记住就行了】
*输入:java A
*java.exe 命令启动 java虚拟机(JVM),JVM会启动类加载器ClassLoader
*ClassLoader会去硬盘上搜索A.class文件,找到该文件则该字节码文件装载到JVM当中,
*JVM将A.class 字节码文件解释从成二进制101010101010这样数据
*然后操作系统执行二进制和底层硬盘平台进行交互。
2、开始第一个Java程序
*保证计算机当中已经安装了文本编辑器EditPlus
*安装JDK【JDK一般需要从oracle的官网下载】,我们这里讲的是JDK7
*JDK、JRE、JVM的关系要搞清楚
*JDK目录的介绍:
JDK/bin:该目录存放了很多命令,例如:javac.exe和java.exe
javac.exe负责编译
java.exe负责运行
*开发Helloworld.java源程序
*将Helloworld.java源程序通过Javac工具进行编译:
——首先需要解决的问题是:javac命令是否可用
——打开DOS命令窗口,直接输入javac,然后回车,出现以下:
‘javac’不是内部或外部命令,也不是可运行的程序或批处理文件。
出现以上问题是因为:windows操作系统无法找到javac命令文件
--怎样解决以上javac不可以用的问题:
Windows操作系统如何搜索硬盘上的文件的呢?
*首先会从当前目录下搜索
*当前目录搜索不到的话,会从环境变量path指定的路径当中搜索某个命令
*如果都搜索不到,则报以上的错误
——配置环境变量path
*注意:path环境变量和java语言没有关系,path环境变量属于windows操作系统的一个path环境变量是专门给windows操作系统指路的。
*Javac要想能随意使用,需要将Javac所在的目录配置到环境变量path1当中:
如:Path=xxxx:C:\Program Files\Java\jdk.7.0_80\bin
—javac命令怎么用?
javac javac源文件路径
注意:路径包括相对路径和绝对路径,都可以。
—运行java程序:
-需要使用java.exe命令
-首先要测试java命令是否可用
-使用方法:
java类名
硬盘上有Hel lo World.class,那么类名就是Hel lo World
一定要注意:java命令后面跟的不是文件路径,是一个类的名字。
—首先你需要先将DOS窗口中的目录切换到Hel lo World.class文件的目录。
3、-----打开DOS命令窗口,执行java Hel lo World,执行原理?
*java.exe命令会启动JVM
*JVM启动之后会启动类加载器ClassLoader
*ClassLoader会在硬盘上的某个位置搜索HelloWorldclass字节码文件
*找到该文件则执行
*找不到该文件则报错
----疑问:ClassLoader是在哪个位置上搜索HelloWorldclass字节码文件的?
*默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
*当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath
*classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
*classpath是给ClassLoader类加载器指路的。
*设置这样的环境变量:classpath=p:course\JavaProjects102-JavasE\day02
-打开dos命令窗口在任意位置,都可以执行:java HelloWorld
*classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。
*综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。
所以,每一次执行class程序的时候,需要在DOS命令窗口中先切换到class字节码文件所在的路径下然后运行。
注意:
路径中“..”表示上级目录
路径中“.”表示当前目录
4、关于java源程序当中的注释:
*什么是注释?注释的作用是什么?
--出现在java的源程序当中,对java源代码的解释说明
--注释不会被编译到.class字节码文件当中
--一个好的开发习惯应该是多编写注释,这样程序的可读性比较强。
* java中的注释怎么写呢?
-单行注释
//单行注释,只注释当前行
-多行注释
/*
多行注释
*/
-javadoc注释
注意:这种注释是比较专业的注释,该注释信息会被javadoc.exe工具解析提起并生成帮助文档.
部分关键字解释
//public表示公开的
//class表示定义一个类
//HelloWorld表示一个类名
public class Helloworld //表示定义一个公开的类,起名Helloworld
//类体【记住】
//类体中不允许直接编写java语句【除声明变量之外】
public表示公开的
static表示静态的
void表示空
main表示方法名是main
(string[]args)是一个main方法的形式参数列表
需要记住的是:
以下的方法是一个程序的"主方法",是程序的执行入口
是SUN公司规定的,固定编写方式,
public static void main(string[] args){ //表示定义一个公开的静态的主方法
//方法体
//方法体
//方法体
//方法体
//方法体
//java语句【java语句以”;"终止,分号必须是半角分号】
//先记住:以下这样代码的作用是向控制台输出一段消息
//以下的双引号必须是半角的双引号【是java语法的一部分】
//java中所有的“字符串"都使用双引号括起来。
System.out.println("Hello world!");
}
5、 public class和class的区别:
*一个java源文件当中可以定义多个class
*一个java源文件当中public的class不是必须的
*一个class会定义生成一个xxx.class字节码文件
*一个java源文件当中定义公开的类的话,只能有一个,并且该类名称必须和java源文件名称一致。
*每一个class当中都可以编写main方法,都可以设定程序的入口,想执行B.class中的main方法java B.
想执行x.class当中的main方法:java x
*注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。没有主方法会出现运行阶段的错误:
D:IcourselJavaPro1ects102-JavasEldav02>java Hello
错误:在类B中找不到主方法,请将主方法定义为
public static void main(string[] args)
6、总结第一章需要掌握的内容:
*能够自己搭建java的开发环境
*能够独立编写HelloWorld程序,编译并运行
*掌握环境变量path的原理以及如何配置
*掌握环境变量classpath的原理以及如何配置
*java中的注释
*public class 和 class的区别