《疯狂JAVA讲义》李刚上课笔记教学教材.docx
- 文档编号:26091732
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:110
- 大小:71.08KB
《疯狂JAVA讲义》李刚上课笔记教学教材.docx
《《疯狂JAVA讲义》李刚上课笔记教学教材.docx》由会员分享,可在线阅读,更多相关《《疯狂JAVA讲义》李刚上课笔记教学教材.docx(110页珍藏版)》请在冰豆网上搜索。
《疯狂JAVA讲义》李刚上课笔记教学教材
《疯狂JAVA讲义》李刚上课笔记
第一章到第十二章
day01Java开发前奏(第1章)
IT行业
硬件
-各种硬件,技术含量越高,价格越贵。
软件
-看不到,摸不着。
软件比硬件值钱得多!
!
!
iPhone5-5000
制造成本400块——其他在品牌,在软件。
美国几乎不造硬件——硬件不如软件挣钱。
程序——软件的核心部分
程序:
当我们要做一件事情时,需要按一种既定的流程、步骤,依次完成每个过程,
——最后结果就出来了。
真正的程序员,会影响他的生活习惯,做所有事情,都会有计划,有步骤。
计算机程序:
驱动机器去为我们按既定流程、步骤去完成某件事情。
=======计算机是很蠢的!
它只会按我们规定的步骤去做事=======
Java能做什么?
1.做桌面软件。
——针对个人。
Java在桌面软件领域、并不流行。
MS,win8向“移动操作系统”转型。
2.大型信息化系统。
(Java最擅长)——针对企业。
taobao(阿里软件)、各种银行系统、证券、电信、移动……
3.移动互联网软件。
——针对个人。
Android
编程语言的运行机制
程序:
驱动机器去为我们按既定流程、步骤去完成某件事情。
能直接驱动计算机的—— 机器指令。
(难度非常大)
→汇编→高级语言(C、Java……)
高级语言编程:
源代码就像“作文”一样,容易编写。
但高级语言的源代码,机器看不懂,但人容易看懂、容易编写。
学编程的所有工具安装准则:
1.不要安装在有空格的路径下。
2.不要安装在有中文的路径下。
(1)安装JDK.
(2)既然要使用Java开发,经常需要使用javac、java命令。
执行计算机命令的两个方法
A。
每次运行命令时,都输入该命令的绝对路径。
——可行,坏处是麻烦。
B。
告诉系统,总是到某些目录下去找命令。
这就需要PATH环境变量:
它的值是N条路径。
中间以分号隔开。
用于告诉操作系统,以后操作系统要找命令时,就依次在这N条路径中找,
如果找到了,操作系统就执行这些命令。
如果没找到,操作系统就提示:
“不是内部或外部命令,也不是可运行的程序”
PATH环境变量的作用:
告诉【操作系统】到哪些路径下去找【命令】。
/*******************
绝对路径:
以盘符开始的路径,就是绝对路径。
c:
\abc\t.txt
相对路径:
不以盘符开始的路径,就是相对路径。
abc\t.txt
*******************/
/**********
启动dos窗口,运行→cmd
打开“快速编辑模式”,即可用“右键”完成复制、粘贴。
cd路径进入指定路径。
特殊路径:
\根路径。
.当前路径。
>符号前的就是当前路径。
..上一级路径。
dir:
列出该路径下的所有文件和目录。
切换盘符:
直接输入盘符:
即可。
**********/
Java程序的最小程序单元:
类。
要定义类
[修饰符]class<类名>
{
}
[修饰符],只能是public。
Java程序,如果要运行,必须有个入口方法:
main方法:
publicstaticvoidmain(String[]args)
{
}
Java源文件的命名规则:
1.文件名必须以.java为后缀
2.如果源文件中定义了public修饰的类,主文件名必须与类名相同。
一个Java源文件,可以包含多个类定义。
但一个Java源文件最多只能包含一个public修饰的类。
编译Java程序的命令:
javac-d目录源文件的文件名
指定将生成的新文件放在哪里。
javac生成的新文件名的命名规则:
类名.class
(每个类,对应一个class文件)
运行Java程序的命令:
java类名
关于CLASSPATH环境变量的解释:
1.CLASSPATH环境变量可以不设置。
2.CLASSPATH环境变量的作用?
CLASSPATH环境变量的作用:
告诉【JVM】到哪些路径下去找【类】。
CLASSPATH环境变量的值,依然是N条路径,路径之间用分号隔开。
3.如果你不设置CLASSPATH环境变量,相当于CLASSPATH的值是一个点(.)
如果你设置CLASSPATH环境变量,记得要加上一点(.)。
Java程序的注释:
注释的作用:
给人(包括自己)看的。
注释:
对程序本身,不存在任何影响。
建议:
总是为程序添加合适的注释。
注释:
还可用于调试程序,可以把程序中某段代码先注释掉。
对于程序员来说,还有一个更重要的能力:
排错。
1.先多遇到错误,多解决错误。
2.常见的错误,记下来引起错误的原因。
注释分为3种:
单行注释:
//
多行注释:
/**/
文档注释:
/***/
——它可用于生成API文档。
作业:
10个类,分别在屏幕上打印不同的形状:
三角形、正方形、长方形……
day02数据类型与运算符(第3章)
Java语言的运行机制:
它既想吸收编译型语言的速度快的优点,又想吸收解释型语言“跨平台”的优点
它变成了一个“既需【编译】(平台无关的字节码文件)、又需要JVM的【解释】”的语言。
Java语言的程序,速度快,而且能跨平台。
编译Java程序的命令:
javac-d<目录>源文件的路径
运行Java程序的命令:
java类名
只要做Java开发,javac、java这两个命令是必需的。
是由Oracle的JDK所提供的。
SDK(SoftwareDevelopKits)
JDK(Java的SDK)
开发Java之前的准备:
(1)安装JDK。
JavaforDeveloper(JDK)JRE+各种编译工具。
JavaforYourComputer(JRE)
JRE(Java的RuntimeEnviorment)=JVM+基础类库、程序
(2)由于我们需要使用javac、java命令。
如果不配置环境变量,每次使用javac、java命令时,都需要输入命令的绝对路径。
可以配置PATH环境变量,它的值是N条路径(以;隔开),以后你输入任何命令时,操作系统都会在PATH所指定的系列路径中搜索。
Java程序的最小结构单元:
类。
面向对象。
【C程序的最小结构单元:
函数。
面向过程】
写Java程序,定义类:
[修饰符]class<类名>
{
//入口方法、开始点
publicstaticvoidmain(String[]args)
{
//执行性代码
System.out.println();
}
}
注释:
1.单行注释。
//
2.多行注释。
/**/
3.文档注释。
/***/
文档注释的作用:
javadoc可以直接提取源代码中文档注释,生成对应的【API文档】。
何为API文档?
当我们写了一些类之后,应该为这些类编写“使用说明书”。
javadoc命令:
程序员只要在源代码中添加文档注释,javadoc就可以为提取注释,生成使用说明书【API文档】。
API文档
包列表区|详细说明区
---------|
类列表区|
文本编辑器:
notopad、vim(最老牌、经典文本编辑工具)、ultraedit、editplus。
生成API文档的步骤:
(1)在源代码中添加文档注释。
文档注释必须添加在类、方法、field、内部类之前才有效。
——如果你把文档注释放在其他地方,它只能多行注释。
(2)使用javadoc命令:
javadoc-d<路径>源文件
变量
-编程就要操作数据。
数据就要放在“东西”中。
-变量的作用:
“装”一切的数据。
通俗理解:
可以把变量理解成“瓶子”。
-变量需要有个名字(标识符)。
通过该名字即可访问变量
分隔符:
所有的符号,都是英文符号。
空格、花括号、[]、().
标识符:
(identifier)
名字
-只能由于字母(包括中文字符)、数字、下划线、$组成,其中数字不能开头。
-标识符不能是Java的关键字或保留字。
关键字:
48个。
2个保留字:
(goto、const)——现在还没有使用,也许以后会用。
3个直接量:
true、false、null。
就是值。
这53个都不能作为标识符。
Java语言是“强类型”的语言:
-所有变量,必须先声明(声明时就必须指定类型)、后使用。
-“什么样的瓶子只能转什么东西”,指定类型的变量,只能装相应类型的值。
Java的数据类型可分为2大类:
-基本类型。
-引用类型。
整型(byte、short、int、long)
↗
浮点型(float、double)
↗
基本类型→字符型(char)
↘
布尔型(boolean)只有2个值:
true、false
整型:
byte(1个字节(byte)=8个位(bit))
8个bit表示2的8次方种状态。
因此一个bit只能表示256个数。
byte的取值范围:
-128~0~127
short(2个字节(byte)=16个位(bit))
16个bit表示2的16次方种状态。
能表示65536个数。
short的取值范围:
-32768~0~32767
int(4个字节(byte)=32个位(bit))
int的取值范围:
负的2的31次方~0~2的31次方-1
long(8个字节(byte)=64个位(bit))
long的取值范围:
负的2的63次方~0~2的63次方-1
/**********************
2的10次方:
1024-1K
2的20次方:
1M(百万)
2的30次方:
1G(十亿)
2的40次方:
1T
***********************/
1.当我们直接给出一个整数值时,它默认是int型。
系统绝不会把它当成long处理。
2.当我们直接给出一个在指定取值范围内的整数时,系统也可把它当成byte、short使用。
3.如果你系统把一个整数当成long使用,应该在整数后添加l或L。
数值的下划线用法。
可以在数值中任意添加下划线(_)作为分隔符。
整数一共支持4种表示形式:
10进制值。
默认。
16进制Ox或0X开头0~9、a、b~f(15)
8进制O开头0~7
2进制b或B开头0~1
1231*【进制】的2次方+2*【进制】的1次方+3*【进制】的0次方。
0x1a=1*16的1次方+a*16的0次方=26
整数不能除以0,否则会引发“算术异常:
ArithmeticException”
浮点型:
float:
4个字节,32位。
double:
8个字符,64位。
带小数的数值,就是浮点型。
-当你直接给出一个带小数的数值时,它默认是double型。
如果希望当成float使用,应该在数值后添加f或F。
-浮点数支持2种形式:
-给出带小数的数。
-科学计数法。
2.11133E3
-浮点型有3个特殊值:
正无穷大Infinty正数除以0,得到无穷大。
●所有正无穷大都相等。
负无穷大-Infinity负数除以0,得到无穷大。
●所有负无穷大都相等。
非数NaN:
0除以0,对负数开方等。
非数与任何数都不相等,包括它自己!
字符型
char
Java用就是Unicode字符集
字符型占2个字节,16位,65536种状态。
-字符型也可以当成无符号整型(0~65535)(每个字符都有编号)用。
-字符型的值,应该用单引号引起来。
(双引号引起来的是字符串)。
-字符型有3种形式:
A。
'字符'
B。
转义字符。
'\n''\t'P50的表3.2
C。
直接用字符的Unicode编号。
布尔型
boolean
它只有两个值:
true、false。
数值型:
byte、short、int、long、char、float、double
↗
基本类型
↘
布尔型:
boolean
/****************************************
字符集
计算机底层、内存中都无法记录字符,它们只能记录010101这种二进制位。
但我们有字符需要保存到计算机中,计算机科学家想了一个办法,给字符编号
计算机底层使用、保存这些字符时,其实用的的这些字符的编号。
——如果给所有字符都编号,这就叫字符集。
所谓字符集:
就是给所有字符编个号。
字符集:
保存(写入)文件、恢复(读取)文件用的字符集要一致。
ASCII-每个字符占一个字节,8bit,总共能表示256个字符。
A(65)-Z(65+25)
a(97)-z(97+25)
0(48)-9(57)
GB2312
GBK
GB18030
Unicode:
16位、能表示65536个字符。
utf-8、utf-16。
编程:
建议使用utf-8字符集。
*****************************************/
▲类型转换
☆自动转换
取值范围小的类型,可以自动转换为取值范围大的类型。
(-128~127)(-32768~32767)(-20亿~20亿)
byte→short→int→long→float→double
↗
char
(0~65535)
-所有数值型,都可自动转换为double。
-所有整型,都可自动转换为long。
-所有整型,都可自动转浮点型。
☆强制转换。
当数值类型之间,不能自动转换时就需要进行强制转换。
强制转换的语法格式是:
(类型)
【注意】,强制转换,可能会溢出。
/***********************************
数值的表示形式:
最高位是符号位,0代表正数;1代表负数。
原码-直接换算得到的2进制码。
反码-把原码,除符号位之外,其他位取反得到反码。
补码-正数的补码就是源码;负数的补码为反码+1
计算机底层,所有数值都用补码表示。
************************************/
随机的图形验证码
(1)只要生成一个97~122(汉字的范围)之间的随机整数
(2)将随机整数,强转为char——这就是随机字符。
Math类:
所有与数学计算相关的算法,都提供了相应的方法。
表达式类型的自动提升
所谓表达式:
用运算符,将多个变量、值,串联成“四则混合运算”。
一个表达式,最终也会计算出一个结果,该结果的数据类型,
与整个表达式中等级最高的操作数的数据类型相同。
▲直接量
直接量,就是在源代码中直接给出的值。
int:
20、0x12、12、012
long:
1L、23L
float:
2.4f
double2.33e2
char:
'1'、'\u2331'
boolean:
true、false
String:
"helloworld"
▲运算符
☆算术运算符:
+:
加法运算符,也是连接运算符。
-:
减法运算符。
*:
乘法运算符。
/:
除法
%:
取余。
++:
必须操作【一个】【变量】,让变量的值加1
--:
必须操作【一个】【变量】,让变量的值减1
++如果放在变量的前面,是先将变量加1,再用加1后的值;
如果放在变量的后面,是先用变量原始的值;将变量加1。
--如果放在变量的前面,是先将变量减1,再用减1后的值;
如果放在变量的后面,是先用变量原始的值;将变量减1。
☆赋值运算符
=
☆位运算符
&:
按位与——当上下两位都是1,计算结果才是1.
|:
按位或——当上下两位都是0,计算结果才是0;只要有任何一个是1,结果就是1。
^:
按位异或——当上下两位不同,计算结果才是1.
~:
按位取反(按位非)。
直接取反——只要一个运算数即可。
>>:
右移,右边移出去的位,将会被直接“砍掉”,左边空出来的位补符号位。
右移N位,相当于除以2的N次方。
<<:
左移,右边空出来的位就会添加0;
左移N位,相当于乘以2的N次方。
>>>:
无符号右移,右边移出去的位,将会被直接“砍掉”,左边空出来的位总是补0。
移出来的结果总是正数。
练习:
画出下面计算结果的过程
-12&34
(byte)234;
-3^34
20|-124
~45
day03流程控制和数组(第4章)
数据类型与运算符
Java数据类型可分为2大类:
-基本类型
-引用类型
基本类型
A。
整型byteshortintlong
有4种表示形式:
10进制、8进制(以0开头)、16进制(以0X或0x开头)、2进制(以B或b开头、Java7才支持)
B。
浮点型。
float(4个字节)、double(8个字节)
直接给出小数,默认是double类型;如果希望一个数字是float类型,需要添加f/F作为后缀。
C。
字符型。
字符型可以当成无符号整型使用(0~65535)
字符型有3种表示形式:
-直接给出单个字符'A'
-转义字符。
-'\uXXXX',用4位的16进制的Unicode值。
D。
布尔型。
true、false
另外一种分类规则:
A。
数值型:
byte、short、int、long、char、float、double
B。
布尔型:
boolean
7个数值型之间可以相互转换,
-自动转换:
取值范围小的、向取值范围大的转换,就可自动转换。
byte→short→int→long→float→double
↗
char
-强制转换:
不能自动转换时,就需要进行强制转换。
语法格式是:
(类型)
【强制转换可能导致溢出!
!
!
!
!
!
】
运算符:
算术运算符:
+-*%/++--
赋值运算符:
=
位运算符:
&|^~>>(左边高位补符号位,右移N位相当于除以2的N次方)、<<(左移N位相当于乘以2的N次方)、>>>
▲扩展后的赋值运算符:
所有【双目】运算符,都可以与=结合,结合成为扩展的赋值运算符。
a+=b相当于a=(a的类型)(a+b)
a-=b
...
a&=b
▲比较运算符
比较运算符,返回的结果是true或false
>>=<<===!
=
【比较运算符的返回值总是boolean值!
】
▲逻辑运算符
逻辑运算符的作用是:
对两个boolean值进行逻辑运算。
逻辑运算符,只能对boolean值进行运算。
&&:
与。
当两个操作数都是true时、才返回true。
&:
不短路与。
||:
或。
当两个操作数只要有一个是true时、就会返回true。
|:
不短路或
!
:
非:
它是单目的。
相当于取反。
^:
异或。
当两个操作数相同时,结果就会返回false。
&&与&的区别何在?
对于“求与”来说,当第一个操作数已经是false时、结果肯定是false,第二个操作数根本不会影响结果。
&&,根本不会去计算第二个操作数。
&,它依然会去计算第二个操作数。
||与|的区别何在?
对于“求或”来说,当第一个操作数已经是true时、结果肯定是true,第二个操作数根本不会影响结果。
||,根本不会去计算第二个操作数。
|,它依然会去计算第二个操作数。
▲三目运算符
boolean表达式?
value1:
value2
当boolean表达式返回true,整个表达式返回value1;否则,就返回value2
▲运算符的结合性与优先级
运算符有优先级,一共分成10多个级别的优先级。
参看P67.
规则:
尽量多用()来保证哪些东西先算。
▲流程控制
目前,最主流、最常用的3种流程:
1.顺序。
从上到下、依次执行每条代码。
如果没有流程控制,默认就是顺序结构。
在顺序结构中,如果后面代码得到了执行,表明前面代码已经执行完成。
2.分支。
根据条件来执行执行代码。
if语句。
if语句的语法格式:
㊀
if(<逻辑表达式>)
{
//执行语句
}
{}括起来的部分,称为“条件执行体”。
㊁
if(<逻辑表达式>)
{
//执行语句
}
else
{
//执行语句
}
㊂
if(<逻辑表达式>)
{
//执行语句
}
elseif(<逻辑表达式>)elseif块可出现0~N次。
{
//执行语句
}
elseelse块可出现0~1次
{
//执行语句
}
★if分支语句的注意点:
A.如果if后的条件执行体只有一行代码,可以省略条件执行体的花括号。
如果if后省略花括号,if条件只控制到紧跟该if语句的第一个分号。
建议:
总是保留条件执行体的花括号。
B.else包含了一个隐含的条件:
该条件就是对前面条件取反。
建议:
当有if...elseif...时候,应该先判断【范围小】的条件。
Java7增强后switch语句,
语法格式是这样的:
switch(<表达式>)//此处的表达式可以是byte、short、char、int、String(Java7)、枚举
{
case值1:
case块可出现1~N次
break;
case值2:
break;
case值3:
break;
default:
//
}
Java会去计算<表达式>的值,如果表达式的值与后面指定case的值相同时,就会进入执行对应的case代码块。
switch允许省略case块的break;
如果switch省略了case后面break后,从第一个能进入的case块开始,然后一直执行每个c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 疯狂JAVA讲义 疯狂 JAVA 讲义 上课 笔记 教学 教材