传智播客毕向东JAVA基础班教学大纲.docx
- 文档编号:7646753
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:57
- 大小:217.76KB
传智播客毕向东JAVA基础班教学大纲.docx
《传智播客毕向东JAVA基础班教学大纲.docx》由会员分享,可在线阅读,更多相关《传智播客毕向东JAVA基础班教学大纲.docx(57页珍藏版)》请在冰豆网上搜索。
传智播客毕向东JAVA基础班教学大纲
1.Java编程基础
1.1.基本概念
Ø什么是计算机语言
计算机语言指用于人与计算机之间通讯的语言。
计算机语言是人与计算机之间传递信息的媒介。
为了使电子计算机进行各种工作,就需要有一套用于编写计算机程序的数字、字符和语法规划,由这些组成计算机指令就是计算机语言。
软件就是由若干条计算机语言所组成的。
Ø计算机语言分类
机器语言:
机器语言是直接用二进制代码指令表达的计算机语言,指令是用0和1组成的一串代码,它们有一定的位数,并分成若干段,各段的编码表示不同的含义。
汇编语言:
汇编语言是使用一些特殊的符号来代替机器语言的二进制码,计算机不能直接识别,需要用一种软件将汇编语言翻译成机器语言。
高级语言:
使用普通英语进行编写源代码,通过编译器将源代码翻译成计算机直接识别的机器语言,之后再由计算机执行。
Ø高级语言工作原理
1.2.Java开发环境搭建
ØJDK与JRE
JDK(JavaDevelopmentKit)Java开发工具,包含开发Java程序的所有组件,包含JRE
JRE(JavaRuntimeEnvironment)Java运行环境,如果要运行Java程序,就需要JRE的支持
常用组件:
src.zipJava是一门开源的语言,其源代码都在这个压缩包中
rt.jarJava的基础核心类库,我们编写Java程序时使用的class都在这个jar包中
javac.exe编译器,将.java源代码编译为.class文件
java.exe虚拟机,运行Java程序的工具
jar.exe将class文件打成jar包的工具
javadoc.exe生成帮助文档的工具
Ø环境变量:
环境变量是指在操作系统中用来指定操作系统运行环境的一些参数
path:
如果想在任意目录下运行一个程序,我们就需要将程序所在的路径配置在path环境变量中。
通常我们会将javac.exe所在目录配置到path中,因为我们需要在任意目录下都能编译Java源文件。
配置完成之后可以在命令行输入javac测试,如果显式帮助信息则是配置成功。
classpath:
Java虚拟机运行时加载类的路径。
JDK5之后不配置默认为当前目录“.”。
如使用JDK1.4或以下版本时需要人工配置。
暂时不需要配置,默认加载当前目录下的所有class文件。
配置方式:
a.命令行
点击屏幕左下角开始–运行–输入cmd–在命令行中直接输入命令进行修改
查看变量值:
set变量名
设置变量值:
set变量名=变量值,多个值之间使用分号“;”分割,引用变量时使用“%变量名%”形式
注意:
此种方式仅适用于当前窗口
b.我的电脑
鼠标右键点击我的电脑–属性–高级–环境变量
找到要修改的变量将其值修改,此种方式永久有效
注意:
配置环境变量之后可以查看编译器(javac.exe)和虚拟机(java.exe)版本,虚拟机版本不能低于编译器。
使用哪个版本的编译器和虚拟机取决于path环境变量,如果虚拟机版本过低,可以通过环境变量来修改。
编译器版本查看方式:
javac–version
虚拟机版本查看方式:
java–version
1.3.第一个Java程序
Ø编写源代码
新建文本文档,扩展名改为.java,在文件中写入代码。
注意:
windows操作系统默认是隐藏已知文件扩展名的。
请测试新建一个文本文档,如果看到的文件名是“新建文本文档”而不是“新建文本文档.txt”,那么说明你的扩展名被隐藏了。
请选择菜单栏中的工具–文件夹选项–查看–下拉滚动条找到“隐藏已知文件扩展名”–取消掉这一项。
Ø编译字节码文件
a.左键单机屏幕左下角开始–运行–输入cmd启动命令行窗口
b.使用DOS命令进入源代码所在目录
c.使用编译器(javac.exe)编译源代码,javac文件名.java,编译后在该目录中会出现扩展名为class的字节码文件
常用DOS命令:
跳转到指定盘符:
盘符:
例:
C:
D:
E:
跳转到指定目录:
cd目录例:
cdItcast\day01cdTencent\QQ\Bin
显示当前目录下文件:
dir
跳转到上级目录:
cd..
跳转到根目录:
cd\
清屏:
cls
Ø运行程序
使用虚拟机(java.exe)运行class文件,java文件名,注意不要加扩展名,因为虚拟机只能运行class文件,扩展名省略不写,如写则报错。
1.4.进制
Ø十进制
由0到9的数字组成,逢十进一
我们最常用的一种进制
01234567891011121314151617181920
Ø二进制
由0和1组成,逢二进一
计算机中存储任何数据都是以二进制的形式进行存储的
0110111001011101111000
Ø八进制
由0到7的数字组成,逢八进一
八进制在程序中以0开头
01234567101112131415161720
Ø十六进制
由0到9的数字和A-F的字母组成,逢十六进一
十六进制在程序中以0x开头
0123456789ABCDEF101112131415161718191A1B1C1D1E1F20
Ø进制转换
a.十进制转二、八、十六进制
除法取余,将要转换的数除以进制数,记住余数,再除以进制数,记住余数,直到这个数等于0为止,将所有余数反转就是对应的二进制表现形式。
b.二、八、十六进制转十进制
乘法,将要转换的数编号,编号从低位开始,从0开始,将每一位上的数乘以进制数的编号次方,最后将所有乘得的结果相加就是十进制表现形式。
c.二进制和八进制互转
八进制的每一位对应二进制的三位。
d.二进制和十六进制互转
十六进制的每一位对应二进制的四位。
Ø二进制负数
一个负数的二进制表现形式就是这个负数忽略符号的正数对应的二进制取反再加一。
计算机中存储的二进制数最高位是0则是正数,是1则是负数。
1.5.码表
ASCII:
英文码表,每个字符占1个字节。
A是65,a是97
GB2312:
兼容ASCII,包含中文,每个英文占1个字节(正数),中文占2个字节(2个负数)。
GBK:
兼容GB2312,包含更多中文,每个英文占1个字节(正数),中文占2个字节(第一个负数、第二个可正可负)。
Unicode:
国际码表,每个字符占2个字节。
Java中存储字符类型就是使用的Unicode编码。
UTF-8:
国际码表,英文占1个字节,中文占3个字节。
2.Java语法
2.1.基本格式
所有Java代码都应该在一个class中。
Java是严格区分大小写的。
Java是一种自由格式的语言。
Java代码分为结构定义语句和功能执行语句,功能执行语句最后必须以分号结束。
2.2.注释
单行注释和多行注释是在程序用来标记一些特殊的文本,这些文本不参与编译运行。
文档注释是Java中特有的一种注释,它可以通过JDK中的工具(javadoc.exe)解析,生成帮助文档。
文档注释:
/**注释内容*/
2.3.标识符
Ø什么是标识符
标识符可以理解为程序中我们自定义的一些名字,包括:
包名、类名、函数名、变量名、常量名。
Ø标识符的命名规则
由大小写字母、数字、下划线(_)和美元符号($)组成,开头不能是数字。
不能使用关键字。
推荐使用全英文。
Ø标识符通用规范
类名、接口名:
所有单词首字母大写,驼峰式命名,例如:
XxxYyyZzz
变量名、函数名:
第一个单词首字母小写,其他单词首字母大写,驼峰式命名,例如:
xxxYyyZzz
常量名:
所有字母都大写,单词之间用下划线分割,例如:
XXX_YYY_ZZZ
包名:
全部小写,例如:
xxx.yyy.zzz
2.4.关键字
abstract
boolean
break
byte
case
catch
char
class
continue
default
do
double
else
extends
final
finally
float
for
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
注:
java无sizeof,goto,const关键字,但不能用gotoconst作为变量名
2.5.常量
Ø整型
整数,4个字节。
Ø长整型
整数,8个字节。
以L结尾。
Ø单精度浮点数
小数,4个字节。
以F结尾。
Ø双精度浮点数
小数,8个字节。
Ø布尔
只有两个值,真(true)或假(false),1个字节。
Ø字符
单个字符,2个字节。
例如:
'a','中','5','\u0026','\u0027'
在字符常量中,斜杠(\)是一个特殊的字符,它的作用是用来转义后面一个字符,这些字符通常是不可见的或者有特殊意义的。
'\r'回车,回到一行的开始
'\n'换行,换到下一行
'\t'制表符,键盘上的Tab
'\b'类似退格,键盘上的Backspace
以上字符都不可见,无法直接表示,所以用斜杠加上另外一个字符来表示。
'\''单引号,Java代码中单引号表示字符的开始和结束,如果直接写程序会认为前两个是一对,报错。
'\"'双引号,Java代码中双引号表示字符串的开始和结尾,如果要写一个包含双引号的字符串那么这个双引号也需要转义。
'\\'斜杠,Java代码中的斜杠是转义字符,用来和后面一个字符配合使用,在真正需要用斜杠的时候那么就要用另一个斜杠来转义。
以上字符都有特殊意义,无法直接表示,所以用斜杠加上另外一个字符来表示。
Ø字符串
由若干个字符组成的一串。
可以是一个字符、多个字符、或者一个都没有。
字符串没有固定大小。
Ø空
null,只有这一个值,用来表示一个引用为空。
2.6.变量
intx=5;
System.out.println(x);
x=1+1;
System.out.println(x);
x=x+1;
System.out.println(x);
上面的x就是一个变量,变量没有固定的值,是在内存中开辟的一片空间。
Java中的变量中只能存储同一种类型的值。
变量在被取值之前必须初始化(第一次给变量赋值)。
Ø变量分类
a.基本数据类型:
8种
整数:
byte1个字节,最小值:
-128,最大值:
127
short2个字节,最小值:
-32768,最大值:
32767
int4个字节,最小值:
-2147483648,最大值:
2147483647
long8个字节,最小值:
-9223372036854775808,最大值:
9223372036854775807
浮点数:
float4个字节,最小值:
1.4E-45,最大值:
3.4028235E38
double8个字节,最小值:
4.9E-324,最大值:
1.7976931348623157E308
字符:
char2个字节,最小值:
0,最大值:
65535
布尔:
boolean1个字节,true或false
b.引用数据类型:
类、接口、数组都是引用数据类型,除了8种基本数据类型,其他所有类型都是引用数据类型。
Ø类型转化
a.自动类型转换
在byte、short、char参与运算的时候会自动提升为int,相当于将一个占空间较小的值放入了一个较大的空间。
b.强制类型转换
可以将一个占空间较大的值使用(类型)的形式强制放入一个较小的空间,有可能损失精度。
c.字符串转换
任何值和字符串相加都会得到字符串。
Ø变量的作用域与生命周期
作用域:
变量定义在哪一级大括号中,哪个大括号的范围就是这个变量的作用域。
相同的作用域中不能定义两个同名变量。
生命周期:
变量的生命周期从定义时开始,超出作用域后结束。
变量生命周期以外不能使用。
2.7.函数
Ø函数的定义
函数就是一段有名字的代码,可以完成某一特定功能。
如果有一段代码要使用多次,我们可以给它起个名字,每次使用时通过名字调用,这样就不用每次都写一大段代码了。
如果某个函数在执行的时候需要调用者传入数据,那么可以定义参数列表,用于接收数据。
如果函数运行之后需要返回给调用者数据,那么需要指定返回值类型,并且用关键字return返回。
定义函数的3个必要条件:
函数名、参数列表、返回值类型。
如果不需要参数也要写小括号,如果没有返回值类型要写void。
Ø名词解释
形参:
在定义函数时小括号中的参数,用来接收数据的参数。
实参:
在调用函数时真正传入的参数,传递给函数的数据。
参数类型:
函数的参数的类型,一旦定义传入时必须匹配。
返回值:
函数运行结束后返回的值,使用return关键字返回。
返回值类型:
函数运行结束后返回的值的类型,在类型非void情况下必须返回,而且必须类型匹配。
Ø函数的重载
多个函数的函数名相同,参数列表不同(个数、顺序、类型),这就是函数的重载。
在调用函数的时候通过传入的实参找到匹配的函数调用。
函数的重载和返回值类型无关。
2.8.运算符
Ø算数运算符
加号:
在操作数字、字符、字符串时是不同的,两个字符相加得到的是码表值,两个字符串相加是将字符串连接在一起。
除号:
整数在使用除号操作时,得到的结果仍为整数(小数部分忽略)。
取模:
模数的符号忽略不计,结果的正负取决于被模数。
自增:
符号在前就是先运算后取值,符号在后则是先取值后运算。
习题:
a.System.out.println(3500/1000*1000);
b.某个培训中心要为新到的学员安排房间,假设共有x个学员,每个房间可以住6人,让你用一个公式来计算他们要住的房间数?
Ø赋值运算符
等于:
可以多个连用,例如:
x=y=z=5;
加等于:
x+=5;相当于x=x+5;
面试题:
以下代码正确的是?
(多选)
a.byteb=1+1;
b.byteb=1;b=b+1;
c.byteb=1;b+=1;
d.byteb=1;b=++b;
Ø
比较运算符
比较运算符运行结束之后返回的都是boolean值。
注意运算符==不要写成=
Ø逻辑运算符
逻辑运算符运行结束之后返回的也是boolean值
&两边都为true结果才为true,只要有一边是false,结果就是false
|两边都为false结果才为false,只要有一边是true,结果就是true
^判断两边是否不同,不同则为true,相同则为false
!
取反,!
true结果是false,!
fasle结果是true
&&和&结果相同,具有短路效果,如果前半是false,表达式结果一定为false,不运行后一半
||和||结果相同,具有短路效果,如果前半是true,表达式结果一定为true,不运行后一半
分析以下程序运行结果:
intx=1;
inty=2;
System.out.println(x++==y&++x>y++);
System.out.println(x);
System.out.println(y);
intx=1;
inty=2;
System.out.println(x++==y&&++x>y++);
System.out.println(x);
System.out.println(y);
intx=1;
inty=2;
System.out.println(x++==y|++x>y++);
System.out.println(x);
System.out.println(y);
intx=1;
inty=2;
System.out.println(x++==y||++x>y++);
System.out.println(x);
System.out.println(y);
&&在前半是false的时候短路
||在前半是true的时候短路
Ø位运算符
任何信息在计算机中都是以二进制的形式保存的,&、|、^除了可以作为逻辑运算符,也可以做为位算符。
它们对两个操作数中的每一个二进制位都进行运算,0当做false,1当做true。
&将两个二进制数每一位进行&运算,两边都为1结果才为1,只要有一边是0,结果就为0。
|将两个二进制数每一位进行|运算,两边都为0结果才为0,只要有一边是1,结果就为1。
^将两个二进制数每一位进行^运算,只要两边不同结果就为1,相同则为0。
我们可以对数据按二进制位进行移位操作,java的移位运算符有三种:
<<左移将二进制的每一位向左移,低位补0。
左移几位就相当于乘以2的几次方。
>>右移将二进制的每一位向右移,原来高位是0就补0,原来高位是1就补1。
右移几位就相当于除以2的几次方。
>>>无无符号右移将二进制的每一位向右移,高位补0。
正数移动没区别,负数移动后变为正数。
练习:
a.用&和>>来做十进制转十六进制
b.有两个int型变量a和b,在不使用第三个变量的情况下交换两个变量中的值
Ø运算符优先级
思考一下代码运行结果:
System.out.println(1+2*3);
System.out.println(false&&true||true);
System.out.println(true||true&&false);
inta=2;
intb=a+3*a++;
System.out.println(b);
inta=2;
intb=a+++3*a;
System.out.println(b);
inta=1;
intb=2;
System.out.println(a+++b);
尽量写简单的表达式,遇到运算符优先级的问题使用括号解决。
2.9.语句
Ø顺序结构
顾名思义,就是程序从上到下一行一行执行的结构,中间没有判断和跳转,直到程序结束。
Ø选择结构
程序具备多个分支,通过条件判断决定程序选择那一条分支执行
a.if语句:
通过if...elseif...else决定程序流程。
如果if中的条件满足则执行其中语句,if未满足则继续判断elseif,如果满足则执行,不满足继续判断下一个elseif,如果所有都不满足,则执行else。
练习:
用ifelse语句判断一个数是奇数还是偶数。
用户输入一个字符,用程序判断是否为小写字母,如果是,请输出“您输入的字符是小写字母”。
b.switch语句:
通过switch...case...default语句控制程序流程。
根据switch后括号中的值判断运行哪一个case,这个值可以是byte、short、ch;ar、int。
default语句是可选的,如果所有case都不满足,则会执行default。
一旦匹配到一个case,程序就会从这个case向下执行,执行完一个case之后不会跳过其他的case,如需跳过请使用break。
c.三元运算符
语法:
表达式?
结果1:
结果2
如果表达式结尾为true取结果1,为false则取结果2。
注意三元运算符也是有短路的效果,根据表达式的结果,只运行冒号一边的,另外一边的不参与运行。
练习:
定义一个函数,接收两个int参数,返回较大的一个。
Ø循环结构
通过循环语句让同一段代码反复执行多次,执行完毕程序才会继续往后运行
a.while
先判断while中的表达式结果是否为true,true则执行循环体,执行结束之后再次判断,如果表达式结果为false则跳出循环。
练习:
打印出0-9
打印出a-z
b.do...while
先执行一次循环体,然后判断while中的表达式,如果是true继续执行,如果是false则跳出循环。
练习:
编写一个程序,这个程序不断地读取键盘上输入的字符,直到读到字符’q’时,程序结束。
c.for
for循环的括号中有三条语句,都是可选项。
语句1:
这条语句会在整个循环开始之前执行,且仅运行一次,不参与循环。
语句2:
必须是一个返回boolean值的表达式,如果写了这个语句那么每次循环开始之前会判断,true则执行循环,false则不执行。
没写则直接执行。
语句3:
这条语句在每次循环体运行结束之后执行。
练习:
使用星号打印如下图案
*****
*****
*****
*****
*****
i*
*01
**12
***23
****34
*****45
i空格*
*041
***133
*****225
*******317
*********409
d.continue、break、return
continue:
跳过一次循环,继续执行下一次
break:
结束循环
return:
结束方法
2.10.数组
Ø什么是数组
数组是一个类型一致,长度不可变的容器。
可以通过索引操作容器中的每一个元素。
如果有多个类型相同的数据需要存储,我们就可以将其定义为一个数组,这样做省去了创建多个变量的麻烦。
Ø如何定义数组
int[]arr={1,2,3};
定义int数组arr,长度为3,其中3个元素分别为1、2、3。
这种方式只能在定义数组的时候使用。
int[]arr=newint[]{1,2,3};
定义int数组arr,长度为3,其中3个元素分别为1、2、3。
可以再任何情况使用。
int[]arr=newint[3];
定义int数组arr,长度为3。
其中所有元素都为默认值0。
Ø访问数组元素、遍历数组
存在数组中的数据是有索引的,从0开始递增,我们通过数组名和索引就可以操作其中每一个元素。
例如:
System.out.println(arr[0]);//打印数组中索引为0的元素
arr[1]=100;//给数组中索引为1的元素赋值为100
数组的长度
数组可以使用length属性获取其长度。
遍历数组
由于数组可以通过索引获取每一个元素,又可以通过length获取长度,那么我们就可以定义循环来遍历数组中的每一个元素了。
Ø使用数组时的异常
如果访问数组时索引越
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 传智播客毕 向东 JAVA 基础 教学大纲