Java基础重点:
复习知识点 重点内容
方法:
方法定义与使用
返回值类型 参数
成员静态
重载 :
同一个类中的多个方法
方法名相同
方法签名不同|参数列表不同
重写 :
不同的类
继承|实现
方法签名相同
== 方法签名
<= 返回值类型 : 基本->相等 引用: 子类<=父类
>= 权限修饰符
递归: 内存溢出
break continue return
作用:
应用场景:
面向对象:
面向对象和面向过程的区别
面向对象优点
三大特性
封装
继承
多态
构造器 : 就是为对象初始化信息
this 和 super:
static:
block: 普通语句块 构造块 静态块 同步块
封装: javabean
继承:
权限修饰符:
重写:
super
final:
Object: 老祖宗类
==与equals区别
多态: 一种事物的多种形态
转型:
instanceof
抽象类
接口: √
内部类 : 匿名内部类
java8新特性:
Lambda : 简化匿名内部类
函数式接口: 4大
方法引用: 简化Lambda
时间日期API
Stream
Op...
数组:
重要,用的不多
常用类:
String!!!
StringBuilder
StringBuffer
成员变量和局部变量的区别:
成员变量:(实例变量)
1、成员变量定义在类中,在整个类中都可以被访问。
2、成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。
3、成员变量有默认初始化值。
局部变量:
1、局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。
2、局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。
3、局部变量没有默认初始化值
类变量(静态变量):
1.随着类加载而加载,
2.由于对象存在,
3.被所有的对象所共享
4.可以直接被类名调用
单例模式:
实例保证只能有一个(对象地址相同)
饿汉式 : 类加载的时候就创建对象 ->线程安全
懒汉式 : 当方法调用的时候(要的时候)才创建对象 ->线程不安全,相对效率高
通过同步控制懒汉式线程安全问题
步骤:
1.私有的构造器
2.私有的静态该类的引用
3.公共的静态的访问方式
静态代理:
1.代理角色和真实角色实现相同的接口
2.代理持有真实角色的引用 (通过成员变量来控制之间的关联关系)
3.代理行为
抽象类和接口的异同之处:
1.都不能被实例化。
2.抽象类的子类度必须实现抽象类中的全部的抽象方法,才可以被实例化,不然任然为抽象类。
3.抽象类可以有构造方法,也可以有普通方法。接口不行
4.抽象类中的变量可以是普通变量,接口中定义的变量只能是公共的静态的变量。
容器中线程安全问题:
vector,HashTable、Properties是线程安全的。
ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等都是线程不安全的。
节点流和处理流:
节点流:inputStream & outputStream & Reader & writer ,new是前面加File的
其他都是处理流,需要加在节点流的基础上。
经典问题:
public class Test {
public Test() {
}
static void print(List<Integer> al) {
al.add(2);
al = new ArrayList<Integer>();
al.add(3);
al.add(4);
}
public static void main(String[] args) {
List<Integer> al = new ArrayList<Integer>();
al.add(1);
print(al);
System.out.println(al.get(1));
}
}
//输出2
float f=3.4f;
Float f2=3.4f;
double d=3.4;
Double d2=3.4;
long l1=345;
Long l2=224L;
System.out.println(1>0?9:9.9);//自动向上转输出9.0