==========================================================
什么是重载 和 重写???(1.重点题目,背诵)
重载,overload , 在同一个类中 ,方法的名称相同,参数的个数,类型,顺序不同,这样的方法
就构成了方法的重载,想起重载就要想起 构造方法的重载。
方法的重载和返回值类型 ,访问修饰符 无关。
重写,override,想起重写 就想起 toString , 子类重写 父类 Object的toString。
子类重写父类的方法:
1)方法名,参数,返回值类型 三者必须 完全一样,但是方法体中的代码不同。
2) 子类重写方法的访问修饰符不能比父类小。
3) 子类重写方法抛出的异常不能比父类大。
(前突后翘 — 前大后小)
面向对象三大特征:封装 ,继承 ,多态(2.重点题目,背诵)
封装:将属性设为private私有的,提供公有的public的setteer 和 getter方法
继承:子类通过extends关键字 继承 父类,子类将继承父类非私有的属性 和 方法。
final修饰的类不能被继承,
构造方法不能被继承,
私有的属性和方法不能被继承。
多态:1) 父类引用指向子类对象。 (子类继承父类)
2) 子类重写父类的方法。
3) 通过父类引用调用该方法,看起来是调用的父类的方法,但是运行中,还是运行子类重写(Override)的方法。
4) 如果子类没有重写该方法,那么还是调用父类的方法。
5) 如果子类添加了一个新的方法,不能通过父类引用调用这个新方法。
==========================================================
访问修饰符:(3.重点题目,背诵)
public : 公有的 ,到处都可以访问
protected : 受保护的 ,包内友好,如果不同包,要有继承关系 ( 通过super关键字访问 )
默认的(什么都不写) : 包内友好
private : 私有的, 只能在同一个类中被访问 (类的内部友好)
==========================================================
final 关键字(4.重点题目,背诵):
final 表示最终的,它可以修饰 类,属性/变量 , 方法。
当它修饰类的时候,表示这个类断子绝孙,该类不能被继承,比如:String ,StringBuilder,System
当它修饰 属性/变量的时候,表示该属性/变量 ,一旦被赋值就不能被修改
当它修饰 方法的时候,表示该方法不能被重写。
==========================================================
== 与 equals的区别 :(5.重点面试题,考试题)
==比较对象的话,比较的是两个对象的地址值
equlas方法是的本意是比较两个对象的内容值是否相等。
如果要使用equals 方法,自己定义的类中必须重写equals方法,才能使用。
比如:String类的equals方法重写了 Object 类中的 equals方法。
但是原 Object类中的equals 比较的 还是对象的 地址值。
//不背,看看了解
public class Object{
public boolean equlas(Object obj){
return this == obj;
}
}
=======================================
ArrayList 和 Vector的区别:(6.重点题目)
ArrayList :1.多线程不安全,查询效率高,添加删除效率低,
2. 默认初始容量是0,插入一个容量变为10,
3. 自动增长约为原来的一半
Vector : 1.多线程安全,查询效率高,添加删除效率比ArrayList更低,
2. 默认初始容量10,
3.自动增长容量为原来的一倍
=============================================
HashMap的特点:(7.重点题目)
- HashMap中存储的是一组值,key value
- key值 不能重复 ,只能有一个null键(key),但是可以有多个null值(value)
- 如果key重复,则相当于修改
- 默认容量为0,添加一个默认初始长度是16,自动增长为原来的一倍
- HashMap 多线程不安全
(考试一般不会问,面试的时候会问到)
Hashtable 多线程安全 , 初始默认容量11个, 自动增长是 原来的1倍 +1 => 23
==========================================================
Error 和 Exception 和 RuntimeException 的区别(8.重点题目)
Error :是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息。
Exception :表示编译时异常,这是需要强制捕获 try…catch 或
通过throws关键字抛出的。
RuntimeException :运行时异常,可以不用强制的处理。
访问修饰符能修饰哪些东西???
类名,属性, 构造方法/普通方法,不能修饰 变量
byte short int long float double char boolean
1 2 4 8 4 8 2 1 字节
8位一个字节
7 7
byte :-2 ------- 2 - 1 -128 - - - 127
15 15
short -2 ---------2 - 1
31 31
int -2 -------- 2 -1
==========================================================
instanceof 判断一个对象 是否 属于 某个类 或 某个类的父类
如果为是,则返回true
如果不是,返回false
Apple a1 = new Apple();
System.out.println(a1 instanceof Apple); //true
System.out.println(a1 instanceof Fruit); //true
System.out.println(a1 instanceof Object); //true
System.out.println(a1 instanceof Banana); //false
interface : 接口 ,为了表示其特殊性 ,改了个名字不叫类了 ,叫接口 interface
完全抽象的类 — totally abstract class
----1,接口中所有的方法都是抽象的 ,公有的(abstract public) ,抽象方法没有方法体。
----2,接口中的属性都是常量 public static final double PI = 3.14;
----3,接口可以继承另一个接口,Java中的接口支持多继承, 比如 public interface List extends Collection
public 共有的
static 只有一份
final表示最终的,修饰属性, 一旦被赋值就不能被修改
double 类型
PI 属性名(常量要求全部大写)
==========================================================
熟练掌握:
String ,是final类,不能被继承
常用方法:
length() : 求字符长度 “你好”.length(); ====> 2 “ab”.length(); ====>2
equals()
charAt(int index) :
trim() : 去左右两边的空白,中的不能去 " ab cd ".trim() ==> “ab cd”
substring(1,3): 包左不包右边 第二个到 第三个字符
substring(1): 从1 到 最后
indexOf("@")
lastIndexOf("@")
toUpperCase() : 转成大写
toLowerCase() : 转成小写
startsWith( ) : 以什么开始
endsWith( ) : 以 什么 结束
==========================================================
java.lang.Object :中有哪些方法(面试题)
toString();
equals();
hashCode();
getClass( );
finalize(); => 这个方法和 final , finally 不同 ,finalize() 和虚拟机(JVM) 垃圾回收有关。
clone(); 克隆 深克隆 和 浅克隆
wait() 跟线程通信有关。
notify();
notifyAll();