传智播客毕向东JAVA基础班教学大纲文档格式.docx
- 文档编号:20768796
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:57
- 大小:217.76KB
传智播客毕向东JAVA基础班教学大纲文档格式.docx
《传智播客毕向东JAVA基础班教学大纲文档格式.docx》由会员分享,可在线阅读,更多相关《传智播客毕向东JAVA基础班教学大纲文档格式.docx(57页珍藏版)》请在冰豆网上搜索。
配置环境变量之后可以查看编译器(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;
x=x+1;
上面的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(y);
System.out.println(x++==y|++x>
System.out.println(x++==y||++x>
在前半是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);
intb=a+++3*a;
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=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 基础 教学大纲