视频链接:https://www.bilibili.com/video/BV1Rx411876f?p=1
视频范围为P1——P22
目录描述
1.做笔记软件: Edit Plus
安装完成后步骤:
1.取消文件自动备份
2.设置字体
2.计算机概述
软件工程师:通过计算机的某种编程语言完成软件的开发
计算机包括两部分:
分类 | 内容 |
---|---|
硬件 | 鼠标,键盘,显示器等等 |
软件 | 系统软件和应用软件 |
软件又继续分为两部分:
软件 | 内容 |
---|---|
系统软件 | 直接和硬件交互的软件,如:window7,winxp等等 |
应用软件 | 通常运行在系统软件中,如:QQ运行在windows操作系统上 |
通常说的软件开发一般指:使用计算机编程语言完成“应用软件”的开发
3.常用DOS命令
DOS命令编写地方:DOS命令窗口
DOS命令窗口:win+R键在系统输入框中输入cmd命令,如下:
最基本的window相关的DOS命令:
命令 | 效果 |
---|---|
exit | 退出当前DOS命令窗口 |
cls | 清屏 |
复制 | 在DOS窗口的任意位置,点击鼠标右键,选择标记,选中要复制的内容,在DOS窗口的任意位置点击鼠标右键,此时被复制的内容已经到剪贴板了 |
dir | 列出当前目录下所有的子文件/子目录 |
cd【change directory(改变目录) 】 | 用法: cd 目录的路径 |
cd.. | 回到上级目录 |
cd\ | 直接回到根目录 |
切换盘符 | c:回车 d:回车 e:回车 f:回车 |
注:
路径:绝对路径和相对路径
路径 | 描述 |
---|---|
绝对路径 | 该路径从某个磁盘的盘符下作为出发点的路径 |
相对路径 | 该路径从当前所在的路径下作为出发点的路径 |
4.Windows操作系统的设置—文件扩展名
在Java开发中一定要将文件扩展名打开,防止创建Java文件出现错误
5.计算机语言发展史
5.1 什么是计算机<编程>语言?
提前的人为的制定好的一套交流规则,只要遵守这套语法规则,那么人和计算机之间就可以很好的沟通和交流
5.2 计算机语言发展史
语言 | 内容 |
---|---|
第一代语言:机器语言 | 主要编写二进制码,直接编写100100100100这样的二进制,以打孔机为代表 |
第二代语言:低级语言 | 主要以汇编语言为代表。在低级语言中已经引入了一些英语单词,例如变量赋值采用mv |
第三代语言:高级语言 | 几乎和人类的语言完全相同,即使没有学习过计算机编程,只要看到这段代码就知道该代码主要完成什么功能,例如:C语言,C++,Java,… |
编程语言的发展方向:向着人类更加容易理解的方向发展
6.Java语言的发展史
Java语言诞生于1995年,在1995年之前SUN公司(太阳微电子公司:该公司目前被Oracle(甲骨文:做数据库的)收购了)为了占领智能电子消费市场,派James Gosling领导团队开发了一个Oak(橡树)语言。
1996年JDK1.0诞生(Java开发工具包,做Java开发必须安装的一个工具包,从Oracle官网下载)
Java包括三大块:
——JavaSE(Java标准版)
——JavaEE(Java企业版)
——JavaME(Java微型版)
JavaSE是基础,以后主攻方向JavaEE
7.Java语言的特性【开源,免费,跨平台,纯面向对象】
7.1 简单性
相对而言的,例如:
- Java中不再支持多继承,C++是支持多继承的,多继承比较复杂
- C++中有指针,Java中屏蔽了指针的概念,所以相对来说Java是简单的
- Java语言底层是C++实现的,不是C语言
7.2 面向对象
Java是纯面向对象的,更符合人的思维模式,更容易理解
7.3 可移植性
概念:Java程序可以做到一次编译,到处运行
也就是说:Java程序可以在Windows操作系统上运行,不做修改,同样Java程序可以直接放到Linux操作系统上运行,这个被称为Java程序的可移植性,或者叫做跨平台
提出问题:Windows操作系统内核和Linux操作系统的内核肯定不同,他们这两个操作系统执行指令的方式也是不一样的
显然Java程序不能直接和操作系统打交道。因为Java程序只有一份,操作系统执行原理都不同。SUN的团队很聪明,他们想出一个解决方法:
让Java程序运行在一台虚拟的计算机(Java虚拟机,简称JVM)当中,Java虚拟机再和底层的操作系统打交道。
图示展示:
7.4 多线程
此处先不讲解!
7.5 健壮性
和自动垃圾回收机制(GC机制)有关
Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心
7.6 安全性
此处先不讲解!
8.Java的加载和执行
Java程序的运行包括两个非常重要的阶段:编译阶段和运行阶段
8.1 编译阶段
编译阶段主要的任务:
检查Java源程序是否符合Java语法,符合Java语法则能够生成正常的字节码文件(xxx.class),不符合则无法生成正常的字节码文件
字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行。
编译阶段的过程:
- 程序员需要在硬盘的某个位置<随意位置>新建一个.java扩展名的文件,该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随便编写,必须符合Java语法规则<Java语法规则是需要记忆的>
- Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译
javac怎么用呢?在哪用呢?
——javac的使用规则:
javac java源文件的路径
——在DOS命令窗口中使用
javac是一个java编译器工具 - 一个java源文件可以编译生成多个.class文件
- 字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源文件不要删除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头再重新修改java源程序,然后将java源程序重新编译生成新的class文件,然后再运行这个class程序,生成新的效果
- 编译结束之后,可以将class文件拷贝到其它操作系统当中运行,实现跨平台
8.2 运行阶段【可以在其它操作系统中跨平台】
JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe (java.exe命令主要负责运行阶段)
问题:java.exe在哪用?怎么用?
答:在DOS窗口中使用
答:使用方法: java 类名
例如:硬盘上有一个A.class,那么就这么用:java A
错误方式:java A.class
运行阶段的过程 |
---|
1.打开DOS命令窗口 |
2.输入:java A |
3.java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader |
4.ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM中 |
5.JVM将A.class字节码文件解释成二进制101010110这样的数据 |
6.然后操作系统执行二进制和底层硬件平台进行交互 |
9.开始第一个Java程序
注意事项:
- 保证计算机当中已经安装了文本编辑器EditPlus
- 安装JDK【从Oracle官网下载】,视频讲解JDK7
9.1 JDK,JRE,JVM之间的关系
JDK:Java开发环境(D:development),自带JRE
JRE:Java运行环境(R:run),自带JVM
JVM:Java(V:virtual)虚拟机
9.2 JDK目录的介绍
JDK/bin:该目录下存放了很多命令,例如javac.exe(负责编译)和java.exe(负责运行)
9.3 执行过程
- 开发HelloWorld.java源程序
- 将HelloWorld.java源程序通过javac工具进行编译:
——首先需要解决的问题是:javac命令是否可以用
——打开DOS命令窗口,直接输入javac,然后回车,出现以下:
’javac’不是内部或外部命令,也不是可运行的程序或批处理文件
出现以上问题是因为:windows操作系统无法找到javac命令文件
——怎么解决以上javac不可用的问题?答:看9.4章节 - 运行Java程序:
——需要使用java.exe命令
——首先测试java命令是否可用
——使用方式:java 类名
比如:硬盘上有HelloWorld.class,那么类名就是:HelloWorld
java HelloWorld 一定要注意java命令后面跟的不是文件路径,是一个类的名字
——首先你需要先将DOS窗口中的目录切换到HelloWorld.class文件所在的目录
——然后直接执行:java HelloWorld
9.4 Windows操作系统是如何搜索硬盘上某个命令的呢?
- 首先会从当前目录下搜索
- 当前目录搜索不到的话,会从环境变量path指定的路径当中搜索某个命令
- 如果都搜索不到,则报以上的错误
——配置环境变量path
注意:path环境变量和Java语言没有关系,path环境变量是属于windows操作系统的一个知识点。
path环境变量是专门给windows操作系统指路的。
解决方案:javac要想能随意使用,需要将javac所在的目录配置到环境变量path当中
如:path=xxxx;路径
——javac命令怎么用?
java java源文件路径
注意:路径包括相对路径和绝对路径,都可以。
9.5 打开DOS命令窗口,执行java Helloworld 执行原理?
- java.exe命令会启动JVM
- JVM启动之后会启动类加载器ClassLoader
- ClassLoader会在硬盘上的某个位置搜索Helloworld.class字节码文件
- 找到该文件则执行,找不到该文件则报错
疑问:classLoader是在哪个位置上搜索Helloworld.class字节码文件的?
①默认情况下,ClassLoader从当前路径下加载xxx.class字节码文件
②当然,也可以让ClassLoader去某个指定的路径下加载字节码文件,这时需要配置环境变量classpath
③classpath环境变量属于java语言中的环境变量,不属于windows操作系统【PATH环境变量属于操作系统】
④classpath是给ClassLoade类加教器指路的。
⑤设置这样的环境变量:classpath=D : \course\JavaProjects\02-JavasE\day02
打开dos命令窗口在任意位置,都可以执行:java Helloworld
⑥classpath环境变量没有配置的话,类加载器默认从当前路径下找字节码文件,
当classpath环境变量配置为某个指定的路径之后,类加载器只去指定的路径当中加载字节码文件。
⑦综上所述,环境变量classpath不再配置,这样类加载器会自动从当前路径下加载class字节码文件。所以,每一次执行.class程序的时候,需要在DOS命令窗口中先切换到.class字节码文件所在的路径下。然后运行。
⑧当然,classpath也可以这样配置:classpath=.
注意:路径中"..“表示上级目录 路径中”."表示当前目录
9.6 关于Java源程序当中的注释
概念:出现在Java的源程序当中,对Java源代码的解释说明
注释不会被编译到.class字节码文件当中
一个好的开发习惯应该是多编写注释,这样程序的可读性比较强
Java中的注释怎么写呢?
注释 | 备注 |
---|---|
单行注释 | 只注释当前,注释符号为:// |
多行注释 | 注释符号为:/* 内容 */ |
javadoc注释 | 注释符号为如下 |
javadoc注释:
**该注释比较专业,该注释信息会被javadoc.exe工具解析提取并生成帮助文档
**
举例为:
package Project_20220213;
//public表示公开的
//class表示定义一个类
//HelloWorld表示一个类名
public class HelloWorld {//表示定义一个公开的类,起名HelloWorld
//类体中不允许直接编写Java语句【除声明变量之外】
//System.out.println("Hello World!");
//类体【记住】
/*
* public表示公开的
* static表示静态的
* void表示空
* main表示方法名为main
* (String[] args)是一个main方法的形式参数列表 args可以改变,但通常不变
*/
//需要记住的是:
//以下的方法是一个程序的“主方法”,是程序的执行入口
//是sun公司规定的,固定编写方式
public static void main(String[] args) {//表示定义一个公开的静态的主方法
//方法体
//方法体
//方法体
//Java语句【Java语句以“;”终止,分号必须是半角分号】
//先记住:以下这样代码的作用是向控制台输出一段消息
//以下的双引号必须是半角的双引号【是Java语法的一部分】
//Java中所有的“字符串”都使用双引号括起来
System.out.println("Hello World!");
//再向控制台输出消息
System.out.println("Hello liu!");
//输出中文
System.out.println("你好,刘!");
//输出中文【提醒:以下程序员两边的双引号是“全角的”
//这里的双引号不是Java语法的一部分,这里的全角的双引号只是一个普通的字符串】
System.out.println("我是一个“程序员”");
}
}
注:全角指的是中文形式下的输入,半角指英文形式下的输入
9.7 对HelloWorld程序进行解释
需要记忆 |
---|
public |
class |
static |
void |
system.out.println("");向控制台输出消息 |
类体 |
方法体 |
类体中不能直接编写java语句【除声明变量之外】 |
一个java语句必须以";" 结束 |
方法体中可以编写多条java语句 |
主方法是程序的入口,固定写法,SUN规定的 |
9.8 public class 和class的区别
一个java源文件当中可以定义多个class
一个java源文件当中public的class不是必须的
一个class会定义生成一个xxx.class字节码文件
一个java源文件当中定于公开的类的话,public的class只能一个,并且该类的名称必须和java源文件名称一致
每一个class当中都可以编写main方法,都可以设定程序的入口,向执行B.class中的main方法:java B
注意:当在命令窗口中执行java Hello,那么要求Hello.class当中必须有主方法。没有主方法会出现运行阶段的错误:
D: course\JavaProjects\02-JavaSE\day02>java Hello
错误:在类B中找不到主方法,请将主方法定义为:
public static void main (string [] args)
10.总结
第一章需要掌握的内容:
- 理解java的加载与执行
- 能够自己搭建java的开发环境
- 能够独立编写He1lowor1d程序,编译并运行
- 掌握环境变量path的原理以及如何配置
- 掌握环境变量classpath的原理以及如何配置
- java中的注释
- public class 和class 的区别