一、java的数据类型
1.基本(原始)数据类型类(4类8种)
整形 (默认类型 int)
byte
字节 1字节 -128 - 127
short
短整型 2字节 -2^15 - 2^15-1
int
整型 4字节
long
长整型 8字节
浮点型(默认类型double)
单精度浮点数
float 4字节
双精度浮点数
double 8字节
字符型
char 2字节
布尔型
boolean 1个字节
2.引用数据类型
作为形参传递,传递的是地址值,会影响实参,string除外
类
接口
数组
动态初始化:
数据类型[] 数组名 = new 数据类型[长度]
静态初始化:
数据类型[] 数组名 = new 数据类型[] {元素1,元素2}
数组特点:
1.数组使用必须指定长度
2.数组的长度是固定的,不能更改
3.数组的元素不能删除,删除必须新建数组
4.数组元素的数据类型要一直
4.数组的元素可以是基本数据类型也可以是引用数据类型
二、关键字(50个)
被java赋予特定含义的单词
const goto是保留字
标识符:开发人员自己取名字的地方
- 由字母数字_$组成
- 数字不能开头
- 区分大小写
- 不能是关键字
命名规范
类和接口:
单词:首字母大写
词组:每个单词首字母大写
变量和方法:
单词:首字母小写
词组:首字母小写。从第二个单词开始每个单词的首字母大写
常量:
单词:全部大写
词组:单词全部大写,单词之间用_连接
三、基础语法
if语句
if(boolean){
语句体1;
}else{
语句体2;
}
switch
1.byte char short long
for
for(初始化语句,判断条件,控制语句){
循环体;
}
四、方法(函数):
就是一组完成相同功能的代码块
格式:
修饰符 返回值类型 方法名(参数列表){
方法体;
return 返回值;
}
构造方法(构造函数,构造器)
1.方法名和类名相同
2.没有返回值类型,连void也没有
注:
如果没有手动给出构造方法,系统会默认提供无参构造方法
只要手动给出构造方法,系统将不再提供
构造方法的作用:
1.创建对象
2.给对象数据初始化
方法的重载
在同一个类种方法名相同,参数列表不同(个数,类型)
方法的继承
格式:
class A extends b{}
java中类与类之间只能单继承,可以多重继承
构造方法不能被继承
private修饰不能被继承,但是可以被子类调用
1.super关键字
super:指的是对父类对象的引用
super()调用父类构造,对父类数据初始化
每个构造方法中都隐含有super(),super()就是调用父类构造,对父类数据初始化
super()只能位于构造的第一行
2.初始化顺序 *
默认初始化
显示初始化
构造初始化
3.方法的重写
子类需要在父类已有功能上扩展功能
注意事项
1.子类重写方法访问权限不得低于父类
2.子类重写方法的返回值要么和父类一致要么是父类方法返回值的子类
3.子类重写方法的参数列表要和父类完全一致
4.子类重写方法不能超出父类没有的异常,或者比父类范围更广的异常
5.静态方法不能被重写,如果子类中出现了和父类一样的静态方法,那么父类的静态方法会被隐藏
6.私有方法不能被继承和重写
4.###封装:
1.将成员变量私有化(使用private修饰)
2.提供公共的setter,getter方法
private是一个访问修饰符,表示私有的意思
修饰的成员只能在本类中使用
好处:
1.提高代码的安全性
2.提高代码的复用性
this:指代本类对象的引用
哪个对象调用this就指向哪个对象
局部变量和成员变量同名的时候,成员变量就需要通过this.成员访问
五、final
表示最终的意思,可以修饰方法,类,变量
1.final修饰的类为最终类,不能被继承
2.final修饰的方法不能被重写
3.final修饰的变量变成常量,只能被赋值一次
六、代码块
由{}括起来的代码块
局部代码块
定义在方法内部
静态代码块 !!!
定义在类中方法外用static修饰,无论创建多少个对象,静态代码块都只执行一次
构造代码块
定义在类中方法外,随着构造方法的调用而执行,在构造前执行
同步代码块
七、多态
1.必须有继承
2.父类引用指向子类对象
3.父类引用不能访问子类特有的成员
多态中的转型
向上转型
Fu fu = new Zi()
向下转型
Zi zi = new Zi(Fu)
instanceof 判断某个对象是否属于某个类
八、abstract
表示抽象的意思,可以修饰类和方法
不能和private(修饰的方法不能被重写) ,static(修饰的方法可以直接通过类名调用),final(修饰的方法不能被重写)共存
抽象类
在提取父类的过程中,某一个共性方法子类各有不同的实现方式,那么该方法需要abstract,该类就是抽象类
抽象类的特点:
1.抽象类不能创建对象
2.子类必须重写抽象方法,如果没有重新抽象方法,子类也是抽象类
3.一定是父类
4.抽象类不一定含有抽象方法,当不希望类被创建对象时,将类用abstract修饰
九、接口
接口中的变量默认都是静态常量,被public static final修饰
接口中的方法是抽象的方法,被public abstract修饰(JDK1.8以下)
java只能单继承,可以多实现(接口)
十、static
表示静态,可以修饰成员变量和方法
被修饰的成员会被该类的所有对象所共享
static修饰的成员也叫做类的成员,是属于类的,可以通过类名访问
随着类的加载而加载, 存储在方法的静态区
调用方式
类名.静态成员 --- 推荐方式
对象.静态成员 --- 产生警告
注意:
静态方法不能访问非静态成员
成员方法可以访问静态和非静态成员
static方法中不能使用this关键字
十一、局部变量和成员变量
1.局部变量没有默认值,成员变量有默认值
2.局部变量在栈中开辟内存,成员变量在堆中开辟内存
3.局部变量作用范围,从其被定义位置开始到其所在大括号结束
成员变量作用范围整个类
4.局部变量从其所在函数被调用在栈中开辟内存,到其作用域结束释放内存
成员变量从其所属对象创建时开辟内存,到其所属的对象被垃圾回收时释放内存
十二、多态
父类类型的引用指向了子类l类型的对象
多态中的转型(造型)
向上转型:
Fu fu = new Zi();
向下转型:
Zi zi = (Zi)fu;
十三、集合
迭代器遍历(不能中途添加元素)
for循环遍历
Collection总接口.
1.List子接口
有序,重复
a.ArrayList
b.LinkedList
1.就是链表的数据结构
2.查找和修改慢,增加删除慢
c.
2.Set子接口
不重复
a.HashSet
底层是哈希表的数据结构
哈希表:元素是链表的数组