java基础面试知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
java基础面试知识点
java基础面试知识点
1.java中==和equals和hashCode的区别
2.int、char、long各占多少字节数
byte 1字节最小值是-128(-2 ); 最大值是127(2 -1);
boolean 至少1字节这种类型只作为一种标志来记录true/false 情况;
short 2字节最小值是-32768(-2 ); 最大值是32767(2 - 1);
char 2字节最小值是 \u0000(即为0);最大值是\uffff(即为65,535);
int 4字节最小值是 -2,147,483,648(-2); 最大值是2,147,483,647(2 - 1);
float 4字节单精度浮点数字长32位,尾数长度23,指数长度8,指数偏移量127;
long 8字节最小值是-9,223,372,036,854,775,808(-2?);
最大值是 9,223,372,036,854,775,807(2? -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
3.int与integer的区别
1. Ingeter是int的包装类,int的初值为0,Ingeter 的初值为null;
2.初始化的时候,int i =1;Integer i= new Integer(1);(要把integer 当做一个类看);但由于有了自动装箱和拆箱使得对Integer类也可使用:Integer i= 1;
3.int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充),Integer 是一个类,是int的扩展,定义了很多的转换方法
4.Integer是对象,用一个引用指向这个对象,而int 是基本类型,直接存储数值。
4.对java多态的理解
多态:继承父类的子类重写父类的某个方法,不同的子类调运同一个方法可以,产生不同的结果。
多态的三个必要条件:
1.继承父类
2.重写父类的方法
3.父类的引用指向子类对象
面向对象的三大特性封装、继承、多态。从某种程度来看,封装、继承就是为了多态准备的,也是最重要的知识点。
实现多态的技术:动态绑定,是指在执行期间,根据引用对象实际指向的对象,来执行对应的方法。
多态的作用:消除类型之间的耦合关系。
多态的好处:
1.可替换行:多态对已存在的代码有可替换性(重写);
2.扩展性:多态对代码具有扩展性;
3.接口性:多态是父类通过方法签名,为子类提供的共同接口,由子类去完善或覆盖;
4.灵活性:它在应用中体现了灵活多样的操作,提高了使用效率;
5.简化性。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)”
父类的静态方法能否被子类重写?
先给一个答案,不能,父类的静态方法能够被子类继承,但是不能够被子类重写,即使子类中的静态方法与父类中的静态方法完全一样,也是两个完全不同的方法。
重写指的是根据运行时对象的类型来决定调用哪个方法,而不是根据编译时的类型。
对于静态方法和静态变量来说,虽然在上述代码中使用对象来进行调用,但是底层上还是使用父类来调用的,静态变量和静态方法在编译的时候就将其与类绑定在一起。既然它们在编译的时候就决定了调用的方法、变量,那就和重写没有关系了。