黑马程序员刘意老师java教程每日总结汇总.docx

上传人:b****6 文档编号:5997458 上传时间:2023-01-02 格式:DOCX 页数:119 大小:74.38KB
下载 相关 举报
黑马程序员刘意老师java教程每日总结汇总.docx_第1页
第1页 / 共119页
黑马程序员刘意老师java教程每日总结汇总.docx_第2页
第2页 / 共119页
黑马程序员刘意老师java教程每日总结汇总.docx_第3页
第3页 / 共119页
黑马程序员刘意老师java教程每日总结汇总.docx_第4页
第4页 / 共119页
黑马程序员刘意老师java教程每日总结汇总.docx_第5页
第5页 / 共119页
点击查看更多>>
下载资源
资源描述

黑马程序员刘意老师java教程每日总结汇总.docx

《黑马程序员刘意老师java教程每日总结汇总.docx》由会员分享,可在线阅读,更多相关《黑马程序员刘意老师java教程每日总结汇总.docx(119页珍藏版)》请在冰豆网上搜索。

黑马程序员刘意老师java教程每日总结汇总.docx

黑马程序员刘意老师java教程每日总结汇总

DAY01

1:

计算机概述(了解)

(1)计算机

(2)计算机硬件

(3)计算机软件

系统软件:

window,linux,mac

应用软件:

qq,yy,飞秋

(4)软件开发(理解)

软件:

是由数据和指令组成的。

(计算器)

开发:

就是把软件做出来。

如何实现软件开发呢?

就是使用开发工具和计算机语言做出东西来

(5)语言

自然语言:

人与人交流沟通的

计算机语言:

人与计算机交流沟通的

C,C++,C#,Java

(6)人机交换

图形界面:

操作方便只管

DOS命令:

需要记忆一些常见的命令

2:

键盘功能键的认识和快捷键(掌握)

(1)功能键的认识

tab

shift

ctrl

alt

windos

空格

上下左右

回车

截图

(2)快捷键

全选Ctrl+A

复制Ctrl+C

粘贴Ctrl+V

剪切Ctrl+X

撤销Ctrl+Z

保存Ctrl+S

3:

常见的DOS命令(掌握)

(1)常见的如下

盘符的切换

d:

回车

目录的进入

cdjavase

cdjavase\day01\code

目录的回退

cd..

cd\

清屏

cls

退出

exit

(2)其他的几个(了解)

创建目录

删除目录

创建文件

删除文件

显示目录下的内容

删除带内容的目录

4:

Java语言概述(了解)

(1)Java语言的发展史

Java之父

JDK1.4.2

JDK5

JDK7

(2)Java语言的特点

有很多小特点,重点有两个开源,跨平台

(3)Java语言是跨平台的,请问是如何保证的呢?

(理解)

我们是通过翻译的案例讲解的。

针对不同的操作系统,提高不同的jvm来实现的。

(4)Java语言的平台

JavaSE

JavaME--Android

JavaEE

5:

JDK,JRE,JVM的作用及关系(掌握)

(1)作用

JVM:

保证Java语言跨平台

JRE:

Java程序的运行环境

JDK:

Java程序的开发环境

(2)关系

JDK:

JRE+工具

JRE:

JVM+类库

6:

JDK的下载,安装,卸载(掌握)

(1)下载到官网。

A:

也可以到XX搜索即可。

B:

我给你。

(2)安装

A:

绿色版解压就可以使用

B:

安装版必须一步一步的安装,一般只要会点击下一步即可

注意:

建议所有跟开发相关的软件都不要安装在有中文或者空格的目录下。

(3)卸载

A:

绿色版直接删除文件夹

B:

安装版

a:

控制面板--添加删除程序

b:

通过专业的软件卸载工具。

(比如360的软件管家卸载)

7:

第一个程序:

HelloWorld案例(掌握)

classHelloWorld{

publicstaticvoidmain(String[]args){

System.out.println("HelloWorld");

}

}

(1)程序解释:

A:

Java程序的最基本单位是类,所以我们要定义一个类。

格式:

class类名

举例:

classHelloWorld

B:

在类中写内容的时候,用大括号括起来。

C:

Java程序要想执行,必须有main方法。

格式:

publicstaticvoidmain(String[]args)

D:

要指向那些东西呢,也用大括号括起来。

E:

你要做什么呢?

今天我们仅仅做了一个简单的输出

格式:

System.out.println("HelloWorld");

注意:

""里面的内容是可以改动的。

(2)Java程序的开发执行流程:

A:

编写java源程序(.java)

B:

通过javac命令编译生成.class文件

C:

通过java命令运行.class文件

8:

常见的问题(掌握)

(1)扩展名被隐藏

如何找到:

工具--文件夹选项--查看--去除隐藏扩展名的那个勾勾

(2)我要求文件名称和类名一致。

实际上不这样做也是可以的。

但是,注意:

javac后面跟的是文件名+扩展名

java后面跟的类名不带扩展名

(3)Java语言严格区分大小写,请注意。

还有就是单词不要写错了。

(4)见到非法字符:

\65307肯定是中文问题。

我们写程序要求标点符号必须全部是英文状态。

(5)括号的配对问题。

一般来说,括号都是成对出现的。

(6)遇到

在类HelloWorld中找不到主方法,请将主方法定义为

肯定是主方法的格式问题。

9:

path环境变量(掌握)

(1)path环境变量的作用

保证javac命令可以在任意目录下运行。

同理可以配置qq等

(2)path配置的两种方案:

A:

方案1(了解)

B:

方案2

找到环境变量的位置,在系统变量里面

新建:

变量名:

JAVA_HOME

变量值:

D:

\develop\Java\jdk1.7.0_60

修改:

变量名:

Path

变量值:

%JAVA_HOME%\bin;以前的内容

10:

classpath环境变量(理解)

(1)classpath环境变量的作用

保证class文件可以在任意目录下运行

(2)classpath环境变量的配置

找到环境变量的位置,在系统变量里面

新建:

变量名:

classpath

变量值:

E:

\JavaSE\day01\code\HelloWorld案例

DAY02

1:

关键字(掌握)

(1)被Java语言赋予特定含义的单词

(2)特点:

全部小写。

(3)注意事项:

A:

goto和const作为保留字存在。

B:

类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记

2:

标识符(掌握)

(1)就是给类,接口,方法,变量等起名字的字符序列

(2)组成规则:

A:

英文大小写字母

B:

数字

C:

$和_

(3)注意事项:

A:

不能以数字开头

B:

不能是java中的关键字

C:

区分大小写

(4)常见的命名规则(见名知意)

A:

包全部小写

单级包:

小写

举例:

liuyi,com

多级包:

小写,并用.隔开

举例:

cn.itcast,com.baidu

B:

类或者接口

一个单词:

首字母大写

举例:

Student,Demo

多个单词:

每个单词首字母大写

举例:

HelloWorld,StudentName

C:

方法或者变量

一个单词:

首字母小写

举例:

name,main

多个单词:

从第二个单词开始,每个单词首字母大写

举例:

studentAge,showAllNames()

D:

常量

全部大写

一个单词:

大写

举例:

PI

多个单词:

大写,并用_隔开

举例:

STUDENT_MAX_AGE

3:

注释(掌握)

(1)就是对程序进行解释说明的文字

(2)分类:

A:

单行注释//

B:

多行注释/**/

C:

文档注释(后面讲)/***/

(3)把HelloWorld案例写了一个带注释的版本。

后面我们要写一个程序的过程。

需求:

分析:

实现:

代码体现:

(4)注释的作用

A:

解释说明程序,提高了代码的阅读性。

B:

可以帮助我们调试程序。

后面我们会讲解一个更高端的一个调试工具

4:

常量(掌握)

(1)在程序执行的过程中,其值不发生改变的量

(2)分类:

A:

字面值常量

B:

自定义常量(后面讲)

(3)字面值常量

A:

字符串常量"hello"

B:

整数常量12,23

C:

小数常量12.345

D:

字符常量'a','A','0'

E:

布尔常量true,false

F:

空常量null(后面讲)

(4)在Java中针对整数常量提供了四种表现形式

A:

二进制由0,1组成。

以0b开头。

B:

八进制由0,1,...7组成。

以0开头。

C:

十进制由0,1,...9组成。

整数默认是十进制。

D:

十六进制由0,1,...9,a,b,c,d,e,f(大小写均可)组成。

以0x开头。

5:

进制转换(了解)

(1)其他进制到十进制

系数:

就是每一个位上的数值

基数:

x进制的基数就是x

权:

对每一个位上的数据,从右,并且从0开始编号,对应的编号就是该数据的权。

结果:

系数*基数^权次幂之和。

(2)十进制到其他进制

除基取余,直到商为0,余数反转。

(3)进制转换的快速转换法

A:

十进制和二进制间的转换

8421码。

B:

二进制到八进制,十六进制的转换

6:

变量(掌握)

(1)在程序的执行过程中,其值在某个范围内可以发生改变的量

(2)变量的定义格式:

A:

数据类型变量名=初始化值;

B:

数据类型变量名;

变量名=初始化值;

7:

数据类型(掌握)

(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。

(2)分类:

A:

基本数据类型:

4类8种

B:

引用数据类型:

类,接口,数组。

(3)基本数据类型

A:

整数占用字节数

byte1

short2

int4

long8

B:

浮点数

float4

double8

C:

字符

char2

D:

布尔

boolean1

注意:

整数默认是int类型,浮点数默认是double。

长整数要加L或者l。

单精度的浮点数要加F或者f。

8:

数据类型转换(掌握)

(1)boolean类型不参与转换

(2)默认转换

A:

从小到大

B:

byte,short,char--int--long--float--double

C:

byte,short,char之间不相互转换,直接转成int类型参与运算。

(3)强制转换

A:

从大到小

B:

可能会有精度的损失,一般不建议这样使用。

C:

格式:

目标数据类型变量名=(目标数据类型)(被转换的数据);

(4)思考题和面试题:

A:

下面两种方式有区别吗?

floatf1=12.345f;

floatf2=(float)12.345;

B:

下面的程序有问题吗,如果有,在哪里呢?

byteb1=3;

byteb2=4;

byteb3=b1+b2;

byteb4=3+4;

//错误:

不兼容的类型:

从int转换到byte可能会有损失

//因为a+b会默认转为int数据类型,将int转给byte类型是有问题的

//可以采用强制类型转换:

byteb3=(byte)(b1+b2);

C:

下面的操作结果是什么呢?

byteb=(byte)130;

D:

字符参与运算

是查找ASCII里面的值

'a'97

'A'65

'0'48

System.out.println('a');

System.out.println('a'+1);

E:

字符串参与运算

这里其实是字符串的连接

System.out.println("hello"+'a'+1);//helloa1

System.out.println('a'+1+"hello");//98hello

System.out.println("5+5="+5+5);//5+5=55

System.out.println(5+5+"=5+5");//10=5+5

DAY03

1:

运算符(掌握)

(1)算术运算符

A:

+,-,*,/,%,++,--

B:

+的用法

a:

加法

b:

正号

c:

字符串连接符

C:

/和%的区别

数据做除法操作的时候,/取得是商,%取得是余数

D:

++和--的用法

a:

他们的作用是自增或者自减

b:

使用

**单独使用

放在操作数据的前面和后面效果一样。

a++或者++a效果一样。

**参与操作使用

放在操作数的前面:

先自增或者自减,再参与操作

inta=10;

intb=++a;

放在操作数的后面:

先参与操作,再自增或者自减

inta=10;

intb=a++;

(2)赋值运算符

A:

=,+=,-=,*=,/=,%=等

B:

=叫做赋值运算符,也是最基本的赋值运算符

intx=10;把10赋值给int类型的变量x。

C:

扩展的赋值运算符的特点

隐含了自动强制转换。

面试题:

shorts=1;

s=s+1;

//错误:

不兼容的类型:

从int转换到short可能会有损失

//因为s+1后的数据类型是int类型

shorts=1;

s+=1;

//不会报错,因为扩展运算符隐含了强制类型转换

//等效于shorts=(short)(s+1)

请问上面的代码哪个有问题?

(3)比较运算符

A:

==,!

=,>,>=,<,<=

B:

无论运算符两端简单还是复杂最终结果是boolean类型。

C:

千万不要把==写成了=

(4)逻辑运算符

A:

&,|,^,!

&&,||

B:

逻辑运算符用于连接boolean类型的式子

C:

结论

&:

有false则false

|:

有true则true

^:

相同则false,不同则true。

情侣关系。

!

:

非true则false,非false则true

&&:

结果和&是一样的,只不过有短路效果。

左边是false,右边不执行。

||:

结果和|是一样的,只不过有短路效果。

左边是true,右边不执行。

(5)位运算符(了解)

A:

^的特殊用法

一个数据针对另一个数据位异或两次,该数不变

B:

面试题

a:

请实现两个变量的交换

**采用第三方变量

**用位异或运算符

左边a,b,a

右边a^b

b:

请用最有效率的方式计算出2乘以8的结果

2<<3

(6)三元运算符

A:

格式

比较表达式?

表达式1:

表达式2;

B:

执行流程:

首先计算比较表达式的值,看是true还是false。

如果是true,表达式1就是结果。

如果是false,表达式2就是结果。

C:

案例:

a:

比较两个数据是否相等

b:

获取两个数据中的最大值

c:

获取三个数据中的最大值

2:

键盘录入(掌握)

(1)实际开发中,数据是变化的,为了提高程序的灵活性,我们加入键盘录入数据。

(2)如何实现呢?

目前就记住

A:

导包

importjava.util.Scanner;

位置:

在class的上边

B:

创建对象

Scannersc=newScanner(System.in);

C:

获取数据

intx=sc.nextInt();

(3)把三元运算符的案例加入键盘录入改进。

3:

流程控制语句

(1)顺序结构从上往下,依次执行

(2)选择结构按照不同的选择,执行不同的代码

(3)循环结构做一些重复的代码

4:

if语句(掌握)

(1)三种格式

A:

格式1

if(比较表达式){

语句体;

}

执行流程:

判断比较表达式的值,看是true还是false

如果是true,就执行语句体

如果是false,就不执行语句体

B:

格式2

if(比较表达式){

语句体1;

}else{

语句体2;

}

执行流程:

判断比较表达式的值,看是true还是false

如果是true,就执行语句体1

如果是false,就执行语句体2

C:

格式3

if(比较表达式1){

语句体1;

}elseif(比较表达式2){

语句体2;

}

...

else{

语句体n+1;

}

执行流程:

判断比较表达式1的值,看是true还是false

如果是true,就执行语句体1

如果是false,就继续判断比较表达式2的值,看是true还是false

如果是true,就执行语句体2

如果是false,就继续判断比较表达式3的值,看是true还是false

...

如果都不满足,就执行语句体n+1

(2)注意事项

A:

比较表达式无论简单还是复杂,结果是boolean类型

B:

if语句控制的语句体如果是一条语句,是可以省略大括号的;如果是多条,不能省略。

建议:

永远不要省略。

C:

一般来说,有左大括号,就没有分号,有分号,就没有左大括号。

D:

else后面如果没有if,是不会出现比较表达式的。

E:

三种if语句其实都是一个语句,只要有一个执行,其他的就不再执行。

(3)案例:

A:

比较两个数是否相等

B:

获取两个数中的最大值

C:

获取三个数中的最大值(if语句的嵌套)

D:

根据成绩输出对应的等级

E:

根据月份,输出对应的季节

F:

根据x计算对应y的值并输出

(4)三元运算符和if语句第二种格式的关系

所有的三元运算符能够实现的,if语句的第二种格式都能实现。

反之不成立。

如果if语句第二种格式控制的语句体是输出语句,就不可以。

因为三元运算符是一个运算符,必须要有一个结果返回,不能是一个输出语句。

DAY04

1:

switch语句(掌握)

(1)格式:

switch(表达式){

case值1:

语句体1;

break;

case值2:

语句体2;

break;

...

default:

语句体n+1;

break;

}

格式解释说明:

switch:

说明这是switch语句。

表达式:

可以是byte,short,int,char

JDK5以后可以是枚举

JDK7以后可以是字符串

case:

后面的值就是要和表达式进行比较的值

break:

表示程序到这里中断,跳出switch语句

default:

如果所有的情况都不匹配,就执行这里,相当于if语句中的else

(2)面试题

switch语句的表达式可以是byte吗?

可以是long吗?

可以是String吗?

可以,不可以,JDK7以后可以

(3)执行流程:

A:

首先计算表达式的值

B:

和每一个case进行匹配,如果有就执行对应的语句体,看到break就结束。

C:

如果没有匹配,就执行default的语句体n+1。

(4)注意事项:

A:

case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的

B:

default可以省略吗?

可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。

特殊情况:

case就可以把值固定。

A,B,C,D

C:

break可以省略吗?

可以省略,但是结果可能不是我们想要的。

会出现一个现象:

case穿透。

最终我们建议不要省略

D:

default一定要在最后吗?

不是,可以在任意位置。

但是建议在最后。

E:

switch语句的结束条件

a:

遇到break就结束了

b:

执行到末尾就结束了

(5)案例:

A:

键盘录入一个数字(1-7),输出对应的星期几。

B:

单项选择题

C:

键盘录入一个字符串的问题

Strings=sc.nextLine();

D:

根据给定的月份,输出对应的季节

看程序写结果:

版本1:

intx=2;

inty=3;

switch(x){

default:

y++;

break;

case3:

y++;

case4:

y++;

}

System.out.println("y="+y);//y=4

版本2:

intx=2;

inty=3;

switch(x){

default:

y++;

case3:

y++;

case4:

y++;

}

System.out.println("y="+y);//y=6;先执行3、4,不符合条件,然后执行default,最后再穿透//执行一次3、4的执行语句。

(6)if语句和switch语句各自的场景

A:

if

针对boolean类型的判断

针对一个范围的判断

针对几个常量的判断

B:

switch

针对几个常量的判断

2:

循环语句(掌握)

(1)有三种:

for,while,do...while

(2)for循环语句

A:

格式

for(初始化语句;判断条件语句;控制条件语句){

循环体语句;

}

执行流程:

a:

执行初始化语句

b:

执行判断条件语句

如果这里是true,就继续

如果这里是false,循环就结束

c:

执行循环体语句

d:

执行控制

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

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1