当前位置:文档之家› Java基础笔记

Java基础笔记

目录

第一章变量与常量 (6)

1.1 变量 (6)

1.1.1 定义 (6)

1.1.2 分类 (6)

1.2 常量 (7)

1.2.1定义 (7)

1.2.2 分类 (7)

第二章运算符 (8)

2.1运算符的分类 (8)

2.1.1 算术运算符 (8)

2.1.2 移位运算符 (9)

2.1.3 比较运算符 (11)

2.1.4 位运算符 (12)

2.1.5 逻辑运算符 (13)

2.1.6 条件运算符 (14)

2.1.7 赋值运算符 (15)

2.1.8 复合运算符 (15)

2.2 第二节运算符的优先级 (16)

第三章程序控制 (16)

3.1 程序结构划分 (16)

3.1.1 顺序结构 (16)

3.1.2 分支结构 (16)

3.1.3 循环结构 (17)

3.2 程序控制语句 (17)

3.2.1 分支语句 (17)

3.2.2 循环语句 (20)

3.2.3 其他语句 (22)

第四章面向对象 (23)

4.1 面向对象概述 (23)

4.3 面向对象编程的3个特征 (23)

4.4类的构造方法 (26)

第五章继承重载覆盖 (34)

5.1 继承 (34)

5.2 重载 (37)

5.3 覆盖 (38)

第六章接口和抽象类 (39)

6.1 接口的概念 (39)

6.2 定义接口的必要性 (39)

6.3 接口的定义与实现 (39)

6.4 接口的作用 (40)

6.5 抽象类的概念 (40)

6.6 定义抽象类的规则 (40)

6.7 接口和抽象类的异同 (41)

6.8 接口和抽象类的作用 (41)

第七章集合与数组 (42)

7.1 集合 (42)

7.1.1 多态的概念 (42)

7.1.2 集合中的接口 (42)

7.1.3 List定义及常用方法 (43)

7.1.4 Set接口 (43)

7.1.5 Map接口 (44)

7.1.6 List的实现类 (45)

7.1.7 LinkedList类 (45)

7.1.8 ArrayList同LinkedList区别 (45)

7.1.9 Set的子类 (45)

7.1.10 Map的子类 (45)

7.1.11 容器的集合类 (46)

7.2 数组 (46)

7.2.2 数组同其他容器的区别 (46)

7.2.3 一维数组的声明、初始化及引用 (46)

7.2.4 二维数组的声明、初始化及引用 (47)

7.2.5 Arrays类的定义、构造器及方法 (48)

第八章字符串及相关类 (49)

8.1 String类 (49)

8.2 StringBuffer类 (57)

8.3 StringTokenizer类 (60)

第九章 Java异常 (62)

9.1 异常定义 (62)

9.2引用异常的原因 (62)

9.3 Exception (62)

9.4 Throwable (68)

9.5 异常的处理方法 (73)

9.6 RuntimeException及其子类 (74)

第十章流 (75)

10.1 File类 (75)

10.2 流的分类 (80)

10.3 文件流 (87)

10.4 装饰流 (89)

10.5 桥流 (90)

第十一章反射机制 (92)

11.1 定义 (92)

11.2 作用 (92)

11.3 如何获取类对象 (92)

11.4 使用步骤 (92)

11.5 如何获取类的属性方法及其调用 (93)

第十二章内部类 (95)

12.1 定义 (95)

12.3 匿名内部类规则 (97)

第十三章正则表达式 (99)

13.1 java中的正则表达式 (99)

13.2 正则表达式的基础语法 (99)

13.3 正则表达式的符号 (100)

第十四章线程 (105)

14.1 定义 (105)

14.1.1 构造器 (105)

14.2 线程的五个生命周期 (105)

14.2.1 新建状态(New) (105)

14.2.2 就绪状态(Runnable) (106)

14.2.3 运行状态(Running) (106)

14.2.4 阻塞状态(Blocked) (106)

14.2.5死亡状态(Dead) (106)

14.3 如何创建线程 (107)

14.4 线程安全 (107)

第十五章线程安全 (108)

15.1 线程安全定义 (108)

15.2 同步锁和死锁 (108)

15.2.1 同步锁 (108)

15.2.2 死锁 (114)

15.3 线程通信 (115)

第一章变量与常量

1.1变量

1.1.1定义

变量:就是在程序运行的过程中,其值可以改变的量。Eg:年龄

格式:

注意事项:

由字母、数字、下划线(_)和美元符号($)组成,但不能以数字开始不能是Java语言中的关键字。Java的关键字有:abstract,boolean,break,byte,continue,case,catch,char,class,const,default,do,double,else,extends,false,final,finally,float,for,if,implements,import,instanceof,int,interface,native,long,new,null,package,private,protected,public,return,short,static,super,switch,synchronized,throw,throws,this,transient,try,void,while等

保留C 语言的关键字,在Java中暂时还没有其他用途,为今后扩展用的。

保留关键字有:goto、const

1.1.2分类

(1)根据位置分:外部变量(类的属性),局部变量;

(2)根据类型分:基本类型,引用型。

基本类型:

(1)字符是源文件中使用的单个可输出的符号。分别是基本数据类型字符和字符串。注意:字符不能作为变量,也就是说不能给字符赋值,因此,Java语言定义了另一种形式的字符型

文字表示形式,即以\u作为前缀,后跟4位16进制的整数;

(2)字符串是指用双引号括起来的一个字符序列,例如:"smith"。注意:"a"和'a'的区别。在Java语言中,字符串是对象类型,而字符是基本类型。

转义字符

整数和浮点的表示形式

(1)整数的表示形式:

十进制:默认为十进制表示方法,例如:int x=10;

八进制:以0为前缀代表的八进制表示法,例如:int x=016;

十六进制:以0X或0x作为前缀代表的是16进制表示法,例如:int x=0x1f;

注意:16进制中的字母书,即可以大写也可以小写。

(2)浮点的表示形式:

小数:默认为小数表示形式。例如:double x=10.0;

科学记数法:以M E N 形式表示。例如: double x=2E3;

注意:M 可以是正数或负数,但必须有数字。N 可以正数或负数,但必须是整数。1.2常量

1.2.1定义

常量: 就是在程序运行的过程中,其值不可以改变的量。

格式:

注意事项:

修饰符可以是访问权限修饰符,还必须使用final关键字,它属于非访问权限修饰符;

常量必须用final 修饰;常量名最好大写;必须赋值;常量一旦赋值,不可以改变。1.2.2 分类

根据位置:

方法体内的常量(局部常量)

方法体外的常量(类的属性)

类的属性(包括外部变量,外部常量)

第二章运算符

2.1运算符的分类

2.1.1 算术运算符

2.1.1.1 加减运算符

对基本数值类型的数据进行加减运算,结果的数据类型取决于两个操作数的数据类型。

当两个操作数类型为char,byte,short 和int类型时,其运算结果的数据类型必为int 。"+"还用于连接两个对象的运算,将用于连接两个字符串连接起来。

2.1.1.2 乘法运算符

乘运算符用于对两个基本数值类型的数据进行相乘运算,其运算的数据类型取决于两个操作数的数据类型。当两个操作数类型为char , byte , short,int类型时,其运算结果数据类型必为int。

2.1.1.3除法运算符

除运算用于两个基本数值的类型数据进行相除运算。当相除的两个操作数均为整数时,如果运算结果为整数,则将运算结果作为返回值返回;如果运算结果不为整数,则运算结果整数部分作为返回值返回。当相除的两个操作数只要有一个为浮点数时,则运算结果必为浮点数。当除运算中右操作数取值为0时,如果操作数均为整数,则会抛出算术异常ArithmeticException;如果操作数中至少有一个为浮点数时,则结果为一个Infinity值。

2.1.1.4 取模运算符

取模运算%用于从除法中获得两数相除的余数。取模运算的操作数既可以是整数,也可以是浮点数,取模的过程实际是用左操作数连续减去右操作数,直到相减的结果小于右操作数,此时的结果即为余数。此过程适于操作数中有浮点数和负数的情况。当取模运算中右操作数取值为0时,如果操作数均为整数,则会抛出算术异常ArithmeticException,因为取模运算归根结底为算术除法运算;如果操作数至少有一个浮点数,则结果为一个NAN(Not a Number)值。取模运算结果的正负符号完全取决于左操作数,即和左操作数的正负符号一致。

2.1.2 移位运算符

Java定义了几个位运算符,分别为带符号左移位运算符<<,带符号右移位运算符>>和无符号右移位运算符>>>,它可以应用到整数类型,长型,整型,短整型,字符和字节。位运算符作用于位,并执行逐位操作

1、)左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。其实,向左移n 位,就相当于乘上2 的n 次方

2、)右移运算符

右移运算符用符号“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0,其实右移n 位,就相当于除上2 的n 次方。

3、)带符号的右移运算符

带符号的右移运算符用符号“>>”表示,是将运算符左边的运算对象,向右移动运算符右边指定的位数。如果是正数,在高位补零,如果是负数,则在高位补1

2.1.3 比较运算符

Java 语言共提供了6种比较运算符,

它们分别为小于,小于等于,大于,大于等于,等于,不等于。这6个比较运算符适合所有基本类型数值之间的比较,但布尔型值只能与布尔型值比较,比较运算的结果是一个布尔型值,整个比较表达式可以作为逻辑运算符的操作数,除了可以用于基本类型数值之间的比较,也可以应用于对象变量之间的比较。字符型值可以作为比较操作数与其他基本类型数值(除布尔型值外)进行比较,因为每个字符都有一个对应的标准字符码。当字符型值进行比较运算时,实际比较的是该字符对应的一个整数字符码。 1、)==和!=运算符:关系运算符等于(==)和不等于(!=)不仅可以用于基本类型数值之间的比较,而且可以用于引用型之间的比较,但是这种引用型之间的比较不同于基本类型数值之间的比较,是对象的引用值,即内存地址。两个引用变量之间的等于比较是在判断这两个变量是否引用了同一个对象。如果需要判断两个对象的内容是否相等,则应该使用equals()方法。在https://www.doczj.com/doc/61561041.html,ng.Object 中定义的equals()方法用来比较两个对象的内容是否相等。 2、)>或>=运算符:分别对应大于和大于等于,根据比较的结果返回值为true 或false 。 3、)<或<=运算符:分别对应小于和小于等于,根据比较的结果返回值为true 或false 。

2.1.4 位运算符

Java语言中共提供了4种按位运算符,分别为按位与(&), 按位或(|),按位异或(^)和按位非(~),这四个运算符适合所有整型数据。进行按位运算时,总是先将字符型、字节型、短整型值转换为整型再进行位运算。对于布尔型运算只有按位非(~)不能用于布尔型数值。其他3种位运算都可以把布尔型数值当作一个具有一位值进行按位运算。布尔型值为true对应为1,false对应为0,尽管位运算可以应用于布尔型,但不能将布尔型值和其他整数型值混合使用,如混合使用,将发生类型转换错误,因为布尔型值和其他基本类型之间不能进行相互转换。

(1)&运算符:&(与)运算符对于两个整型操作数中对应的位执行操作。具体见表3.1。

(2)|运算符:|(或)运算符对于两个整数型操作数中对应的位执行操作。具体见表3.2。

(3)^运算符:^(异或)运算符对于两个整数型操作数中对应的位执行操作。具体见表3.3。表3.3 异或运算

2.1.5 逻辑运算符

逻辑运算符共有三种:!(逻辑取反),&&(逻辑与),||(逻辑或)。它们的操作数类型必须是一个布尔值或布尔表达式。

(1)!运算符:

(2)&&运算符:类似按位与的公式。左右操作数必须是一个布尔值或是一个布尔表达式。该运算符存在逻辑短路的现象:A&&B&&C。如果A为false,那么后面的表达式就不运算了;

(3)||运算符:类似按位与的公式。左右操作数必须是一个布尔值或是一个布尔表达式。该运算符存在逻辑短路的现象:A||B||C。如果A为true,那么后面的表达式就不运算了。

2.1.6 条件运算符

是Java语言中唯一的一个三目运算符(三个操作数)相当于if…else。

格式:

整个表达式的值、表达式1的值、表达式2的值的类型必须一致。当条件值为true,那么整个表达式的最终结果为表达式1的结果;如果为false,最终结果就是表达式2的结果。条件运算符最终的结果类型,是由两个子表达式来决定的,两个子表达式之间进行类型转换。转换规则满足向取值范围宽的方向转换。

2.1.7 赋值运算符

将具体数值赋给变量时,将使用赋值运算符。

赋值运算符有:=,+=,-=,*=,/=,%=,>>=,<<=,&=,^=,|=

2.1.8 复合运算符

前面的有些运算符可以同赋值运算符进行不同的组合,具体见表3.4。表3.4 复合运算符

2.2第二节运算符的优先级

Java语言中的运算符有着不同的级别,优先级高的运算符先被运行,具体运算符的级别由高到低排列如下:

单操作数运算符>算术运算符>移位运算符>比较运算符号>位运算符>逻辑运算符>条件运算符>赋值运算符

第三章程序控制

3.1程序结构划分

3.1.1顺序结构

(1)顺序结构:程序中语句的执行次序是按照语句的书写顺序一句接一句执行,见图4-1。

图4-1 顺序结构

3.1.2分支结构

(2)选择结构:也称为分支结构。在选择结构中,尽管程序是一句接一句顺序书写的,但在执行程序时,根据选择判断条件的“真”与“假”,只执行程序中的一部分语句,而不执行程序中的另外一部分语句,见图4-2。

图4-2 分支结构

3.1.3循环结构

(3)循环结构:也称为重复结构,迭代结构。在循环结构程序中,位于循环体中的语句可以根据循环条件反复执行多次,直到条件值为假为止,见图4-3。

图4-3 循环结构

3.2程序控制语句

3.2.1 分支语句

(1)单分支结构

格式:

大括号内只有一条语句时, 这对大括号可以省略。如果条件满足则按顺序执行大括号中的语句。当括号中的语句是一条以上,则括号不能省略。

(2)双分支结构

格式:

(3)多分支结构

格式:

实际中常遇到要判断一个表达式满足一系列不同的值做不同的处理。如果用if来实现写起来不但很麻烦,且可读性不好。于是,设计出了switch开关语句,

格式:

例子:

3.2.2循环语句

该语句用来控制循环,有时称为“迭代语句”。语句重复执行,直到起控制作用的布尔表达式得到“假”的结束为止,可以分3个部分:while语句、do-while语句和for语句。

1、)while语句

格式:

实例:

2、)do-while语句

格式:

相关主题
文本预览
相关文档 最新文档