重载重写、封装继承多态、String、==和equlas、Integer

(1)重载和重写的区别:

1.重载:方法名相同,参数类型、个数、顺序不同,返回值、访问修饰符可以不同;发生在编译时;

2.重写:方法名、参数列表必须相同;返回值、异常范围小于等于父类,访问修饰符范围大于等于父类;如果父类方法为private修饰,则子类不能重写。

(2)封装继承多态

1.封装:对象属性私有化,同时提供外界访问方法。

2.继承:提高复用;子类继承父类,相当于子类对父类的扩展,子类用有父类的非private方法和属性;

3.多态:指程序中定义的引用变量所指向的具体类型、通过该引用对象调用的方法在运行时才能确定;同一个行为具有多个不同表现形式或形态的能力;分为运行时多态和编译时多态。

(3)多态存在的必要条件:

  • 继承
  • 重写
  • 父类引用指向子类对象
Parent p = new Child();
首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。

(4)重写: 要想调用父类中被重写的方法,则必须使用关键字 super

加上 final 关键字变成非虚函数

(5)String、StringBuffer、StringBuilder:

String:不可变,public final char value[]。

StringBuffer、StringBuilder继承自AbstractStringBuilder,其中也有char[] value(未用final修饰),可变;StringBuffer加了同步锁synchronized关键字,线程安全;而另一个反之。

操作少量数据---String
单线程操作字符字符串缓冲区操作大量数据----StringBuilder
多线程...大量数据-----StringBuffer

(6)Integer、int自动拆箱和装箱:见博客。

(7)==和equals的区别:

==:判断是否相等;基本数据类型比较值;引用数据类型比较内存地址;

equals:如果类未重写equals,,则等价于==;若已重写,则用重写的equals来实现自定义比较规则。

(8)抽象类和接口的区别:见博客。

(9)hashcode与equals的关系:

hasCode():获取哈希码,确定该对象在哈希表中的索引位置;存在于Object类下;HashSet检查是否重复时:先比较hashCode,若相同则调用equals方法来确定这两个对象是否真的相同,如果为真,则不会让其插入集合中。

1.两个相等的对象的hashCode码一定相同
2.hashCode码相同的两个对象不一定真的相同
3.两个相等的对象调用的equals方法都返回为true
4.equals重写,则hashCode方法一定要被重写
5.hashCode的默认行为是对堆上的对象产生独特值,若为重写,则始终不会相等。

(10)final修饰符:见博客。

(11)异常处理:

1.Throwable=Error+Exception
2.Exception=IOException+RuntimeException
3.IOException=EOFException+FileNotFoundException
4.RuntimeEception=...
getMessage:详细信息
toString:简要信息
getLocalizedException:返回本地定义的异常对象信息。若继承自Throwable的子类重写该方法,则可以自定义;若未重写,则返回与getMessage相同
printStackTrace:在控制台打印Throwable对象封装的异常信息

注:当在try块或catch块中遇到return,则finally块将在return前执行。

finally在四种情况不会执行:线程死亡+CPU关闭+finnaly中发生异常+前面的代码用了exit关闭程序

(12)两种输入方式。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值