day01
一、计算机语言
人类语言: 人与人之间沟通交流的语言。 比如:汉语、英语、日语
计算机语言(编程语言): 人与机器之间沟通的语言。 比如:Java、Python、C等
二、Java语言
2.1 Java的历史
Java语言是Sun公司在90年代初看到了智能家居方向的前景,所以创造了一门语言Oak(橡树),主要用在电视机、电话、烤面包机等家用电器的控制和通信。但是市场反响不太好,所以就将此计划搁置了。后来又随着互联网的发展,Sun公司又将Oak给进行了改造,改造成了Java语言。1994年底,Sun公司的詹姆斯·高斯林在硅谷召开的“技术、教育和设计”大会上展示了第一个Java程序。1995年才发布了第一个测试版本 Java beta
2009年,Sun公司被Oracle公司收购了。所以Java也就属于了Oracle公司
Java之父:詹姆斯·高斯林
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CBAjKwvP-1620289316994)(img/image-20210406093601423.png)]
2.2 Java的版本
Java是一门语言,肯定是需要相应的软件去对Java语言进行解释运行。而既然是软件,那肯定会有相应的版本更新和迭代。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9EP1ih4E-1620289316996)(img/image-20210406094034940.png)]
Java 5:可变参数、泛型、枚举、自动装箱/拆箱等
Java 8:Lambda表达式、Stream API等 【上课要用的版本】
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iVMnRNTE-1620289316998)(img/image-20210406095210145.png)]
2.3 Java的平台版本
Java语言可以应用在很多地方,比如移动端、桌面端、网页端等。以上不同的地方被我们称为不同的平台,所以Java也分为了不同的平台版本。
Java SE(Java Standard Edition) Java标准版本:包含了Java全部的核心API,主要用来开发桌面端的程序。比如桌面端程序Eclipse就是使用Java语言开发的。 (目前第一阶段学习的是JavaSE,主要是为了后面学习JavaEE做铺垫)
Java ME(Java Micro Edition) Java最小版本:包含了Java部分核心API,并且增加了对移动端的支持,可以用来移动端的程序了。现在开发移动端的程序主要使用的Android和IOS相关技术。
Java EE(Java Enterprise Editon) Java企业版本:包含了Java全部的核心API,又增加了部分API,可以用来开发网页端程序。比如servlet、jsp等。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tu6PjF5f-1620289317001)(img/image-20210406101401259.png)]
2.4 Java的优点
开源: 开放源代码
跨平台性:
面向对象:(重点,第六天的时候会讲到)
编译性: 将Java源文件先编译成与平台无关的字节码文件(.class)
动态性: 在程序运行过程中,可以动态修改Java程序中的内容 (反射)
编译型语言和解释型语言:
编译型语言:写好源文件之后,需要通过特定的编译器将源文件给编译成当前操作系统能直接执行的程序。 比如:C语言
优点:效率高
缺点:不能跨平台
解释型语言:写好源文件之后,会通过解释器进行逐行的解释运行。 比如:Python语言
优点:可以跨平台性
缺点:效率低
Java语言是先编译然后再解释,所以Java语言同时具备了效率高和跨平台的优点。
2.5 Java的应用场景
-
手机应用
-
桌面程序
-
网站
-
爬虫
-
大数据
2.6 JVM、JRE和JDK
JVM(Java Virtual Machine) Java虚拟机: 用来解释运行符合jvm标准的语言。 比如:Java、Kotlin、Scala
JRE(Java Runtime Environment) Java运行时环境: Jre实际上就是由jvm及很多的类(类就是解决问题的)组成的类库结合而来的。作用就是用来提供环境来使Java程序运行。
JRE = JVM + 类库
JDK(Java Development Kit) Java开发工具包: 提供了开发Java程序所需要用到的工具。 比如:javac.exe java.exe javadoc.exe
JDK = JRE + 开发工具
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gJM23PUF-1620289317003)(img/image-20210406105453287.png)]
三、跨平台性
跨: 跨越
平台:操作系统
跨平台性:在一个操作系统上编译生成的字节码文件(.class),可以在其它任何操作系统平台上运行。
Write Once, Run AnyWhere(Everywhere)
一次编写,到处运行
一次编译,到处运行
原理:在一个操作系统上编译生成的字节码文件,可以在其它操作系统平台上运行是因为在不同的操作系统上安装了其对应的jvm虚拟机,由这些jvm虚拟机营造出来了相同的运行环境。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DuFGiD0m-1620289317005)(img/image-20210406135202918.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uak3k794-1620289317006)(img/image-20210406135709756.png)]
四、Java开发环境的搭建
实际上就是安装jdk。
4.1 下载
1. 官网
https://www.oracle.com/index.html
2. 通过百度搜索
jdk8 下载
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b7MeUTmD-1620289317007)(img/image-20210406140251543.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YWjwXrkJ-1620289317008)(img/image-20210406140439923.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hi8KdXjr-1620289317009)(img/image-20210406140550945.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X9q0nKn9-1620289317010)(img/image-20210406140852389.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZgqA5KrL-1620289317011)(img/image-20210406140933787.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WyNxbDAj-1620289317012)(img/image-20210406140954652.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ArPBFXdq-1620289317013)(img/image-20210406141030744.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CZ7eu1uu-1620289317013)(img/image-20210406141211936.png)]
4.2 卸载
进入控制面板进行卸载
4.3 安装
直接下一步即可。
注意:
1. 尽量不要安装在C盘
2. 安装路径之中尽量不要有特殊符号和中文
成功的标志:
在安装好的jdk的bin目录下打开dos窗口,然后输入java -version如果可以出来版本信息,那么证明安装成功了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FlrwGyGY-1620289317014)(img/image-20210406142325854.png)]
4.4 安装目录的简要介绍
五、配置环境变量
因为我们想要使bin目录下的开发工具可以在电脑上的任何地方使用。所以我们需要配置环境变量
解决方案:只需要将bin目录放置在环境变量的path中即可。
5.1 path在哪
配置在path中的目录中的内容可以在电脑上的任何地方被访问到
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fIFoKTtC-1620289317015)(img/image-20210406144820462.png)]
5.2 第一种配置方式
直接将bin目录放置在path中,并在目录的后面加上一个英文状态的分号
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7jYhArj-1620289317016)(img/image-20210406145134404.png)]
5.3 第二种配置方式
1. 先在系统变量中新建一个变量,变量名为 JAVA_HOME 变量值为 jdk的安装路径
2. 通过%JAVA_HOME%将变量值取出来,后面加上\bin;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0KG0JPL1-1620289317017)(img/image-20210406145745190.png)]
六、第一个Java程序HelloWorld
6.1 开发流程
【编辑】 编写源代码,此代码放在后缀为java的文件中(.java)
【编译】 用jdk提供的开发工具javac.exe编译源文件(此源文件要带上扩展名.java),生成一个字节码文件(.class)
【运行】 用jdk提供的开发工具java.exe运行类
【调试】 发现并定位问题,然后解决问题
6.2 编辑HelloWorld源代码
1. 在任何地方创建一个文本文档,并将此文本文档的扩展名从.txt修改为.java,并将此文件命名为HelloWorld。也就是说文件名为HelloWorld.java
2. 右键此文件然后编辑打开此文件,然后在此java文件中定义一个类。
类相当于是一个房间,房间中可以放很多东西
注意:此类名一定要和文件名保持一致
class 类名 {
}
3. 在类中定义主方法
主方法就相当于是房间的门,也就是类的入口(并且是唯一的入口)
public static void main(String[] args) {
}
4. 在主方法中定义一个输出语句
输出语句相当于是房间中的床,这个床上可以放上不同的人去睡觉
System系统 . 的 out输出 . 的 println 换行打印的 ()里面放上需要打印的内容
System.out.println("HelloWorld!!!");
6.3 编译HelloWorld源文件
格式:
javac 源文件(带扩展名)
如:
javac HelloWorld.java
6.4运行HelloWorld类
格式:
java 类名
如:
java HelloWorld
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zEN7gdNd-1620289317018)(img/image-20210406151612064.png)]
class HelloWorld {
public static void main(String[] args) {
System.out.println("HelloWorld!!!");
}
}
七、Java常见的开发规范
1. 左大括号的左边要加一个空格
2. 左大括号的右边要换行加缩进
3. 不同的代码之间要换行
4. 右大括号要和本层次的代码对齐
5. 运算符的两侧要加上空格
注意:写大括号、小括号、单引号、双引号等的时候尽量一次写完,不要分开写
八、常遇到的问题
1. javac不是内部或外部命令,也不是可运行的程序或批处理文件
解决方案:配置环境变量
2. 找不到文件
解决方案:在文件的目录下打开dos窗口,否则会找不到文件
3. String和System的S是大写的,千万别写成小写的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kXmf1GH8-1620289317019)(img/image-20210406160341867.png)]
4. main方法错误的写成了mian方法,导致程序运行的时候找不到main方法而报错
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B7sUucds-1620289317020)(img/image-20210406160623260.png)]
5. 被public修饰的类,类名和文件名一定要保持一致
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-41r2KUmO-1620289317020)(img/image-20210406160806223.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ylSjb1kn-1620289317021)(img/image-20210406160954389.png)]
6. 一个类如果没有被public修饰,那么类名和文件名可以不一致。但是并不建议这么写
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1odztSRG-1620289317022)(img/image-20210406161219632.png)]
致程序运行的时候找不到main方法而报错
[外链图片转存中...(img-B7sUucds-1620289317020)]
- 被public修饰的类,类名和文件名一定要保持一致
[外链图片转存中...(img-41r2KUmO-1620289317020)]
[外链图片转存中...(img-ylSjb1kn-1620289317021)]
- 一个类如果没有被public修饰,那么类名和文件名可以不一致。但是并不建议这么写
[外链图片转存中...(img-1odztSRG-1620289317022)]