java基础面试知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java 基础面试知识点
java 中== 和equals 和hashCode 的区别
int 、char 、long 各占多少字节数
byte 1字节最小值是-128(-2八7); 最大值是127(2八7-1);
boolean 至少1 字节这种类型只作为一种标志来记录true/false 情况;
short 2 字节最小值是-32768(-2X5); 最大值是32767(2X5 - 1);
char 2 字节最小值是\u0000( 即为0);最大值是?(即为65,535);
int 4字节最小值是-2,147,483,648(-2^31); 最大值是
2,147,483,647(2^31-1);
float 4 字节单精度浮点数字长32 位,尾数长度23 ,指数长度8 ,指数偏移量127;
long 8 字节最小值是-9,223,372,036,854,775,808(-2^63);
最大值是9,223,372,036,854,775,807(2^63 -1);
double 8 字节双精度浮点数字长64位,尾数长度52 ,指数长度11,指
数偏移量1023;
英文字母字节数: 1; 编码GB2312
字节数: 1; 编码GBK
字节数: 1; 编码ISO-8859-1
字节数: 1; 编码UTF-8
中文汉字字节数: 2; 编码GB2312
字节数: 2; 编码GBK
字节数: 1; 编码ISO-8859-1
字节数: 3; 编码UTF-8
int 与integer 的区别
Ingeter 是int 的包装类,int 的初值为0,Ingeter 的初值为null;
初始化的时候,int i=1;Integer i=new Integer(1);(要把integer 当做一个
类看);但由于有了自动装箱和拆箱使得对Integer 类也可使用Integer i=1;
int 是基本数据类型(面向过程留下的痕迹,不过是对java 的有益补充),Integer 是一个类,是int 的扩展,定义了很多的转换方法
Integer 是对象,用一个引用指向这个对象,而int 是基本类型,直接存储数值。
对java 多态的理解
多态继承父类的子类重写父类的某个方法,不同的子类调运同一个方法可以,产生不同的结果。
多态的三个必要条件:
继承父类
重写父类的方法
父类的引用指向子类对象
面向对象的三大特性封装、继承、多态。从某种程度来看,封装、继承就是为了多态准备的,也是最重要的知识点。
实现多态的技术动态绑定,是指在执行期间,根据引用对象实际指向的对象,来执行对应的方法。
多态的作用消除类型之间的耦合关系。
多态的好处
可替换行多态对已存在的代码有可替换性(重写);
扩展性多态对代码具有扩展性;
接口性多态是父类通过方法签名,为子类提供的共同接口,由子类去完善或
灵活性它在应用中体现了灵活多样的操作,提高了使用效率
简化性。Java中多态的实现方式实现接口,继承父类进行方法重写,同一个类中进行方法的重载。
什么是内部类?内部类的作用
定义将一个类定义在一个类或者一个方法里面,这样的类称着内部类
内部类的种类有4 种
1、成员内部类
2、静态内部类静态内部类就是在成员内部类多加了一个static 关键字。
3、匿名内部类
4、局部内部类
内部类的作用
1、内部类可以很好的实现隐藏
非内部类是不可以使用private 和protected 修饰的,但是内部类却可以,从而达到隐藏的作用。同时也可以将一定逻辑关系的类组织在一起,增强可读性。
2、间接的实现多继承。
每个内部类都能独立地继承自一个(接口的)实现,所以无论外部类是否已经继承了某个(接口的)实现,对于内部类都没有影响。如果没有内部类提供的可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决。所以说内部类间接的实现了多继承。
抽象类和接口区别?
抽象类
1:有abstract 修饰的class ,绝对就是抽象类。
2:抽象类中可以有抽象方法,也可以没有抽象方法,但是有抽象方法的class ,就一定会是抽象类。
3:抽象类是不能创建实例对象的。
4:如果有子类继承这个抽象类,则必须要实现父类中的抽象方法,如果不实现的话,则这个字类也必须定义为抽象类。
接口
1:接口只能实现不能够继承,比如,一个类可以实现多个接口,但是只能继承一个父类,也可以这样理解,一个类可以有多个干爹(实现接口),但是只能有一个亲爹(继承父类)。
2:如果要实现这个接口,则该接口中的方法必须要实现。因为我们定义接口中的方法时,系统是默认这些方法是抽象的方法,也就是说这些方法是有public abstract 这个来修饰的。
3: 在接口中定义的变量必须是全局变量的,也就是说有public static final 修饰的
抽象类的意义
抽象类与接口的应用场景
抽象类是否可以没有方法和属性?
泛型中extends 和super 的区别
和是Java 泛型中的“通配符(Wildcards) ”和“边界(Bounds) ”的概念
是指“上界通配符(Upper Bounds Wildcards) ”
是指“下界通配符(Lower Bounds Wildcards) ”
父类的静态方法能否被子类重写?
先给一个答案,不能,父类的静态方法能够被子类继承,但是不能够被子类重写,即使子类中的静态方法与父类中的静态方法完全一样,也是两个完全不同的方法。
重写指的是根据运行时对象的类型来决定调用哪个方法,而不是根据编译时的类型。