文章目录
1.匿名内部类?事件处理?委托?
所谓匿名内部类,是指可以利用内部类创建没有名称的对象,它一步完成了声明内部类和创建该类的一个对象,并利用该对象访问到类里面的成员、
内部类详解
委托模式是软件设计模式中的一项基本技巧。在委托模式中,有两个对象参与处理同一个请求,接受请求的对象将请求委托给另一个对象来处理。
2.异常的分类?异常和错误的区别?
异常的结构分类:
1、运行时异常(未检查异常)
2、编译时异常(已检查异常)
错误与异常都是在程序编译和运行时出现的错误。不同的是,异常可以被开发人员捕捉和处理;而错误一般是系统错误,也无法处理,比如内存溢出。
3.异常的处理机制?finally语句块的特点?
异常处理机制为:抛出异常,捕捉异常。
finally语句并不是每次都执行
至少有两种情况下finally语句是不会被执行的:
(1)try语句没有被执行到,如在try语句之前return就返回了,这样finally语句就不会执行。这也说明了finally语句被执行的必要而非充分条件是:相应的try语句一定被执行到。
(2)在try块|catch块中有System.exit(0);这样的语句。System.exit(0)是终止Java虚拟机JVM的,连JVM都停止了,所有都结束了,当然finally语句也不会被执行到。
在try-catch-finally中, 当return遇到finally,return对finally无效,即:
1.在try catch块里return的时候,finally也会被执行。
2.finally里的return语句会把try catch块里的return语句效果给覆盖掉。
结论:return语句并不一定都是函数的出口,执行return时,只是把return后面的值复制了一份到返回值变量里去了。
4.什么是包装类?什么是装箱?什么是拆箱?
包装类即使把基本类型变成对象类型
int—Integer
char—Character
short—Short
long—Long
float—Float
double—Double
byte—Byte
boolean—Boolean
基本类型的数据不是对象,不能作为对象调用其toString()、hashCode()、getClass()、equals()等等方法。
由基本类型向对应的包装类转换称为装箱,例如把 int 包装成 Integer 类的对象;
包装类向对应的基本类型转换称为拆箱,例如把 Integer 类的对象重新简化为 int。
5.为什么要有包装类?包装类存在的价值?java中那些地方必须使用包装类?Synchronize(此处必须是包装类){}、泛型、集合中存储的是包装类…
1.集合不允许存放基本类型数据,只能存放引用类型数据,比如包装类型。以List为例,大家都知道一个动态数组的add(Object o)方法只能接受一个引用类型。
2.基本类型和包装类之间可以相互转换,又叫自动装箱与自动拆箱。这个特性让我们在编码的时候能够更注重于业务的开发,而不是每转换一次就需要写一堆转换代码。
3.通过包装类型可以实现8种基本数据类型+String类型 之间可以相互转换,如
int num = Integer.parseInt(“1”);
4.有时候一个函数需要传递一个Object变量 而你想传递int类型的进去显然不行,这就要用到包装类。
public void test(Object obj){
}
你想传递5进去就可以这样
test(new Integer(5));
综上所述,包装类有四个用法 一个实现基本类型之间的转换 二是便于函数传值 三就是在一些地方要用到Object的时候方便将基本数据类型装换 四是集合不允许存放基本类型数据,只能存放引用类型数据
6.== 和 equals的区别?Object中的equals方法的用法?
Object类中的equals方法比较的是两个对象的内存地址。object的子类会重写equals方法,用于判断值是否相同。