Java入门&IDEA&基础语法
今日目标:
- 能够完成JDK和IDEA的安装
- 能够知道Java程序开发流程
- 能够完成Java环境变量的配置
- 能够使用IDEA进行Java程序的开发
- 能够根据需求完成变量的定义和使用(包括输出和修改)
- 能够知道注释,字面量,关键字,标识符的作用
1:Java入门
1.1 Java简介
下面我们正式进入Java的学习,在这里,大家第一个关心的问题,应该就是Java是什么,我们一起来看一下:
Java是什么:
- Java是一门非常优秀的计算机语言
- 语言:人与人交流沟通的表达方式
- 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言
- Java之父:詹姆斯·高斯林(James Gosling)
知道了Java是什么之后,大家就会想,我们学完Java可以做什么呢?下面,我们就来聊一聊,
Java的三大技术平台:
1:JavaSE
2:JavaME
3:JavaEE
知道了Java是什么,以及可以做什么之后,我们来说一下这一块的课程安排:
要开发一个Java程序,我们得安装JDK,而要安装JDK,我们得先有JDK,所以,我们会先来讲解JDK的下载和安装JDK的下载和安装讲解完毕之后,我们就可以进行Java程序的开发了,
这里我会带着大家一起开发第一个Java程序,而大家在练习的过程中可能会出现一些小问题,所以,在大家练习后,我们会讲解一下开发中的常见问题。
最后呢,我们还会讲解两个小知识,一个是常用DOS命令,一个是Path环境变量,让大家对前面使用过的一些工具能够做到知其然并知其所以然。
1.2 JDK的下载和安装
下面呢,我们来学习JDK的下载与安装,在讲解JDK的下载与安装之前呢,我们先对JDK做一个介绍:
JDK:(JavaDevelopment Kit):Java开发工具包,也就是说必须要有JDK才能开发Java程序
所以,我们得先安装了JDK,然后才能进行Java程序的开发。
了解了JDK是什么之后,我们再来对JDK的版本做一个说明:
这么多的版本,大家不用记,了解即可。知道三个版本就可以了,这里我们标红了:JDK8,JDK11,JDK17。JDK8是企业用的最多的版本,JDK11和JDK17是后续长期支持更新的版本。
了解了JDK的版本之后,下面呢,我们来学习JDK的下载。
JDK的下载:
- 通过官方网站获取JDK(https://www.oracle.com/)
- 直接下载地址: https://www.oracle.com/java/technologies/javase-downloads.html
- 注意:针对不同操作系统,下载对应的JDK
JDK下载图解
下载完成后,在本地可以看到下载好的软件:
JDK下载好之后,下面我们就要来安装JDK了。
JDK的安装:
关于安装,这里我们说两点:
JDK安装图解:
第一步:双击启动下载好的JDK软件,在弹出框界面选择是
第二步:看到如下界面,点击下一步
第三步:看到如下界面,不要着急安装,因为它默认会安装到C:\Program Files下面,在这里点击更改
第四步:看到如下界面,修改安装路径
修改路径后的界面如下,然后点击确定
第五步:看到如下界面,点击下一步,等待安装
第六步:看到如下界面,说明安装成功,点击关闭即可
JDK安装完成后,我们到安装目录下去看看JDK的安装目录:
JDK目录解释: ★
到此,我们就完成了JDK的安装,大家赶快根据老师提供的JDK软件,完成JDK的安装吧。
1.3 第一个程序
JDK安装完毕后,下面我们来开发自己的第一个Java程序。
首先,我们来说一下,Java程序的开发流程:
开发一个Java 程序,需要三个步骤:编写程序,编译程序,运行程序。如图
知道了Java程序的开发流程后,下面我们来实现第一个程序:
第一步:编写程序
① 在D盘根目录下新建一个文本文档文件,修改文件名为HelloWorld.java
② 选中HelloWorld.java文件,用Windows系统自带的记事本打开
③ 书写如下程序内容
④ 保存文件:Ctrl+s
注意:
- 文件后缀名是.java,文件类型是java文件
- 文件名和代码中类名一致
如果后缀名还是文本文档文件,需要按照下面的步骤,勾选文件扩展名
程序编写完毕后,要进行编译和运行程序。而编译和运行程序目前需要在DOS窗口下进行,因此我们先说一下如何打开DOS窗口
说完了如何打开DOS窗口,接下来,我们来学习编译和运行程序。
第二步:编译程序 javac 文件名.java ★
- 格式:javac 文件名.java
- 范例:javac HelloWorld.java
第三步:运行程序 java 类名 ★
- 格式:java 类名
- 范例:java HelloWorld
如图所示:
最终再控制台输出了:HelloWorld。到此第一个程序开发完毕。大家赶快动手练习吧。
1.4 常见问题
刚才大家在练习的过程中,有些同学出现了一些小问题,这里呢,我们来讲解一下常见的两个小问题:
1:单词拼写问题
2:中英文符号问题
而关于中英文符号问题,早期的windows系统报错信息如下:
这两个常见的小问题呢,大家了解一下即可,因为很快我们将会使用一款非常优秀的开发工具,这些问题将不会存在了。但是,如果出现类似的问题,我们要学会阅读并解决问题。
最后,再给大家补充一个小知识,JDK11的新特性:
JDK11开始支持 java命令直接运行.java文件
- 格式:java 文件名.java
- 范例:java HelloWorld.java
有同学可能不小心这样写了,不知道为什么,这里我们就给大家统一说明一下。到此,关于第一个程序的常见问题我们就先说到这里。
1.5 常用DOS命令
在后续开发中,我们有些时候需要在DOS窗口,也就是我们前面见到的黑窗口下进行一些操作,所以,我们要掌握一些常用的操心命令。
而这些命令,又需要在黑窗口下运行,所以,这里我们先讲解如何打开DOS窗口,这里我们讲解两种常见的方式:
- 直接在地址栏输入cmd,回车即可
- 通过运行窗口打开
第一种方式,我们已经用过了。这里我们重点说第二种方式,通过运行窗口打开:
① 按下win+R
② 输入cmd
③ 按下回车键
这样,我们就通过运行窗口打开了DOS窗口。下面呢,我们来学习常用的DOS命令。
根据老师的讲解,大家练习一下常用的DOS命令吧。
1.6 Path环境变量
前面我们使用过JDK的bin目录下的javac和java命令,为什么我们能够直接使用呢?这里我们来讲解一下原理。而要讲解这个原理,我们就不得不提一下Path环境变量。
Path环境变量的作用:
- 它提供了windows命令行中指令的可执行文件(比如:.exe文件)路径,让我们在命令行中输入命令时,能够找到对应的可执行文件执行
- 简单说:让命令在命令行中使用有效
为了让大家更好的理解这句话,我们来做一个操作,验证一下:
- 在Path环境变量中配置QQ软件的命令行方式启动
- C:\Program Files (x86)\Tencent\QQ\Bin
如何配置呢?按照下图配置即可
配置完毕之后,我们到DOS窗口中,通过qq指令,就可以启动QQ软件了。
由此可见,我们把.exe文件所在的路径配置到Path环境变量中,就可以使用.exe结尾的指令来启动程序了。这个时候,我们来说一下,为什么开始的时候我们能够直接使用javac和java指定了。
但是,由于这种配置,只配置了较少的命令,而我们在JDK的bin目录下还有很多的命令可以使用,比如:jps,jpackage,jmap等。所以,我们要自己配置JDK的环境变量,为了后续的一些软件能够找到JDK的安装目录,我们分两步来完成Java环境变量的配置:
第一步:配置JAVA_HOME变量
第二步:编辑Path变量
到此,我们就知道了环境变量的原理,并且完成了自己配置Java的环境变量。
2:IDEA
前面在讲解第一个程序的常见问题的时候,我们说过了,会讲解一款非常优秀的开发工具,就是这里我们要讲解的IDEA。下面我们说一下这一块的课程安排
首先,我们来讲解IDEA的概述和安装。
2.1 IDEA概述和安装
那什么是IDEA呢?
**IDEA:**全称Intellij IDEA,是用于Java语言开发的集成环境,是业界公认的目前用于Java程序开发最好的工具
**集成环境:**把代码编写,编译,运行,调试等多种功能综合到一起的开发工具
举例说明,我们前面开发一个Java程序,需要下面这些工具的配合:
而我们现在开发一个Java程序,只需要一个工具就可以了:
它把代码编写,编译,运行,调试等多种功能综合到一起了,这就是集成开发环境。除了IDEA以外,还有下面几种常见的用于Java程序开发的集成环境:
知道了IDEA是什么后,下面我们来说一下IDEA的下载和安装。
IDEA的下载和安装:
**下载:**https://www.jetbrains.com/idea
**安装:**建议修改安装路径
安装图解:可以根据如下步骤完成IDEA的安装
学完了IDEA的安装后,大家赶快动手安装一下吧。
2.2 IDEA中HelloWorld
安装完IDEA后,下面我们就来使用IDEA完成HelloWorld案例。
首先,我们来启动IDEA,启动的时候还有一些基本的配置,一起来看一下:
第一步:双击桌面上的IDEA图标,选择Do not import settings,点击OK
第二步:看到如下界面
选择:Evaluate for free,点击Evaluate
第三步:看到如下界面,点击Continue
第四步:看到如下界面,启动配置成功
接着,我们来完成HelloWorld案例:
这里先介绍下IDEA中的代码结构:
接着,我们说一下IDEA中完成HelloWorld案例的基本流程:
① 新建一个空项目(javase_code)
② 新建一个新模块(idea_test)
③ 在idea_test模块的src下新建一个包(com.itheima)
④ 在com.itheima包下新建一个类(HelloWorld)
⑤ 在HelloWorld类中编写代码(main回车,sout回车)
⑥ 在IDEA中运行HelloWorld
下面,我们就一起来完成IDEA中HelloWorld案例的编写,编译和运行
① 新建一个空项目(javase_code):
第一步:点击New Project
第二步:选择Empty Project,点击Next
第三步:修改项目名称,修改项目存储路径,点击Finish,弹出一个窗体,然后点击Create
第四步:看到如下界面,空项目创建成功
② 新建一个新模块(idea_test)
第一步:选择File,点击Project Structure…
第二步:在弹出的窗体中,按照1,2,3的步骤选择,来新建一个模块
第三步:在弹出的窗体中,默认选择Java模块,JDK选择的也是17,点击Next即可
第四步:在弹出的窗体中,修改模块名称,点击Finish
第五步:然后点击OK即可
这样我们建好了一个模块:
③ 在idea_test模块的src下新建一个包(com.itheima)
第一步:展开模块,按照1,2,3的步骤选择,来新建一个包
第二步:在弹出框里面输入包名,然后回车即可
这样我们建好了一个包:
④ 在com.itheima包下新建一个类(HelloWorld)
第一步:选中com.itheima这个包,按照1,2,3的步骤选择,来新建一个类
第二步:在弹出框里面输入类名,然后回车即可
这样我们建好了一个类:
⑤ 在HelloWorld类中编写代码(main回车,sout回车)
在类中编写代码,可以手动编写,也可以采用快捷方式编写
⑥ 在IDEA中运行HelloWorld
在代码中,右键选择Run ‘HelloWorld.main()’ 运行
在控制台输出了结果:
这样我们就完成了IDEA中HelloWorld案例。
回顾一下图中内容:
大家赶快动手练习一下吧。
2.3 IDEA中基本配置&注释
刚才我在讲解代码的过程中,有同学可能觉得看的不是很清楚,那下面呢,我们就来对IDEA进行两个基本的设置:
第一个:修改背景主题为白色
第二个:修改字体大小
按照1,2,3,4进行设置即可
至于其他的设置,后面我们用到的时候再去讲解。
讲解完IDEA的这两个基本设置后,下面,我们说一下注释,那什么是注释呢?
- 注释是指在程序中添加的说明性信息
- 注释不参与程序运行,仅起到说明作用
这里我们再来介绍一下注释的分类:
了解了注释的作用和分类后,下面我们来对前面讲解过的HelloWorld案例添加注释:
/*
Java程序中最基本的组成单位是类
类的定义格式是:
public class 类名 {
}
*/
public class HelloWorld {
/*
这是main方法
main方法是程序的入口方法,代码的执行是从main方法开始的
*/
public static void main(String[] args) {
//这是输出语句,能够将""里面的内容输出到控制台,并且""里面的内容是可以修改的
System.out.println("HelloWorld");
System.out.println("Java");
}
}
有了注释以后,我们再来看这段代码,明显就容易理解了。后面大家自己在编写代码的时候,也要多写写注释,在实际开发中,我们编写的程序也是要添加注释的。
这样既方便自己阅读,也方便别人阅读。
2.4 IDEA中常用快捷键
为了提高我们后续写程序的效率,这里呢,我们来讲一些IDEA中常用的快捷键:
-
快速生成main方法和输出语句
- main方法:main或者psvm,回车
- 输出语句:sout,回车
-
常用快捷键
- Ctrl+D:复制数据到下一行
- Ctrl+X:剪切数据,可以用来删除所在行
- Ctrl+Alt+L:格式化代码,建议自己写代码的时候就注意格式
- Ctrl+/:对选中的代码添加单行注释,如果想取消注释,再来一次即可
- Ctrl+Shift+/:对选中的代码添加多行注释,如果想取消注释,再来一次即可
根据老师的讲解,大家练习一下常用的快捷键吧。
2.5 IDEA中模块操作
IDEA的基本使用我们掌握了,最后呢,我们再来说一下,IDEA中的模块操作,而关于模块操作呢,分为三种:
- 新建模块
- 删除模块
- 导入模块
下面我们分别来操作一下。
**新建模块:**HelloWorld案例中讲解过了,这里就不再讲解了,想不起来了,翻到上面去看看
**删除模块:**删除模块又分为从工作区删除和从硬盘删除,你可以根据自己的需要,选择对应的方式进行删除
导入模块:
建议把模块复制到空项目所在路径下,然后找到新建模块的地方,只不过这一次不是新建模块,而是导入模块,所以,要选择Import Module
找到要导入的模块,点击OK
然后一路next,直到出现如下的界面,点击Overwrite即可
看到下面的界面,点击Finish
最后点击OK即可
这样我们就成功的导入了一个模块:
导入模块的注意事项:
- 把模块复制到空项目所在路径下
- 出现如下错误,知道如何处理
到此,关于IDEA的模块操作我们就讲完了。
3:基础语法
下面呢,我们来学习Java基础语法部分的知识,这些内容是我们后面编写程序的基本功,所以呢,大家得好好学习,下面我们说一下这一块的课程安排:
至于这5个小知识,我们该怎么用,下面呢,我们分别来讲解,首先,我们学习字面量。
3.1 字面量
那什么是字面量呢?
- 直接写出来的人可以理解的数据,在java中叫做字面量
- 举例:“HelloWorld”,666,13.14
那Java中有哪些类型的字面量呢?
知道了Java中的字面量后,下面我们到IDEA中去演示一下字面量的使用:
/*
字符串字面量: 用双引号括起来的内容。"HelloWorld","黑马程序员"
整数字面量: 不带小数的数字。666,-88
小数字面量: 带小数的数字。13.14,-5.21
字符字面量: 用单引号括起来的内容。'A','0','我'
布尔字面量: 布尔值,表示真假。true,false
*/
public class LiteralDemo {
public static void main(String[] args) {
//字符串字面量
System.out.println("HelloWorld");
System.out.println("你好");
//整数字面量
System.out.println(666);
System.out.println(-88);
//小数字面量
System.out.println(13.14);
System.out.println(-5.21);
//字符字面量
System.out.println('A');
System.out.println('0');
System.out.println('我');
//布尔字面量
System.out.println(true);
System.out.println(false);
}
}
讲解完毕之后,大家赶快动手练习一下吧。
3.2 数据类型 ★
刚才我们学习了字面量,而Java是一种强类型语言,针对每种数据都给出了明确的数据类型,那我们刚才学习的几种字面量分别应该是什么类型的呢?
那为什么会有不同的数据类型呢?因为
- 不同的数据类型分配了不同的内存空间
- 不同的内存空间,所存储的数据大小是不一样的
在讲解不同的数据类型前,这里我们先普及一个小知识,就是字节的概念:
计算机中存储数据的最小单位是:字节(byte),用B表示。
我们可以看一下硬盘存储的文件:以字节为单位
为了帮助大家更好的理解字节这个单位,我们来说一下,常见的存储单位:
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024B
这样呢,我们对字节就能有一个基础认知。有了一个基础的认知之后,我们再来说Java中的数据类型
今天我们重点学习的是基本数据类型,关于引用数据类型,后面我们会重点学习。
在这里,我们给出每种基本数据类型的内存占用和取值范围,大家了解一下:
**说明:**E+38表示:乘以10的38次方。同理E-45表示:乘以10的负45次方
整数默认是:int类型
浮点数默认是:double类型
这样呢,我们就了解了Java中的8种基本数据类型,以及每种数据类型占用字节的情况和取值范围。关于数据类型,我们就先讲到这里。
3.3 变量
学完后数据类型后,下面呢,我们来学习Java中非常重要的一个知识:变量。
那为什么要有变量呢?看这里,我们写了一段代码,在控制台显示商品的促销活动:
结果,老板觉得,这个价格有点高,怕销售不好,所以决定再降100元,要求把所有的998的地方修改为888。于是你就开始改代码,改完之后如下:
结果呢?老板又觉得不划算,让你还是改回998吧,这个时候,你就要哭了。还好要修改的地方不多,要是有很多地方都要进行类似的操作,那多麻烦啊,有没有简化的方式呢?
答案当然是有的,我们找一个空间存储数据:888,并给它起个名字:price
这样我们的代码就可以写成这个样子:
如果要修改price里面的数据,我们只需要修改一处就可以了,代码不需要改动,但是却实现了任意修改price的效果。
其实,这就是Java中的变量技术。有了它之后,我们就可以把变化的数据用一个变量存储,代码正常编写即可,如果需要修改数据,我们修改变量的值就可以了。那什么是变量呢?
- 变量就是内存中的存储空间
- 空间中存储的数据是可以发生改变
知道了,什么是变量后,下面我们来说一下变量的定义格式:
-
格式:数据类型 变量名 = 变量值;
-
范例:int price = 998;
根据变量名进行使用,可以输出,也可以修改值
了解了变量的定义格式和使用方式后,下面我们到IDEA中去演示一下:
/*
格式:数据类型 变量名 = 变量值;
*/
public class VariableDemo01 {
public static void main(String[] args) {
//定义一个int类型的变量,用来表示价格
int price = 998;
//输出变量
System.out.println(price);
//修改变量的值
price = 888;
//再次输出变量的值
System.out.println(price);
}
}
学完了变量的定义,输出使用和修改值使用后,大家赶快动手练习一下吧。
3.4 变量的案例
了解了变量的定义和基本使用后,下面我们来做两个案例,熟悉一下变量的使用:
3.4.1 手机信息描述
需求:分析下图指定数据,看看哪些可以通过变量表示,并思考采用那种数据类型,最后通过程序实现
指定数据:京东价,重量,颜色
分析:
① 京东价,重量,选择颜色这些字都是固定的,但是他们后面的数据是变化的,所以要用变量表示
② 价格,可以用double或者int类型来表示,这里我们用int类型表示;
重量,用double类型表示;颜色,用String类型表示
分析完毕之后,下面我们到IDEA中去实现一下:
/*
手机信息描述
*/
public class VariableTest01 {
public static void main(String[] args) {
//定义秒杀价变量
double price = 3599.00;
//定义颜色变量
String color = "蓝色";
//定义版本变量,纪录的是内存大小
int size = 8;
// System.out.println(price);
// System.out.println(color);
// System.out.println(size);
//为了输出效果好看一些,我加上一些内容
System.out.println("秒杀价是:"+price);
System.out.println("你选择的颜色是:"+color);
System.out.println("你选择的版本是:"+size);
//字符串字面值+任意的数据=字符串数据
}
}
讲解完毕后,大家赶快动手练习一下吧。
3.4.2 疫情防控信息采集表
需求:分析右图信息,并通过程序实现
通过上图数据,我们可以根据变化的数据,提取出下图:
分析:
① String name = “风清扬”;
② int age = 36;
③ char gender = ‘男’; 也可以采用String类型表示
④ double temperature = 36.2;
⑤ boolean flag = true; 也可以采用char或者String表示
分析完毕之后,下面我们到IDEA中去实现一下:
/*
疫情防控信息采集表
*/
public class VariableTest02 {
public static void main(String[] args) {
//定义变量
String name = "风清扬";
int age = 18;
char gender = '男';
double temperature = 36.2;
boolean flag = true;
//输出数据
System.out.println("姓名是:" + name);
System.out.println("年龄是:" + age);
System.out.println("性别是:" + gender);
System.out.println("体温是:" + temperature);
System.out.println("是否接种过疫苗:" + flag);
}
}
讲解完毕后,大家赶快动手练习一下吧。
3.5 变量的注意事项 ★
关于变量的使用呢,我们讲解几个小的注意事项,大家了解一下,这样呢,遇到变量的问题后,大家就可以知道如何解决了。
变量的注意事项:
- 变量名不能重复
- 变量未赋值,不能使用
- 定义long类型变量,数据后面加L
- 定义float类型变量,数据后面加F
IDEA中代码演示如下:
/*
变量使用的注意事项
*/
public class VariableDemo02 {
public static void main(String[] args) {
int age = 10;
// int age = 20;
// int money;
money = 20;
// System.out.println(money);
long money = 1000000000000L;
float price = 12.34F;
}
}
讲解完毕后,大家赶快动手练习一下吧。
3.6 关键字
下面我们来学习一个小的知识点:关键字。
首先,我们得知道什么是关键字:
**关键字:**就是被Java语言赋予了特定含义的单词
我们先来看一下,曾经写过的代码中,出现的关键字:
了解了什么是关键字后,我们来说一下关键字的特点:
- 关键字的字母全部小写
- 常用的代码编辑器,针对关键字有特殊的颜色标记,非常直观
知道了关键字的特点后,这里我们给大家看看Java中的关键字:
虽然比较多,但是大家不用担心。因为:关键字,我们不需要专门记忆。这些关键字我们在开发中比较常用的,写的多了,你自然就记住了。好了,Java中的关键字我们就先讲到这里。
3.7 标识符
下面呢,我们来讲解基础语法部分最后一个知识:标识符。
首先,我们来说一下什么是标识符:
**标识符:**就是给类,方法,变量等起名字的符号
比如,我们前面写类的时候,起的名字:HelloWorld,变量的时候,价格,price等,这就是标识符。
那这个符号你能随便写呢,当然是不能的,这里我们来看一下标识符的组成规则:由数字、字母、下划线(_)和美元符($)组成
了解了组成规则后,这里我们还得说一下注意事项:
- 不能以数字开头
- 不能是关键字
- 区分大小写
判断下面哪些标识符不符合规则
bj b2 2b _2b class helloworld
按照我们讲解的规则,大家应该能够判断出来:2b和class是不符合规则的。
知道了标识符的组成规则和注意事项后,这里我们再说一下起名字常用的命名约定:
- 小驼峰命名法
- 约定1:标识符一个单词的时候,首字母小写
- 范例1:name
- 约定2:标识符是多个单词的时候,第一个单词首字母小写,其他单词首字母大写
- 范例2:firstName
- 大驼峰命名法
- 约定1:标识符一个单词的时候,首字母大写
- 范例1:Hello
- 约定2:标识符是多个单词的时候,每个单词首字母大写
- 范例2:HelloWorld
一般来说,小驼峰命名法适用于对方法,变量等起名字。大驼峰命名法适用于对类,接口等起名字。
最后再强调一点,就是我们起名字,最好能够做到:见名知意
比如,我们前面讲解过的变量的案例中,我们起的名字就做到了见名知意。
好了,到此关于标识符我们就先讲到这里。
1 简答题
1.1 请说明 Java 是哪一年在哪家公司所诞生的, 如果现在要下载 JDK , 到哪个官网进行下载呢 ?
答: Java在1995年诞生在Sun公司, 但是后来被Oracle收购了, 所以现在要下载JDK可以到Oracle的官网下载
www.oracle.com
1.2 简述 Java 语言的三个平台版本, 以及各自的开发方向 ?
JavaSE : 是其他两个版本的基础, 可以用于制作桌面应用
JavaME : 嵌入式消费电子设备, 例如早期Nokia手机中的一些Java程序, 就是JavaME开发的
JavaEE : web方向网站的开发
1.3 简述 JDK, JRE, JVM 三者的关系和各自的作用 ★
JVM : Java虚拟机, 是运行Java程序的平台或者说载体
JRE : Java运行时环境, 内部包含了JVM, 以及核心类库(已经写好的代码)
JDK : 开发工具包, 内部包含了JRE, 以及开发常用的工具, 例如 javac.exe java.exe
1.4 聊聊你对 Path 环境变量的看法, 解释下我们为什么要将 JDK 配置到 Path 当中
将程序的完整路径配置到Path之后, 就可以在任意目录下进行访问了, 使用方便
将JDK配置到Path中, 也是为了使用方便.
1.5 简述编写 Java 代码的三个步骤, 中途需要用到 JDK 的哪些工具命令呢 ? 工具命令又是怎样的用法呢 ?
1. 编写代码 : 将代码写到 .java的源文件中
2. 编译代码 : 使用javac.exe(编译工具)对源文件进行编译, 从而产生.class字节码文件
使用方式: javac Xxx.java
3. 运行代码 : 使用java.exe(运行工具)运行字节码文件
使用方式: java Xxx
运行的时候, 不要带后缀.class
两个工具的使用, 需要在DOS中, 通过指令进行使用.
1.6 述下注释的作用, 以及注释的分类和格式
注释: 在程序的指定位置添加的说明性信息, 简单来说就是对代码的一种解释说明, 代码中加入注释后, 可以提高程序的阅读性
分类:
单行注释: // 注释信息
多行注释: /* 注释信息 */
文档注释: /** 注释信息 */
1.7 请使用注释描述, 以下两段代码的作用
public static void main(String[] args){
}
描述: main方法, 也叫主方法, 是程序执行时的入口点
如果类中没有编写主方法, 编译的时候没有问题, 运行的时候就会报出错误, 找入到入口
System.out.println("HelloWorld");
描述: 打印语句, 也叫输出语句, 其效果是让程序在控制台打印出 () 中包裹的内容
1.8 请描述 Java 基本数据类型的 8种, 分别是什么 ?
整数:
byte 1个字节
short 2个字节
int 4个字节
long 8个字节 定义long类型变量的时候, 要加入L的标识
小数:
float 4个字节 定义float类型变量的时候, 需要加入F的标识
double 8个字节
字符:
char 2个字节
布尔:
boolean 1个字节
1.9 简述下什么是标识符, 在定义标识符的时候, 应该满足哪些规则和规范呢 ?
标识符: 简单来说就是自己给类, 变量...起名字的符号
规则:
字母 a~z A-Z
数字 0~9
特殊符号 _ $
数字不能开头, 不能是Java中的关键字
规范:
小驼峰命名法(变量): 如果是一个单词, 所有字母小写, 如果是多个单词, 从第二个单词开始, 首字母大写
例如: age maxAge
大驼峰命名法(类): 如果是一个单词, 首字母大写, 如果是多个单词, 每个单词首字母大写
例如: Student GoodStudent
2 编程题
2.1 编程题目一
// 通过class关键字定义了一个类, 类名叫做Work1
public class Work1 {
// 编写主方法, 程序执行时的入口点
public static void main(String[] args){
// 通过两条打印语句, 完成需求要打印的内容
System.out.println("不肯下一点功夫,永远不会明白自己从何而来,又将立足于何处");
System.out.println("很多聪明人之所以没有成功,缺少的不是智慧,而是那种为成功而拼搏的干劲");
}
}
2.2 编程题目二
public class Work2 {
public static void main(String[] args) {
// 将要使用到的数据, 定义出变量
String name = "老鹰乐队";
String genre = "流行";
String album = "选集";
String medium = "CD";
int count = 3;
long barCode = 9787799881720L;
String isar = "CNE260866700";
double score = 9.7;
// 将变量所记录的数据, 打印出来
System.out.println(name);
System.out.println(genre);
System.out.println(album);
System.out.println(medium);
System.out.println(count);
System.out.println(barCode);
System.out.println(isar);
System.out.println(score);
}
}
2.3 编程题目三
public class Work3 {
public static void main(String[] args) {
String name1="普京";
String name2="韩红";
int n1=180;
int n2=70;
System.out.println("我心目中的男神是"+name1+",我心目中的女神是"+name2);
System.out.println("我的身高是" + n1 + "cm");
System.out.println("我的体重是" + n2 + "kg");
}
}
day01.[环境变量,HelloWorld]
1.会常用的dos命令
2.会安装java所需要的环境(jdk)
3.会配置java的环境变量
4.知道java开发三步骤
5.会java的入门程序(HelloWorld)
6.会三种注释方式
7.知道Java入门程序所需要注意的地方
8.知道println和print的区别
第一章 Java概述
1.1 JavaSE课程体系介绍
JavaSE知识图解
JavaSE知识模块介绍 ★
-
第一部分:计算机编程语言核心结构:
数据类型
、运算符
、流程控制
、数组
、…(没有为啥,按照格式定义)
-
第二部分:Java面向对象核心逻辑:
类和对象
、封装
、继承
、多态
、抽象
、接口
、…JAVA核心编程思想(面向对象),很多功能别人已经给我们实现好了,我们直接调用这个对象的功能就可以了,
让代码变得简单了,简洁了
-
第三部分:JavaSE核心高级应用:
集合
、I/O
、多线程
、网络编程
、反射机制
、… -
第四部分:Java新特性:
Lambda表达式
、函数式编程
、新Date/Time API
、接口的默认、静态和私有方法
、… -
第五部分:MySQL/JDBC核心技术:
SQL语句
、数据库连接池
、DBUtils
、事务管理
、批处理
、…
1.2 计算机语言介绍(了解)
计算机编程语言是什么
所谓计算机编程语言,就是人们使用编程语言对计算机下达的命令,让计算机完成人们需要的功能。
翻译:所谓的计算机编程语言,就是计算机能看懂的语言,我们需要学习这些计算机编程语言,给计算机下达指令,让计算机给我们完成一些功能
计算机语言发展
-
第一代:机器语言(计算机很庞大,都是0和1组成的指令,而且需要同时按下多个键才能完成一个指令,而且用0和1组成的一个一个指令,所以工程师们就要记住0和1的各种组合以及对应的指令)
-
第二代:汇编语言(面向机器的语言,因为直接面对机器需要记一些 0 和1 的指令,很痛苦,所以就出现了很多助记词,比如:add.汇编语言现在还在使用,接近于机器语言,越接近机器语言,速度越快,而且最终还是转成0和1存储)
-
第三代:高级语言(更接近我们人类语言,常见的有很多,比如C语言,java等)
不管是第几代语言,最终都会向0和1靠近,因为CPU只认识0和1 电脑上所有的内容,都是通过CPU将0和1转换而来的
计算机语言排行榜
计算机语言走势
[外链图片转存中…(img-3AYRGJNA-1719388453124)]
1.3 Java语言概述(了解)
Java生态圈
**Java是目前应用最为广泛的软件开发平台之一。**随着Java以及Java社区的不断壮大,Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。
**作为一个平台,**Java虚拟机扮演着举足轻重的作用。除了 Java语言,任何一种能够被编译成字节码的计算机语言都属于Java这个平台。Groovy、Scala、 JRuby、Kotlin等都是Java平台的一部分,它们依赖于Java虚拟机,同时,Java平台也因为它们变得更加丰富多彩。而且Java还可以跨平台
**作为一种文化,**Java几乎成为了 “开源”的代名词。在Java程序中,有着数不清的开源软件和框架。如Tomcat、Struts, Hibernate, Spring,MyBatis等。就连JDK和JVM自身也有不少开源的实现,如OpenJDK、Apache Harmony。可以说,“共享”的精神在Java世界里体现得淋漓尽致。
**作为一个社区,**Java拥有全世界最多的技术拥护者和开源社区支持,有数不清的论坛和资料。从桌面应用软件、嵌入式开发到企业级应用、后台服务器、中间件,都可以看到Java的身影。其应用形式之复杂、参与人数之众多也令人咋舌。可以说,Java社区已经俨然成为了一个良好而庞大的生态系统。其实这才是Java最大的优势和财富。
Java 是最好的语言吗?
不是,因为在每个领域都有更合适的编程语言。
-
C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。C里面有一个编译器,会将系统软件变成机器语言,让硬件识别,和硬件做交互.C++ 是面向对象的 C 语言,一直在不断的改进。
-
JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳。近年来的 Node.js 又在后端占有一席之地。
-
Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。现在Python也被用于web开发、科学计算和统计、人工智能、网络爬虫等
-
Ruby 强于 DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。
-
Erlang 就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。
-
Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如 Docker、Kubernetes 等。
-
编写网页用 PHP,函数式编程有 Lisp,编写 iOS 程序有 Swift/Objective-C。
-
R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法
-
SQL 是用于访问和处理数据库的标准的计算机语言, 这类数据库包括:MySQL,Oracle, Sybase, SQL Server, DB2, Access 等等
一句话概括,能留在排行榜之上的语言,都是好的语言,在其所在的领域能做到最好。
Java语言发展历史
Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购。
Java之父是詹姆斯.高斯林(James Gosling)。
詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
1996年发布JDK1.0版。
目前最新的版本是Java17。我们学习的Java8以及jdk17。
发行版本 | 发行时间 | 备注 |
---|---|---|
Java | 1995.05.23 | Sun公司在Sun world会议上正式发布Java和HotJava浏览器 |
Java 1.0 | 1996.01.23 | Sun公司发布了Java的第一个开发工具包 |
Java 1.1 | 1997.02.19 | |
Java 1.2 | 1998.12.08 | 拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版) |
Java 1.3 | 2000.05.08 | |
Java1.4 | 2004.02.06 | |
Java 5.0 | 2004.09.30 | ①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME |
Java 6.0 | 2006.12.11 | 2009.04.20 Oracle宣布收购SUN公司 |
Java 7.0 | 2011.07.02 | |
Java 8.0 | 2014.03.18 | |
Java 9.0 | 2017.09.22 | ①每半年更新一次;②Java 9.0开始不再支持windows 32位系统 |
Java 10.0 | 2018.03.21 | |
Java 11.0 | 2018.09.25 | JDK安装包取消独立JRE安装包,长期支持版本 |
Java 12.0 | 2019.03.19 | |
Java 13.0 | 2019.9.18 | |
Java 14.0 | 2020.3.17 |
Google和Oracle的侵权事件:
Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果。Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金。这个案件还引发关于 API(应用程序编程接口)是否应该受版权保护的争议。
其实早在2010年8月,Oracle 就已经向法院起诉 Google 侵权,声称 Google 在开发 Android 平台时未经授权就使用了 Oracle 的 Java 应用编程接口数据包。
另外,虽然 Google 当年为避免版权问题而重写了 Java API,却意外地使用了和 Oracle JDK 相同的一小段代码,这使得 Google 陷入不利的局面。
正是由于 Google 在 Android 平台上使用 Java 时并未和 Sun 公司达成授权协议,造成了巨大的隐患,尤其是在 Oracle 收购 Sun 公司之后。
Java技术体系平台
- JavaSE(Java Platform, Standard Edition标准版):允许您在桌面和服务器上开发和部署Java应用程序。Java提供了丰富的用户界面、性能、多功能性、可移植性和当今应用程序所需的安全性。
- JavaEE(Java Platform, Enterprise Edition企业版):是为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发。
- JavaME(Java Platform, Micro Edition 小型版):为互联网上的嵌入式和移动设备上运行的应用提供了一个健壮、灵活的环境:微控制器、传感器、网关、移动电话、个人数字助理(PDA)、电视机顶盒、打印机等等。JavaME包括灵活的用户界面、健壮的安全性、内置的网络协议,以及支持动态下载的网络和离线应用程序。基于JavaME的应用程序在许多设备上都是可移植的,但是利用了每个设备的本机功能。
- Java Embedded(Im’bedId): 用于解锁物联网的智能设备的价值:
通过远程市场更新和刷新功能延长产品生命周期和价值;
利用Java的可伸缩性、健壮性、可移植性和全套功能,提高生产效率,降低成本,缩短上市时间;
在边缘启用快速数据功能; - Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能够承载采用Java技术的应用程序。Java card提供了一个安全的、可互操作的执行平台,它可以在一个资源受限的设备上存储和更新多个应用程序,同时保持最高的认证级别和与标准的兼容性。
- Java TV:是一种基于JavaME的技术,它为开发在tv和机顶盒设备上运行的java应用程序提供了一个性能良好、安全且易于实现的解决方案。使用Java TV运行时,开发人员可以轻松创建应用程序,例如电子节目指南(EPG)、视频点播(VOD)客户端、游戏和教育应用程序、用于访问Internet数据的应用程序(例如天气、新闻播报器、社交网络)以及大多数蓝光光盘标题上的用户界面和奖金内容。
- Java Embedded(Im’bedId): 用于解锁物联网的智能设备的价值:
1.4 什么是软件开发
1.概述:
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程
软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程
软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发
2.我们将来主要从事软件开发中各个环节的哪个环节呢?实现
3.我们将来主要用什么程序设计语言来开发呢? java语言 sql语言 js
第二章.Java语言前言
1.字节 ★【存储数据的最小单元是字节 一个二进制是比特】
1.字节:计算机中存储数据的最小存储单元(计量单位),用byte或者B表示
二进制位:用bit(比特)表示
8个二进制位代表一个字节
2.存储单元之间的转换:
8bit = 1B
1024B = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB
PB EB ZB …
2.常用的dos命令
1.打开dos命令窗口:
win+r -> 输入cmd -> 回车
作用 | 命令 |
---|---|
切换盘符 | 盘符名: -> 回车 盘符名不区分大小写,但是计算机上必须有指定的盘符 |
查看当前路径下的文件或者文件夹 | dir |
进入到指定文件夹下 | cd 文件夹名字 |
进入到多级文件夹下 | cd 文件夹名字\文件夹名字 |
退到上一级目录 | cd…或者 cd … |
直接退到磁盘位置(退到根目录) | cd\或者cd \ |
清屏 | cls |
退出黑窗口 | exit |
创建文件夹 | mkdir 文件夹名 |
创建多级文件夹 | mkdir 文件夹名\文件夹名 |
删除文件夹 | rd 文件夹名 注意:删除的文件夹必须是空的 不走回收站 |
删除文件 | del 文件名.后缀名 不走回收站 |
批量删除文件 | del *.后缀名 |
1.如何区分正斜杠和反斜杠:
/:正斜杠
:反斜杠
2.快速打开该目录对应的dos命令窗口:
a.选中路径
b.输入cmd -> 回车
3.按上下箭头,切换之前输入过的命令
4.在dos命令窗口中,可以输入文件夹名或者文件名的一部分,按 -> tab键 -> 自动补全文件夹名或者文件名
第三章.Java所需要的环境
1.jvm和跨平台
1.jvm(java虚拟机):java运行程序的假想计算机,主要用来运行java程序的
2.跨平台:java代码可以在不同的操作系统上运行(一次编写,到处运行)
跨:跨越
平台:操作系统 -> windows linux mac os
3.关系:java程序想要在不同的操作系统上运行,实现跨平台,就需要安装不同版本的jvm
2.JDK和JRE ★
1.jdk:(Java Development Kit):java开发工具包,包含了jre
javac 编译工具
java 运行工具
jdb 调试工具
jhat 内存分析工具
...
2.jre:(Java Runtime Environment):java运行环境,包含了jvm以及后面开发用到的核心类库
3.jdk和jre以及jvm的关系:
jdk包含了jre,jre包含了jvm,所以我们只需要安装jdk即可
但是从jdk9开始jdk目录中就没有单独的jre目录了,因为jre作为一个运行时,里面不需要包含太多的东西浪费空间,降低运行效率,在jdk9的时候引用模块化的技术,让开发者能按照自己的应用创建一个最小的运行时(比如一个微服务的部署应用仅仅需要一个非常小的runtime,而不是像以前一样不管应用复杂还是简单,都需要一个近百兆的jre运行)这样提高了运行效率
2.1.jdk安装
1.下载:www.oracle.com
1.安装:双击 -> 选择安装路径(安装路径上不要有中文,不要有空格)
2.一定要记住:以后所有开发相关的安装路径上都不要有中文和空格
测试:进入到jdk的bin路径下,打开对应dos命令窗口
输入javac(编译命令)和java(运行命令)
2.2.环境变量的配置
1.问题:将来我们需要创建一个java文件写代码,然后编译和运行的时候需要打开此java文件所在的目录,java文件的目录如果和javac以及java命令所在的bin目录不一致,那么javac和java命令就用不了了,毕竟javac和java命令在bin目录下,所以难道我们将来必须将所有的java文件都放到bin目录下吗?
那么我们能不能在任意目录下都能使用javac和java命令呢?能,需要配置环境变量
2.配置环境变量的目的:在任意路径下都可以随意使用javac和java命令进行对java代码的编译和运行
方式1:直接将jdk的bin路径粘贴到path中 -> 不推荐
方式2:极力推荐
配置JAVA_HOME
jdk安装之后,自带环境变量配置->javapath(可以删除)->推荐使用JAVA_HOME
可能出现的问题:电脑重启之后,环境变量失效了
1.解决问题1:点到环境变量中,啥都不要做,直接点一下确定
2.解决问题2:直接将bin路径粘进去
当然,后面学了idea之后,不会出现这种问题了
第四章.Java第一个程序的开发
1.开发三步骤
1.编写:
a.创建一个文本文档,将后缀名改成.java,变成一个java文件
b.注意:我们需要将文件的后缀名显示出来
2.编译:
a.命令:javac java文件名.java
b.注意:javac会将java文件编译,生成一个.class文件(字节码文件),jvm运行只认class文件
3.运行:
a.命令:java class文件名(不需要带后缀名了)
2.编写HelloWorld
public class Demo01HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
编译:
javac java文件名.java
运行:
java class文件名(不要带后缀名了)
3.注释
1.概述:对代码的解释说明
2.分类:
a.单行注释:
//注释内容
b.多行注释:
/*
注释内容
*/
c.文档注释:
/**
注释内容
*/
//单行注释 class后面的名字要和java文件名一致
public class Demo01HelloWorld{
/*
多行注释:
main是一个方法,是程序的入口,jvm运行程序要找main当入口
执行程序
*/
public static void main(String[] args){
/**
文档注释:
下面的语句是输出语句
*/
System.out.println("HelloWorld");
}
}
1.文档注释作用:将来我们给别人一个开发好的类,如何让别人快速对我们写的代码了解呢?
我们的文档注释中的内容可以根据javadoc命令生成一个文档(API文档)
别人拿到这个文档,就能快速对此类以及类中实现的功能,进行快速了解
2.命令:javadoc -d 要生成的文件夹名字 -author -version 文件名.java
/**
此类是一个java的入门程序
@author 涛哥
@version v1.0
*/
public class Demo02HelloWorld{
/**
main是一个方法,是程序的入口
jvm执行java代码,都是从main方法开始执行
*/
public static void main(String[] args){
System.out.println("helloworld");
}
}
1.右键中没有创建文件或者文件夹的选项 -> 所在的磁盘有权限问题
2.右键盘符 -> 属性 -> 安全 -> 编辑 -> 修改权限(完全控制)
4.第一个Java程序中每一句话的解释以及注意事项
/*
1.public class Demo03HelloWorld:定义一个类
2.class:代表的就是类,类是java程序最基本的组成单元,所有代码都需要在类中写
3.class后面跟的名字叫做类名,类名要和java文件名保持一致
*/
public class Demo03HelloWorld{
/*
public static void main(String[] args)
叫做main方法,是程序的入口
jvm执行代码,会从main方法开始执行
*/
public static void main(String[] args){
//打印语句(输出语句),会将我们想要输出的内容打印到控制台上
System.out.println("helloworld");
}
}
注意事项:
1.类名要和java文件名保持一致
2.程序中的标点符号必须是英文的
3.不要将main写成mian
4.System和String的首字母s要大写
5.每个单词写完来个空格增强代码的可读性
6.括号要一对一对的写
7.代码写完语句用;代表结束了,一句话来个分号,证明这是一个单独的语句
6.关键字
1.关键字:java提前定义好的,具有特殊含义的小写单词
2.怎么记:不用提前都背下来,关键字在高级记事本中颜色特殊,学到哪里记到哪里
7.编写HelloWorld时要注意的问题
7.1字符编码问题
1.编码:保存数据的过程就是编码的过程
2.解码:读数据的过程就是解码的过程
3.注意:
a.编码和解码遵守的编码规范必须是一样的
b.常见的两个编码规范:
GBK:专门为我们中文所设计的编码
ANSI代表的是GBK
一个中文汉字在GBK中占2个字节
UTF-8:一个中文汉字在UTF-8中占3个字节
c.dos命令窗口默认编码:GBK
7.2源文件名(java文件名)与类名一致问题?
1.类名必须要和java文件名一致嘛?
不是必须的
如果类名和java文件名不一致,需要将class前面的public干掉
2.如果class前面带public,此时类名必须要和java文件名一致
3.一个java文件中可以写多个class类,但是只能有一个类带public
但是建议不要随意在一个java文件中写多个class -> 一个java文件中就写一个class,而且带public的
4.main方法必须写在带public的类中
小结:
1.一个java文件只写一个class,而且带public
2.类名和java文件名保持一致
3.main方法写在带public的类中
9.println和print区别
相同点:都是输出语句
不同点:
a.println:输出之后自带换行效果
b.print:输出之后不带换行效果
public class Demo05HelloWorld{
public static void main(String[] args){
//System.out.println("床前明月光");
//System.out.println("疑是地上霜");
//System.out.println("举头望明月");
//System.out.println("低头思故乡");
System.out.print("床前明月光");
System.out.print("疑是地上霜");
System.out.print("举头望明月");
System.out.print("低头思故乡");
}
}
小技巧:
1.复制当前行:ctrl+d
2.一次操作多行:
a.预留出足够的空间
b.按住alt不放,鼠标往下拉,此时发现光标变长了