首页 > 代码库 > 第一、二次笔记总结

第一、二次笔记总结


早上:

1:重点在于开发环境的设置(3课时)

2:编程基础(2课时):

3:Java语言介绍、main函数、类文件介绍

笔记:


1:常用的DOS命令

A:盘符切换

盘符: 然后回车

B:列出当前目录下的文件以及文件夹

dir 然后回车

C:创建目录(文件夹) 了解

md 目录名称

D:删除目录   了解

rd 目录名称

E:进入指定目录

a:单级目录

cd 目录名称

b:多级目录

cd 多级目录名称,目录间用\隔开的

F:回退指定目录

a:单级目录

cd ..

b:多级目录

cd\

G:删除文件

del 文件名称

del *.txt 删除所有以.txt结尾的文件

H:清屏

cls

J:退出

exit


2:Java语言(了解)

(1)Java语言概述

A:Java之父

詹姆斯.高斯林

B:正式更名为:Java

1995.5.23

C:版本演进

JDK4,JDK5,JDK6,JDK7,JDK8

(2)JDK的平台版本

A:JavaSE

java基础

B:JavaME

android 手机访问

C:JavaEE

web 电脑上通过浏览器访问

(3)跨平台性(理解)

由JVM保证了java语言的跨平台。


注意:

java语言是跨平台的,jvm不是跨平台的。

(4)JRE和JDK的作用和关系(理解)

A:JVM

保证Java语言跨平台

B:JRE

JVM + 核心类库

Java程序的运行环境

C:JDK

JRE + 开发工具

Java程序的开发环境

3:JVM,JRE和JDK的各自作用和关系

A:JVM

保证Java语言跨平台性

B:JRE

Java程序的运行环境

包括:JVM和核心类库

C:JDK

Java程序的开发环境

包括:JRE和开发工具



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

(1)下载

到官网。

(2)安装

傻瓜式安装。


建议:

A:在D盘建立一个目录:develop

B:傻瓜式安装,修改安装的路径到d盘的develop

C:路径如下

JDK:

D:\develop\Java\jdk1.7.0_72\

JRE:

D:\develop\Java\jre7\

(3)卸载

A:控制面板

B:360之类的软件卸载工具

(4)JDK安装后的目录介绍

5:开发第一个Java程序(HelloWorld)

A:找到JDK安装的bin目录,因为开发工具在这里。

D:\develop\Java\jdk1.7.0_72\bin

B:在bin目录下新建一个文本文件,并修改其名称为:

HelloWorld.java


java源文件的扩展名为:.java

C:用windows记事本打开HelloWorld.java文件,写内容

D:Java程序最基本的组成单位是类,所以首先我们要定义一个类。

怎么定义呢?

格式:

class 类名 {

类体

}


建议:类名和文件名一致。

E:一个类要想独立运行,必须写一个主方法。

怎么写主方法呢?

格式:

public static void main(String[] args) {

方法体

}

F:在主方法中写一条输出语句。

怎么写输出语句呢?

格式:

System.out.println("你要输出的内容");


6:Java程序的开发和执行流程

A:首先编写java源代码程序,扩展名.java

HelloWorld.java

B:在命令行模式中,输入javac命令对源代码进行编译,生成字节码文件

javac 文件名(带扩展名)

C:在命令行模式中,输入java命令对字节码文件进行执行

java 类名


练习:

请通过windows记事本写一个程序,在控制台输出你自己的名称(拼音)

7:常见问题(掌握)

(1)找不到文件

A:后缀名被隐藏

B:文件名写错了

(2)单词拼写错误

java程序是严格区分大小写的

(3)括号一定要成对

(4)非法字符

一般都是中英文符号问题(中英文分号的问题最常见)


8:配置path环境变量

A:为什么要配置path环境变量呢?

是为了让javac命令可以在任意目录下使用。

B:如何配置呢?

a:方式1

把JDK的bin目录配置到path中。

修改系统属性中的path环境变量:

D:\develop\Java\jdk1.7.0_72\bin;以前的path内容

b:方式2

创建新的变量名称:

变量名:JAVA_HOME

变量值:D:\develop\Java\jdk1.7.0_72

修改path变量:

用%%引用JAVA_HOME即可。


%JAVA_HOME%\bin;以前的path内容


等价于下面的内容:

D:\develop\Java\jdk1.7.0_72\bin;以前的path内容


练习:

先配置环境变量,然后在d盘根目录写一个程序,并编译运行。

请通过windows记事本写一个程序,在控制台输出你自己的名称




下午:

1:重点:int,float,char 

2:基本数据类型和变量定义以及String类型

1.注释:用于解释说明程序的文字


注释的分类及格式:

A:单行注释

B:多行注释


注释作用:

A:解释说明程序,提高程序的阅读性

B:可以帮助我们排错

后面我们会讲解更高级的排错方式

2. 关键字:被Java语言赋予特定含义的单词


关键字特点:

组成关键字的字母全部小写


关键字注意事项

A:goto和const作为保留字存在,目前并不使用

B:类似notepad++这样的高级记事本,针对关键字有特殊的颜色标记,非常直观

蓝色


注意:

main不是关键字。只是被JVM识别的名称。

3. 标识符:就是起名字。

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


组成规则:

A:英文大小写字母

B:数字字符

C:$和_


注意事项:

A:不能以数字开头

B:不能是Java中的关键字

C:区分大小写

class,Class


常见的命名规范:见名知意

假设:

class Student {}

class Phone {}

class S {}

class P {}


包:就是文件夹,用于对类进行分类管理。

单词全部小写。


单级:com

多级:com.baidu,cn.sohu

 a

 a.b

 a.b.c

 a.b.c.d


类或者接口:

一个单词:

首字母大写。

举例:Demo,Student

多个单词:

每个单词的首字母大写。

举例:HelloWorld,MakeName


方法或者变量:

一个单词:

全部小写。

举例:main(),name,show(),age

多个单词:

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

举例:showAllNames(),getNameBySid(),studentMaxAge


常量:

单词全部大写。


一个单词:

举例:PI

多个单词:

举例:STUDENT_MAX_AGE

4. 常量:

在程序执行的过程中其值不可以发生改变


常量的分类:

A:字面值常量

B:自定义常量(面向对象)

字面值常量:

A:字符串常量

用双引号括起来的内容

B:整数常量

所有整数

C:小数常量

所有小数

D:字符常量

用单引号括起来的内容

E:布尔常量

较为特有,只有true和false

F:空常量

null(数组部分讲解)

5. 不同进制的数据组成

二进制:由0,1组成。以0b开头

八进制:由0,1,…7组成。以0开头

十进制:由0,1,…9组成。整数默认是十进制的

十六进制:由0,1,…9,a,b,c,d,e,f(大小写均可)。以0x开头



画图讲解进制:

1.进制的概述和二进制,八进制及十六进制

2.其他进制到十进制

(2.1 将十进制12345转换成十进制12345  2.2 将二进制ob100转换成10进制

 2.3将八进制0100转换成10进制  2.4将ox100转换为10进制)

3.十进制到其他进制(3.1 十进制12345到12345十进制  3.2 十进制52转换为2进制)

4.+7与-7的原码,反码,补码介绍


6. 数据类型分类:

基本类型:4类8种。

引用类型:类,接口,数组。


基本类型:

整数 占用字节 范围

byte 1 -128 ~ 127

short 2 -2^15 ~ 2^15 - 1

int 4 -2^31 ~ 2^31 - 1

long 8 -2^63 ~ 2^63 - 1


1k空间:

1k = 1024 byte

byte = 8bit

浮点数

float 4 -3.403E38 ~ 3.403E38

double 8 -1.798E308 ~ 1.798E308

字符

char 2


Java采用的是unicode编码。所以java中每一个字符占用两个字节。这样就可以存储一个汉字了。


布尔

boolean 1 true,false


注意:

A:默认整数是int类型

B:默认浮点数是double类型

C:如果要定义long类型的变量,建议加L或者l。建议加L。

D:如何要定义float类型的变量,必须加F或者f。建议加F。


7. 这里我们要介绍一个运算符:

+ 做数据的加法。


数据在做运算的时候,会进行类型的转换,只有类型一致才能进行运算。

A:boolean类型不参与。

B:类型转换

隐式转换

强制转换


隐式转换:

从小到大。

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



8. 强制转换:(一般不建议做强制转换,这样会有数据的丢失)

从大到小。


格式:

目标数据类型 变量名 = (目标数据类型)(运算的结果)



9. 字符做加法

其实是去找字符对应的数据值来做加法。

ASCII码表。

基本的字符和数据对应表。

‘0‘ 48

‘A‘ 65

‘a‘ 97


字符串做加法

其实做的是字符串的拼接。


如果有字符串,结果肯定是字符串类型。

10. 面试题:请看下面的程序那一行有问题,并说明为什么。

class DataTypeTest {

public static void main(String[] args) {

byte b1=3,b2=4,b3;

//可能损失精度

b3 = (byte)(b1 + b2);

System.out.println(b3);


byte b4 = 3 + 4;

System.out.println(b4);

}

变量相加:先提升类型,然后做运算。

常量相加:先做运算,如果在指定的范围内,就赋值成功,否则报错。


第二天:


1.几个概念:

1:运算

对常量和变量进行操作的过程称为运算。


2:运算符

对常量和变量进行操作的符号称为运算符。


3:操作数

参与运算的常量或者变量称为操作数。


4:表达式

用运算符把常量或者变量连接起来符合java语法的式子就可以称为表达式。

   不同运算符连接的式子体现的是不同类型的表达式。

a

a + b

a > b


运算符:

算术运算符

赋值运算符

比较运算符

逻辑运算符

三目运算符


算术运算符:

+,-,*,/,

%,++,--

2./和%的区别?

/:除法,得到商

符号相同为正,不同为负

%:除法,得到余数

符号和第一个操作数相同


%的应用:

x%3 等于 0 说明x能被3整除

x%2 等1   说明x是奇数

等0   说明x是偶数

3. ++,--运算符(讲完之后做练习)

作用:++就是加1,--就是减1。

 自增自减运算符


++,--在运算的时候,可以放在操作数的前面,也可以放在操作数的后面

A:单独使用

没有区别

B:参与其他操作使用

后面:先操作,再自增

前面:先自增,再操作

class OperatorDemo3 {

public static void main(String[] args) {

int a = 3;

System.out.println(a);

System.out.println("-------------");

//a++;

//++a;

//System.out.println(a);


//int b = a++;

int b = ++a;

System.out.println(a);

System.out.println(b);

}

}



4.赋值运算符:

基本:=

扩展:+=


扩展的赋值运算符隐含了强制类型转换:

int a = 10;

a += 20;

a = (a的数据类型)(a + 20)


5. 关系运算符:

==,!=,>,>=,<,<=


注意:

A:比较运算符的结果肯定是boolean。

B:你到底是使用"="还是使用"==",你自己要清楚。


6. 逻辑运算符:

&,|,!,^

&&,||


注意:

逻辑运算符用于连接关系表达式


结论:

&: 有false则false

|: 有true则true

!:改变结果,取反

^:相同false,不同true

记忆:情侣关系(男男,男女,女男,女女)

7. 最常用的逻辑运算符;

!,&&,||


&&和&:

结果一样,但是&&具有短路效果,左边如果是false,右边不执行。

||和|:

结果一样,但是||具有短路效果,左边如果是true,右边不执行。

8. 操作数据的个数。

三元运算符:

格式:?:


(比较表达式)?表达式1:表达式2;

执行流程:

如果条件为true,运算后的结果是表达式1;

如果条件为false,运算后的结果是表达式2;

需求:获取两个数据中的最大值

嵌套使用(获取三个数的最大值)


9. 我们目前在写程序的时候,数据值都是固定的,但是实际开发中,数据值肯定是变化的,

所以,我准备把数据改进为键盘录入,提高程序的灵活性。


键盘录入数据的步骤:

A:导包

import java.util.Scanner;

位置:class之前,上面

B:创建键盘录入对象

Scanner sc = new Scanner(System.in);

C:获取键盘录入数据

int i = sc.nextInt();

需求:键盘录入两个数据,并对这两个数据求和,输出其结果


分析:

A:键盘录入两个数据

三步实现

B:对这两个数据求和

C:输出其结果

需求:键盘录入两个数据,获取这两个数据中的最大值

需求:键盘录入两个数据,比较这两个数据是否相等

10. 流程控制语句:

A:顺序结构(没有基本格式,从上往下依次执行)

B:选择结构(有格式)

if

switch

C:循环结构(有格式)

for

while

do...while


顺序结构:

写在前面的先执行,写在后面的后执行

11. if语句

三种格式。



11.1 if语句格式1:

if(比较表达式) {

    语句体

}


执行流程:

首先判断比较表达式看其结果是true还是false

如果是true就执行语句体

如果是false就不执行语句体

需求:1.如果我得了100分爸爸就给我买飞机

 2.如果数字是10,就输出10这个数字

if语句的注意事项:

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

B:一般来说:

有左大括号就没有分号,有分号就没有左大括号


11.2 if语句格式2:

if(比较表达式) {

    语句体1;

}else {

    语句体2;

}


执行流程:

首先判断关系表达式看其结果是true还是false

如果是true就执行语句体1

如果是false就执行语句体2

需求:1.判断两个数的最大值(用if和三元实现)

 2.判断两个数是否相等(用if和三元实现)

11.3 if语句的三种格式:

格式1:适合做一种情况的判断

格式2:适合做二种情况的判断

格式3:适合做多种情况的判断


if语句格式3:

if(比较表达式1) {

    语句体1;

}else  if (比较表达式2) {

语句体2;

}

else {

语句体n+1;

}


执行流程:

首先判断关系表达式1看其结果是true还是false

如果是true就执行语句体1

如果是false就继续判断关系表达式2看其结果是true还是false

如果是true就执行语句体2

如果是false就继续判断关系表达式…看其结果是true还是false

如果没有任何关系表达式为true,就执行语句体n+1。


需求:

键盘录入学生成绩,根据学生成绩判断,输出学生等级

90-100 A

80-89 B

70-79 C

60-69 D

60以下 E

练习:

需求:键盘录入x的值,计算出y的并输出。

x>=3 y = 2x + 1;

-1<=x<3 y = 2x;

x<=-1 y = 2x – 1;


需求:键盘录入月份的值,输出对应的季节。

春 3,4,5

夏 6,7,8

秋 9,10,11

冬 12,1,2

获取三个数据中的最大值

if语句的嵌套。

if() {

if语句

}

12 .switch语句的格式:

switch(表达式) {

case 值1:

语句体1;

break;

   case 值2:

语句体2;

break;

   …

   default:

语句体n+1;

break;

}



格式解释:

A:switch表示这是switch语句

B:表达式

表达式的取值:byte,short,int,char

JDK5以后可以是枚举

JDK7以后可以是String

C:case后面跟的是要和表达式进行比较的值

D:语句体部分可以是一条或多条语句

E:break表示中断,结束的意思,可以结束switch语句

F:default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。


执行流程:

首先计算出表达式的值

其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。

最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。


需求:

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

13. switch语句的注意事项:

A:case后面只能是常量,不能是变量。

B:多个case后面的值不能出现相同的。

C:default可以省略吗?

可以。但是不建议。

D:break可以省略吗?

可以。但是不建议。

容易出现case穿透。

E:default的位置一定要在最后吗?

可以在任意位置,建议在最后。

F:switch语句的结束条件

a:遇到break

b:执行到末尾


练习:

1.class SwitchTest {

public static void main(String[] args) {

int x = 2;

int y = 3;


/*

switch(x){

default:

y++;

break;

case 3:

y++;

case 4:

y++;

}

*/


/*

switch(x){

default:

y++;

case 3:

y++;

case 4:

y++;

}

*/


switch(x){

case 3:

y++;

case 4:

y++;

}


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


}

}

1.输入数字,输出对应的星期

2.模拟做单项选择题,根据你的选择,给出对应的答案。(表达式是字符的情况)

3.用switch语句实现键盘录入月份,输出对应的季节

if语句和switch语句的各自使用场景:

if语句使用场景:

A:针对结果是boolean类型的判断

B:针对一个范围的判断

C:针对几个常量值的判断


switch语句使用场景:

针对几个常量值的判断


switch语句能够实现的,if一定能够实现。反之不成立

14. 循环语句组成:

A:初始化语句

一条或者多条语句,这些语句完成一些初始化操作。

B:判断条件语句:

这是一个boolean表达式,这个表达式能决定是否执行循环体。

C:循环体语句

这个部分是循环体语句,也就是我们要多次做的事情。

D:控制条件语句

这个部分在一次循环体结束后,下一次循环判断条件执行前执行。

通过用于控制循环条件中的变量,使得循环在合适的时候结束。


循环:

for

while

do..while


for循环:

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

循环体语句;

}


执行流程:

A:执行初始化语句

B:执行判断条件语句

如果是true:就继续执行。

如果是false:就结束循环。

C:执行循环体语句

D:执行控制条件语句

E:回到B


执行次数:

A:初始化语句 

只执行一次

B:判断条件语句

一次以上

C:循环体语句和控制条件语句

0次以上


需求:

请在控制台输出10次"HelloWorld"

15. 需求:

A:请在控制台输出数据1-10

B:请在控制台输出数据10-1

16.

求出1-10之间数据之和


分析:

A:获取1-10的数据

for循环就OK了。

B:定义一个求和变量,用于保存求和的结果。

求和变量的初始化值是0。

C:看如下的格式:

0+1=1

1+2=3

3+3=6

6+4=10

10+5=15

...


看每一个式子:

int sum = 0;

1 = 0 + 1 // sum = sum + 1;

3 = 1 + 2 // sum = sum + 2;

6 = 3 + 3 // sum = sum + 3;

10 = 6 + 4 //...

15 = 10 + 5 //...

...


求和公式:

int sum = 0;


for(int x=start; x<=end; x++) {

sum += x;

}


System.out.println(sum);



现场做:

求和1-100案例:

int sum = 0;

for(int x=1; x<=100; x++) {

sum += x;

}

System.out.println(sum);

17. 需求:求出1-100之间偶数和


分析:

如何判断数据是偶数。


什么样子的数据是偶数。


2,4,6,8,10,...


x%2 == 0

18. 需求:求5的阶乘


规则:

n! = n*(n-1)*(n-2)*...*3*2*1


19. while循环的格式:

while(判断条件语句) {

循环体语句;

}


变形格式:

初始化语句;

while(判断条件语句) {

循环体语句;

控制条件语句;

}


执行流程:

A:执行初始化语句

B:执行判断条件语句

如果是true:就继续执行。

如果是false:就结束循环。

C:执行循环体语句

D:执行控制条件语句

E:回到B


比对for循环:

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

循环体语句;

}

需求:

1.请在控制台输出10次"HelloWorld"

2.求出1-10之间数据之和

3.求出1-100之间偶数和


20. for循环和while循环的区别

控制条件语句所控制的那个变量,在for循环结束后,就不能再被访问到了,

而while循环结束还可以继续使用,如果你想继续使用,就用while,

否则推荐使用for。原因是for循环结束,该变量就从内存中消失,能够提高内存的使用效率。


使用场景:

for循环适合针对一个范围判断进行操作

什么到什么之间,三位数等

while循环适合判断次数不明确操作


21. 我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。

请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?


分析:

A:定义统计变量,初始化值是0

B:折叠一次,厚度就是以前的2倍

C:折叠次数不明确,用while循环

class WhileTest2 {

public static void main(String[] args) {

int count = 0;


int end = 884800;

int start = 1;


while(start<=end) {

//折叠一次

start*=2;


count++;

}


System.out.println(count);

}

}


22. do...while的格式:

do {

循环体语句;

}while((判断条件语句);


变形格式:


初始化语句;

do {

循环体语句;

控制条件语句;

}while(判断条件语句);


执行流程:

A:执行初始化语句

B:执行循环体语句

C:执行控制条件语句

D:执行判断条件语句

如果是true:就继续执行。

如果是false:就结束循环。

E:回到B


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

循环体语句;

}


23. 三种循环的区别?

A:do…while循环至少会执行一次循环体。

B:for循环和while循环只有在条件成立的时候才会去执行循环体

 他们是可以相互转换的。


我们在使用循环的时候到底该选择谁呢?

优先考虑for循环,再考虑while循环,最后考虑do…while循环。


注意事项:

死循环

for(;;){}


while(true){}

24. break的使用场景:

A:在选择结构switch语句中

B:在循环语句中


注意:

离开使用场景的存在是没有意义的


break:

遇到break,就中断整个循环。

默认情况下,break只能中断它所属的那个循环。


25. continue的使用场景:

在循环语句中

注意:

离开使用场景的存在是没有意义的

continue  退出本次循环























第一、二次笔记总结