JAVAEE知识点复习(连载三)

JAVASE内部又分为了 1、基础语法 ;2、java核心类;3、java API;4、Swing;5、反射;五个知识大区

一、基础语法
1、基本数据类型
java的基本数据类型共有四类八种,类型分别为:整数型、浮点型、字符型、布尔型;
整数型有4种:byte(字节型)、short(短整型)、int(整数型)、long(长整型);
浮点型有2种:float(单精度)、double(双精度);
字符型:char;
布尔型:boolean;

2、运算符
算数运算符:+、-、*、/、%、++、–;
关系运算符(条件运算):==、!=、>、<、>=、<=;
赋值运算:=、+=、-=、*=、/=、(%)=;
逻辑运算符:&&、||、!;
位运算:&、|、^;
注意:*&&与&的区别*
条件运算符:变量类型 变量名 = 条件 ? A:B;
解读:声明一个变量,当条件为true时,当前变量的值为A,当条件为false时,当前变量的值为B;
instanceof运算符:检查对象是否是一个特定的类型(is—a)的关系;

3、修饰符
修饰符分为访问修饰符和非访问修饰符两种类型;
访问修饰符是用来控制其他类对该类、实例变量、构造方法、实例方法的访问权限。java的访问权限有4种:
public(公开的);
protected(受保护的):允许当前类、同一个包下的类、同一个包下的子类访问;
默认的,没有任何关键字来表示(访问权限同protected一致);
private(私有的):只允许当前类访问;

非访问修饰符:
static:静态修饰符;
final:修饰类时,该类不能被继承;
修饰方法时,该方法不能被重写;
修饰变量时,该变量的值不能被改变,即为常量;
synchronized:处理多线程并发问题;
abstract:抽象的,可以修饰类和方法;

4、变量
4.1 局部变量
○声明在构造方法、静态方法、实例方法、代码块中的变量,都是局部变量;
○不能使用static和访问修饰符修饰;
○可以使用final修饰,即为常量,不必在声明在语句中赋值;
○当执行局部变量所在的方法或代码块时,才有机会被创建,在方法或代码块执行结束后被自动销毁;
○局部变量在内存的栈区分配;
○局部变量在使用之前必须要先赋值;

4.2 实例变量(成员变量)
○声明在所有方法体和代码块之外,并且没有使用static修饰的变量,叫做实例变量;
○可以使用访问修饰符和final修饰;
○使用final修饰时,一定要赋值;
○实例变量是在对象被创建时创建,对象被销毁时销毁;
○作用域范围在整个类中;

4.3 类变量(静态变量)
○声明在所有方法体和代码块之外,并且使用static修饰的变量;
○可以使用访问修饰符;
○一般配合final使用,即public static final,标识符使用大写;
○类变量是在程序开始时创建,程序结束时销毁;

5 方法
成员方法(实例方法):没有static关键字修饰的方法;
可以被对象调用;
静态方法(类方法):使用static关键字修饰的方法;
可以被类或对象调用;
5.1 构造方法:
语法:[访问修饰符] 类名(){

}
注意:当类中没有显示构造方法,实例化该类的对象时,程序会自动创建一个公开的无参构造方法;如果类中有显示的构造方法,程序就不会创建无参构造
作用:用于实例化对象,并对成员变量赋初始化值
特点:○不能有返回值;
○不能使用static、final等关键字修饰;
○可以使用参数,可以抛异常;
○可以使用访问修饰符来修饰,当使用非public修饰时,可能会导致某些场景下无法实例化对象;
调用:
○在本类的构造方法中调用其他构造方法,使用this()方式,this()必须在代码块中的第一行;
○在其他地方只能使用实例化对象的方式来调用new()类名;

5.2 方法的相关概念
方法重载:
重载(overloading)是一个类里面,方法名字相同,而参数不同。与返回值类型、访问修饰符无关;
规则:
(1)参数的类型不同;
(2)参数的个数不同;
(3)参数的顺序不同;

返回值:
○除构造方法外,其他所有方法声明时必须有返回值的占位符,当方法无法返回值时,使用void;
○返回值使用return关键字,一个方法中可以有多个return;
○声明的返回值类型,要和真实的返回值类型保持一致;
○当方法有返回值时,调用该方法,就会得到该方法返回的数据;

参数:
○参数是一个特殊的局部变量,在使用时无需在方法体内赋值;
○参数的值是在调用该方法时,通过括号中赋值时传递的;
○方法中的参数可以有多个,即参数列表;
○参数可以是基本数据类型,也可以是引用数据类型;

6、流程控制
6.1 分支语句
if–else–if
switch–case
注意事项:*switch语句中的变量类型是:byte、short
、int或者char*
从JavaSE 7开始支持字符串类型了,同时case标签必须为字符串常量或字面量

6.2 循环结构
while循环:满足循环的三个条件:初始化变量、关系运算、迭代;
do–while循环:与while循环的区别是,当条件为false时,也会被执行一次;
for循环
foreach循环(增强for循环)

6.3 控制
○continue:跳过本次循环,不再执行continue后面的代码,继续下一次迭代;
○break:跳出当前循环体,继续循环后面的代码;
○标签:声明在循环体之前,列如:a:for(){}需要配合continue/break关键字来使用

7 面向对象
7.1 封装
○私有属性,公开方法;
○封装的步骤:声明私有(private)的属性,声明公开(public)的geter和seter方法;

7.2 继承
○java中的继承是单继承,可以实现多层继承,继承的关键字extends
○子类可以继承父类非私有的属性和方法,不能继承构造方法;
○在实例化子类时,先执行父类的构造方法,再执行子类的构造方法;
○当父类的方法无法满足子类需要时,子类可以重写父类方法;
○在子类中,使用super关键字表示父类对象,可以用在非静态方法中;
super()表示父类构造器,只能用在子类的构造其中,并且是在构造器的第一行
○this代表当前子类对象,可以使用子类的非静态方法;this()表示子类的构造器,只能用在子类的构造器中,并且是在构造器的第一行,不能同时和super()出现;
○当类使用final关键字修饰时,该类不能被继承;

7.3 重写规则
○重写方法的声明部分(返回值类型、方法名、参数列表)要和父类中的方法保持一致;
○重写方法的访问权限要大于等于父类的方法;
○重写方法可以抛出任意的非强制性异常,如果父类方法中抛出异常,子类重写方法抛出的异常要比父类抛出的异常范围小;
○当父类的方法使用final关键字修饰时,可以被继承,不能被重写;
○当父类的方法使用static修饰时,可以被继承,不能被重写,但是可以在子类中重写声明;
○(排查final和static关键字的情况下)如果在同包下,子类可以重写父类非私有的方法;不在同包下,子类只能重写父类的public和protected修饰的方法;
○不能被继承的方法,不能重写,例如:构造方法

7.4 多态
实现的必要条件:
○继承
○重写
○父类引用指向子类对象(向上转型)

7.5 抽象类
○使用abstract关键字修饰的类,即为抽象类;
○抽象类中可以声明普通类的所有成员之外,还可以声明抽象方法;
○含有抽象方法的类一定是抽象类,抽象类中不一定有抽象方法;
○如果一个类继承了抽象类,那必须重写抽象类中的所有抽象方法;
○抽象方法中可以声明构造方法;

7.6 接口
○使用interface关键字修饰;
○接口是可以多继承的;
○接口可以被类实现,一个类可以实现多个接口;
○接口是一个完全抽象的抽象类,接口中的方法都是抽象方法(JDK1.7↓);
○接口中不能有构造方法;
○接口中不能声明变量,只能声明常量,默认的声明格式为:
public static final int i = 1;
○接口的声明和接口中的声明默认都使用了abstract;

8 数据结构
8.1 数组
○声明:
Object[] obj = new Object[长度];
Object[] arr = {o1,o2,o3};
Object[] arr = new Object[]{o1,o2,o3};

○赋值:arr[下标] = 值;
○获取数组长度:length属性;

○取值
arr[下标];
普通for循环遍历
增强for循环(foreach);

○排序
冒泡排序:从后往前一次确定元素,相邻的两个元素比较,互换位置;
选择排序:从前往后确定元素,让为确定的第一个数依次和后面的比较,互换位置;

○特点:长度一旦确定,不可改变;
○二维数组:
int[][] arr = {o1,o2,o3};

9 集合
○特点:长度可变

9.1 Collection接口
子接口:List
○特点:有序、可重复的集合;
○实现类ArrayList
○常用方法:
1)添加元素
add(Object obj)添加元素;
add(int i,Object o)在指定位置处添加元素;
addAll(Collection c)把一个集合内的元素依次添加到当前集合;
addAll(int i,Collection c)把一个集合内的元素依次添加到当前集合的指定位置;
2)修改元素
set(int i,Object o)修改指定位置的元素,返回被修改的原对象;
3)删除
remove(int i)删除指定位置的元素,返回指定位置的元素;
remove(Object o)删除指定的对象,删除成功返回true;
removeAll(Collection c)从列表中移除指定集合中包含的其所有元素,删除成功返回true;
clear()清楚集合中所有元素;
4)查询
get(int i)根据下标查询元素,返回指定位置上的元素;
contains(Object o)判断集合中是否包含指定的元素,包含返回true;
indexOf(Object o)返回指定元素在集合中第一次出现的下标;
lastIndexOf(Object o)返回指定元素在集合中最后一次出现的下标;
isEmpty()判断集合长度是否为0,返回true;
5)其他方法
subList(int start,int end)截取集合,从下标start开始(包含),到end结束(不包含);
size()获取长度;
toArray()把列表转为数组,返回的是Object[];
把数组转为List集合,Arrays.asList(arr);

子接口:set
特点:无序、不可重复;
实现类HashSet
○常用方法;
1)添加
add(Object o)添加元素,添加成功返回true,重复添加,返回false;
addAll(Collection c)把一个集合内的元素添加到当前集合;
2)查询
contains(Object o)判断是否包含指定元素,包含返回true;
containsAll(Collection c)查询set中是否包含指定的多个元素,全部包含返回true;
isEmpty()判断集合长度是否为0,返回true;
3)删除
remove(Object o)删除集合中指定的元素,删除成功返回true;
removeAll(Collection c)从列表中移除集合中包含的其所有元素,删除成功返回true;
clear()清除集合中所有元素;
4)遍历
使用foreach循环;
使用iterator(迭代器)
it.hasNext()如果下一个元素,返回true
it.next()返回下一个元素
it.remove()删除迭代器返回的最后一个元素

○集合的继承关系
Collection接口—》子接口Set、List
Collection接口—》实现类AbstractCollection抽象类—》子类AbstractList(抽象类)—》子类ArrayList;
Collection接口—》实现类AbstractCollection抽象类—》子类AbstractSet(抽象类)—》子类HashSet;
关系图谱

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值