java基础知识及详细笔记

时间:2021-11-18 07:36:10

第一章:初识java

1.1.java的概述

ü  什么是计算机程序:计算机按照某种顺序而完成的一系列有序指令的集合。

ü  Java的作用:1:安装和运行本机上的桌面程序。2:通过浏览器访问面向internet的应用程序

ü  Java技术平台:1.java SE是java的核心2.java EE主要用于网络程序和企业应用开发。

1.2.开发一个java程序

n  开发java程序的步骤:

  1. 编写源程序
  2. 编译源程序
  3. 运行程序

n  Java程序的结构

  1. 编写程序框架(public class HelloWorld{})
  2. 编写main()方法的框架(public static void main(String[] args){})
  3. 编写代码(Syetem.out.println(“HelloWorld”);)

Java程序的注释

  1. 单行注释(//开头后面的被视为注释)
  2. 多行注释(/*、、、内容、、、、、、*/)
  3. 文档注释(/**、、、、、内容、、、、*/)用于程序开始

n  Java编码规范

ü  类名必须是public

ü  一行一条语句

ü  用{}括起来的部分表示层次结构,{一般放在行末,}与该结构首字母对齐,独占一行。

ü  低一层的代码应该比高一层的缩进若干个空格。

ü  类名与文件名一样

ü  Viod必不可少

ü  注意大小写

ü  ;必须有

ü  .必须有

1.3. MyEclipse的基本使用

步骤y:

ü  创建一个java项目

ü  编写java源程序

ü  编译java源程序

ü  运行java程序

第二章:变量、数据类型和运算符

2.1.变量和数据类型

n  变量:是存储数据的基本单元,相互独立

n  数据类型:1.int(整型)2.double(双精度浮点型)3.char(字符型)4.String(字符串)5.boolean布尔类型(判断型)

n  变量必须先声明赋值才能使用      (数据类型 变量名=值)

n  变量命名规则

ü  首字母:小(首字母小写)下(可以含有下划线)美(可以含有$符号)

ü  其它的字母:小、下、美、数字

ü  不能使用java关键字

2.2.运算符

n  赋值运算符

=就是我们所学的赋值运算符

n  算数运算符

+、-、*、/、%(%就是求余)(/就是求商)

n  关系运算符

>/</>=/<=/==/!=/(!=不等于)(==等于)

2.3数据类型转换

n  自动类型转换

²  数据类型要兼容

²  目标类型大于类型

n  强制类型转换

目标类型小于源类型

\t(缩进)

\n(将光标移到下一行第一格)

运算符的优先级:

最高的优先级:()

最低的优先级:赋值运算符(=)

优先级顺序:算数运算符>关系运算符>逻辑运算符

第三章:选择结构(一)

3.1.if选择结构

3.1.1:为什么需要if结构

有时候需要先判断,再输出,所以会用到if选择结构

3.1.2:什么是if选择结构

更具条件判断再做处理的一种语法结构。

语法:             if(条件){

代码块

                            }

运算符:

&&

与,并且

必须两条同时为真,结果才为真

||

或,或者

只需要一条为真,结果就为真

条件为真,结果为假。(刚好相反)

 

3.2.多重if选择结构

语法:                    if(条件1){

}else  if(条件2){

}else  if(条件3){

}else{

}(注意空行处,为代码块)

3.3.嵌套if选择结构

语法                         if(条件1){

If(条件2){

}else{

}

}else{

}(空行处,为代码块)

第四章:选择结构(二)

4.1.switch选择结构

4.1.1:为什么使用switch选择结构

因为switch选择结构可以方便的解决等值判断的问题

4.1.2:什么是switch选择结构

语法:             switch(表达式){

case 1:

(空行处为代码块)          break;

case 2:

break;

default:

break;

}

Switch

表示开关,

Case

表示情况,情形

Default

表示默认

Break

表示停止

注意:break,不能省略,否则会全部执行程序

4.2.选择结构总结

If选择结构

处理单一组合或条件

多种if选择结构

处理复杂的分支情况

If else选择结构

处理简单的分支情况

嵌套选择结构

用于叫复杂的情况

第五章:循环结构(一)

5.1循环结构

5.1.1:什么是循环结构

反复进行相同或类似的操作!!

5.2while循环结构

5.2.1什么是while循环结构

While循环结构一般是:先判断,再执行

语法:                           while(循环条件){

}(上面空行表示代码块)

循环结构执行顺序:

声明初始化循环变量

判断条件是否满足,满足执行操作,否则退出

执行完操作后,再判断循环条件,决定继续执行还是退出

循环结构使用步骤

分析循环条件和循环操作

套用while语法写出代码

检查能否退出

5.3程序调试

什么是程序调试:

满足暂停程序,观察变量和逐条执行语句功能的工具盒方法总称

步骤:

分析错误,设置断点

启动调试,单步执行

观察代码运行情况

5.4  do-while循环结构

什么是do  while?

Do  循环关键字在前面,然后是大括号的循环操作,接着是while关键字后的循环条件,do while 一分号结束。。

Do while是先执行一次,再判断、

语法                  do{

}while(条件);(中间空行处为代码块)

Do  while步骤:

分析循环条件和循环操作

套用do while语法写出代码

检查能否退出

第六章:循环结构(二)

6.1  for循环结构

为什么需要for循环

在解决固定的循环次数,而且看上去更加简洁

For循环结构的结构:

初始部分:循环的初始状态

循环体:重复循环的操作

迭代部分:循环次数的累加,下一次开始需要执行

循环条件:判断是否继续循环操作

语法:

For(表达式1  表达式2  表达式3){

//循环体

}

表达式一

赋值语句,循环条件初始部分

表达式二

条件语句,循环结构的循环条件

表达式三

赋值语句,通常i++或i--。迭代部分

6.2跳转语句

Break语句:

Break语句用于终止某个循环,使程序调到循环体外,在循环体中在break后的语句不在执行,循环停止

使用场合:可以用于任何循环结构,还可以用于switch选择结构中

Continue:

Continue       只用于循环结构中。。

Continue顺序  语句跳出本次循环,进入下一次循环。

6.3循环结构总结

循环结构必不可少的部分:

初始部分

循环条件(缺少一个循环都可能好粗问题)

循环体

迭代部分

执行顺序不同

While:先提条件判断  然后执行循环体   如果不成立,退出

Do  while:先执行循环体一遍,再条件判断,循环至少一次

For:先执行初始部分,再 条件判断,然后执行循环体,最后在进行迭代部分计算,如果不成立,跳出循环体

第八章:数组

8.1数组的概述

8.1.1为什么需要数组:

因为数组可以存放许多相同的数据类型!!编写程序时省去了很多代码量!!

8.1.2java中的数组:

在java中,数组就是一个变量,用于将相同的数据类型的数据存储在内存中,数组中每个元素都是相通的数据类型

数组就是在内存中划分一串连续的空间!!

数组的基本要素:

1.标识符:就是数组的名称,用于区分不同的和数组。

2.数组元素:数组中存放的数据。

3. 数组下标:在数组中为了准确的的到下标,我们对数组的元素进行标号,这个编号就是数组下标。

4.元素类型:存储在数组中应该是同一种类型,因此成为元素类型。

8.2如何使用数组

8.2.1使用数组的步骤:

声明数组

分配空间

赋值

对数组进行使用和处理

声明和数组的语法:    @数据类型[] 数组名    @数据类型  数组名[]

分配空间的语法:     1数组名=new  数据类型[数组长度]    2数据类型[]   数组名=new  数据类型[数组长度]

赋值的语法:      数据类型[]  数组名={元素1    元素2    元素3}

再循环中,循环变量i从0开始递增直到达到数组的最大长度,每次循环加1.。。

数组的下标是从0开始

数组的下标最大比元素的个数值小1

8.3数组的应用

8.3.1数组的排序

语法:Arrays.Sort数组名)

注意:排序时,必须在类上面导入这个类:import java..util..Arrays

注意:在排序之前加上   Arrays.sort(数组名)    就可以完成升序排列了

8.3.2数组的最大值:

先声明一个变量,然后再数组中随便找一个来把值赋给这个变量,然后再通过循环把其余元素一个一个的和它比较,然后如果这个变量值小于数组中的元素就把这个元素值赋给它,直到循环结束

8.3.3想数组中插入元素:

首先声明一个长度比此前大一的数组,然后给它的元素赋值,把最后面那个空着,输入新增的成绩,通过循环把这个和里面的全部比较一次,入过输入的比他大,就把它的下标值给它,跳出,然后再把它后面的元素通过循环来后移。然后再插入此变量。然后通过循环输出就可以了

第九章:循环结构的进阶

9.1二重循环的结构

9.1.1:为什么使用二次循环

因为循环可以解决很多从回复的动作,达到需求。

9.1.3什么是二重循环:

二重循环就是一个循环体内包含另一个完整的循环结构。循环结构可以随便嵌套!!!!

循环结构外层称为外层循环,内部称为内层循环,二重循环   外层循环一次,内层全部循

环。。。

9.1.4;如何使用二重循环

二重循环打印图形   一般外层循环控制行数,内层循环控制每行的数目

9.2跳转语句的进阶

9.2.1在二重循环中使用continue语句

循环时,continue跳出本次循环,进行下一次循环(还是执行本层循环)

9.2.2在二重循环中使用break语句

跳出本层循环,可能会执行宁外一层循环

9.2.3continue与break的对比

他们在内层时,只会影响到内层循环,对外层没有任何影响,他们不同在于跳转位置不同;

Continue:   跳出本次,进行下一次

Break    跳出本层循环,提前结束本层循环,执型循环下面的语句

第十一章:类和对象

11.1对象

11..1.1身边的对象:

现实世界什么东西都可以看做对象。。。     万物皆对象

11.1.2对象的属性和方法

属性    对象的静态特征可以看做属性

方法    对象的动态特征可以看做方法

对象::是用来描述客观事物的一个实体,由一组属性和方法组成

11.1.3封装

封装就是把一个事物包装起来。并尽可能的隐藏细节

对象也具有封装性

11.2类

11.2.1类核对象 的关系

在java面向对象编程中,类是拿来创建类的实例,这个实例就是对象

他们之间的关系就是具体与抽象的关系,,,类是多个对象综合抽象而成的结果,是实体对象的概念模型!!

11.2.2类是对象的类型|:

类是对象的类型     定义类就可以抽取同类实体的功效自定义一种数据类型!!!

11.3java是面向对象的语言

11.3.1java类模板

语法:   public  class 类名{

//定义和属性

属性一的类型   属性1

属性二的类型   属性2

定义方法部分

方法1

}        方法2

类的命名规则:

  • 不能使用java关键字
  • 不能包含任何空格或“.”以及除下划线—和$符号
  • 不能以数字开头

类名通常以多个单词组合而成的每个单词的首字母大写

11.3.2如何定义类

类定义了对象将会拥有的属性和方法

定义类语法:  public class  类名{

}

定义类的步骤:

定义类名

编写类的属性                   (又名 成员变量)

编写类的方法

定义方法的语法:

Public  返回类型    方法名(){

方法体

}

11.3.3如何创建使用对象

用类来创建对象,,,由类生成对象,成为类的实例话过程,一个类可以生成多个对象,一个实例就是一个对象

语法:     类名  对象名=new   类名();

调用方法和属性的方法如下:

对象名.属性(掉用属性)

对象名.方法()(调用方法)

Main方法是程序的入口。没有就不能执行

11.3.5面向对象的优点

与人类思维一致,从人的思维角度出发,用对象来模拟现实的实体

信息隐藏:提高了程序的可维护性和安全性,封装实现了信息的隐藏和模块化。

提高了程序的可重用性:一个类可以创建多个对象实例,增强重用性!!!

第十二章:类的无参方法

12.1类的方法概述

12.1.1什么是类的方法

类是由具有一组相同属性和共同行为的实体抽象而来的

12.1.2如何定义类的方法

方法的名称

方法的返回值

方法的主体

语法:public   返回值类型   方法名(){
}                                               //方法的主体
编写方法的注意事项:

方法体放在一对大括号中,方法体就是一段程序代码,完成一段工作。

方法名主要在调用这个方法时使用,在java中一般采用骆驼命名法。

方法执行后可能返回一个结果,该结果的类型称为返回值类型。使用return返回值。

n  Return:打断正在执行的方法,就是说return后面的代码不会执行。

12.1.3:方法的调用

n  在程序中通过使用方法名称从而执行方法中包含的语句,这一过程就叫方法的调用。

语法:   对象名.方法名()!!

当调用其他类的方法时,需要先创建对象,然后再调用方法。。。

当调用本类的方法时,不须创建对象,直接调用对象。。。

Return 后面只能跟一个变量

错误:

  1. 方法的返回值类型为void时,后面不能用return!!
  2. 方法不能返回多个值
  3. 多个方法不能相互嵌套!!
  4. 不能在方法外部直接写逻辑程序代码!

12.2变量的作用域

在类中定义的变量:叫成员变量     成员变量作用域整个类中

在方法或结构体类定义的变量称为局部变量  局部变量作用域当前结构

初值不同:成员变量有初值      局部变量没有初值 ,必须先赋值在使用

注意:

在同一个方法中,不允许有相同的局部变量。在不同的方法中,可以有同名的局部变量。

局部变量可以和成员变量同名,并且在使用时,局部变量具有更高的优先级

12.3面向对象编程的优点

面向对象编程主要有重要性,灵活性,和扩展性,作用强大!!!

面向对象基本的原则是计算机由单个能起到作用的子程序组合而成的!!

12.4javaDoc的注释

12.4.1javadoc是什么??

它能够崇源代码中抽取类,,方法,,成员等注释!!形成一个和源代码配套的api帮助文档(简单的说就是介绍该类,累的方法,和成员变量的文档)是在编写程序的一套特色的标签作为注释!!javadoc就是可以生成程序的开发文档!

语法:

JavaDoc是以注释/**开头,,以*/结尾的!

每个注释包含一些描述性的文本及若干个javadoc标签!

12.4.2如何生成javaDoc文档

使用命令方式生成!

使用myeclise工具生成!!    Flie   Export    java    javadoc

第十四章:带参的方法

14.1带参方法

14.1.1定义带参方法

参数是调用者提供给定义类的这边的!!

语法:《访问修饰符》  返回值类型   《方法名》(参数列表){                                    方法的主体

}

注释:访问修饰符:指该方法的权限范围(public   protected  private)public 的权限最大!!!

返回值类型:方法的返回值的类型,如果没有任何返回值就加void类型!如果有返回的话,   用return来接收!

方法名:就是定义方法的名字!必须是合法的标示符!

参数列表:指传送给方法的参数列表,列表可以是用逗号隔开!

14.1.2:调用带参方法与调用无参方法的语法相同,但是调用带参方法时必须传入实际的参数值。

语法:  对象名.方法名(参数1,参数2,参数3)

形参和实参:形参是在定义的时候对参数的称呼!目的是定义方法需要传入的参数的类型,实参是在调用方法的时候的值参数称呼!

调用方法时,注意:先示例化对象,再调用方法,

实参的类型,数量,顺序要与形参一一对应!!

14.1.3:带多个参数的方法

数据类型和个数和顺序一一对应!!

14.2深入理解带参方法

参数可以是单个参数,还可以是数组,还可以是对象!

14.3包

14.3.1:为什么需要包

为了防止文件名一样引起的冲突!!放在不同的包中就避免了冲突了!

作用:

可以将类组成较小的单元,易于查找和使用相应的文件!

防止命名冲突,可以在不同的包中进行存储!

包允许在更广的范围保护类,数据和方法,在包类定义类,包外的代码可能不能访问。

14.3.2:如何声明包     前面必须包含一个package的命令作为java源文件的第一条语句!

语法:   package  包名

14. 3.3:使用myeclipse创建包

1.分别创建包和类         file    new       package     new  java  package添加!

2.在创建类的过程创建包  首先创建项目,然后直接创建类,然后添加包!

14.3.4:包和目录的关系

包的嵌套反应了文件系统的目录层次!声明包事实上是在文件系统中创建了相应的一层一层文件夹!而类的文件就是存储在最内层的。

14.3.5:如何导入包

关键字:import在最前面+包名.类名/import+包名.*;

第十五章:字符串

15.1字符串的概述

字符串是一系列字符的组成的序列。

步骤:

定义并初始化字符串

使用字符串,对字符进行一一处理。

15.1.2:字符串的长度:

语法:    字符串.length();

15.1.3字符串的比较

语法:

字符串1.equals.字符串2     区分大小写的!!!

返回的是个布尔类型的值(true/false)

==比较的是内存首地址是否相同,equals比较的是具体的值。(更精确)

字符串1.equalsIgnoreCase(字符串2)    不区分大小写的!!

方法:

ü  To lowercase();   转换字符串为小写

ü  ToUpperCase();  转换字符串为大写

15.2复杂的字符串处理

15.2.1:字符串的连接

直接用加号(+)连接

字符串1.concat(字符串2)

15.2.2字符串的提取和查询(方法)

Indexof(int+要搜索的字符)      找到第一个出现此字符的坐标

Indexof(String  +变量名)  找到第一个出现此字符的坐标

LastIndexof(int +字符)找到最后一个出现此字符的坐标

LastIndexof(String +字符)找到最后一个出现此字符的坐标

String  substring(int  index)提取从此位置开始的字符

String  substring(index  beginindex   ,index endindex)提取begin位置到end位置的字符!!

String  trim()     返回一个前后不含有任何空格调用的字符(忽略空格和其他符号)

15.2.3:字符串的拆分:

语法:  字符串1.split(””);

步骤:先创建一个数组,要么赋值要么先声明,然后用这个数组来接收这个    源字符串.spilt(“”);

15.3  StringBuffer类

15.3.1:如何使用StringBuffer类

它是String类的增强版,位于java.lang包中

步骤:

声明StringBuffer对象并初始化

使用StringBuffer对象

15.3.2常用的Stringbuffer类的方法

字符串.tostring();     将StringBuffer类型的字符串转化为String对象并返回!    例:String  s1=sb2(Stringbuffer).tostring();

方法;     字符串1.append.(字符串2);      将字符串2链接到字符串一后并返回!!

字符串1.   insert() (位置,参数);  将参数插入到字符串1的指定位置后并返回,参数可以包括String的任何类型(什么都可以)

方法:总结

获得字符串长度:length();

比较字符串:equals();

链接字符串:concat();

提取字符串:substring();

搜索字符串:indexof();

拆分字符串:spilt();

Stringbuffer类型:

转换成String类型:   tostring();

连接字符串:  append();

插入字符串:   insert();