java基础面试知识点

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)”

父类的静态方法能否被子类重写?

先给一个答案,不能,父类的静态方法能够被子类继承,但是不能够被子类重写,即使子类中的静态方法与父类中的静态方法完全一样,也是两个完全不同的方法。

重写指的是根据运行时对象的类型来决定调用哪个方法,而不是根据编译时的类型。

对于静态方法和静态变量来说,虽然在上述代码中使用对象来进行调用,但是底层上还是使用父类来调用的,静态变量和静态方法在编译的时候就将其与类绑定在一起。既然它们在编译的时候就决定了调用的方法、变量,那就和重写没有关系了。

相关文档
最新文档