疯狂java讲义李刚上课笔记.docx

上传人:b****1 文档编号:14332272 上传时间:2023-06-22 格式:DOCX 页数:23 大小:23.76KB
下载 相关 举报
疯狂java讲义李刚上课笔记.docx_第1页
第1页 / 共23页
疯狂java讲义李刚上课笔记.docx_第2页
第2页 / 共23页
疯狂java讲义李刚上课笔记.docx_第3页
第3页 / 共23页
疯狂java讲义李刚上课笔记.docx_第4页
第4页 / 共23页
疯狂java讲义李刚上课笔记.docx_第5页
第5页 / 共23页
疯狂java讲义李刚上课笔记.docx_第6页
第6页 / 共23页
疯狂java讲义李刚上课笔记.docx_第7页
第7页 / 共23页
疯狂java讲义李刚上课笔记.docx_第8页
第8页 / 共23页
疯狂java讲义李刚上课笔记.docx_第9页
第9页 / 共23页
疯狂java讲义李刚上课笔记.docx_第10页
第10页 / 共23页
疯狂java讲义李刚上课笔记.docx_第11页
第11页 / 共23页
疯狂java讲义李刚上课笔记.docx_第12页
第12页 / 共23页
疯狂java讲义李刚上课笔记.docx_第13页
第13页 / 共23页
疯狂java讲义李刚上课笔记.docx_第14页
第14页 / 共23页
疯狂java讲义李刚上课笔记.docx_第15页
第15页 / 共23页
疯狂java讲义李刚上课笔记.docx_第16页
第16页 / 共23页
疯狂java讲义李刚上课笔记.docx_第17页
第17页 / 共23页
疯狂java讲义李刚上课笔记.docx_第18页
第18页 / 共23页
疯狂java讲义李刚上课笔记.docx_第19页
第19页 / 共23页
疯狂java讲义李刚上课笔记.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

疯狂java讲义李刚上课笔记.docx

《疯狂java讲义李刚上课笔记.docx》由会员分享,可在线阅读,更多相关《疯狂java讲义李刚上课笔记.docx(23页珍藏版)》请在冰点文库上搜索。

疯狂java讲义李刚上课笔记.docx

疯狂java讲义李刚上课笔记

第一章到第十二章

时间:

2021.03.04

创作:

欧阳地

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块开始,然后一直执行每个case块的代码(此时根本不判断case后的值),此时根本不会判断case后的值。

3.循环(回圈)

控制程序将一段多次重复执行。

★while循环

while(<逻辑表达式>)

{

//循环体

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2