美文网首页
java 面试笔试题(一)

java 面试笔试题(一)

作者: 高念吖 | 来源:发表于2017-11-16 21:16 被阅读0次

    一,什么是面向对象

    答:

           面向对象是一种编程思想,在使用对象的过程中不需要管对象内部是怎么实现的,只需要知道可以实现什么功能就可以了,面向对象具有封装性,继承性和多态性,封装隐藏了对象内部不需要暴露的细节,使得内部细节的变动跟外界脱离关系,只依靠接口进行通信,封装性降低了编程的复杂性,通过继承,使得新建一个类变得容易,一个类从派生类那里获得其非私有的方法和公用的属性的繁琐工作交给了编译器,而继承和实现接口和运行时的类型绑定机制所产生的多态,使得不同的类所产生的对象能够对相同的消息作出不同的反应,极大地提高了代码的通用性。

    二,作用域public,private,protect,以及不写时的区别

    作用域    当前类    同一个包   子孙类  其他包

    public        可以        可以          可以      可以

    protected   可以        可以         可以      不可以

    default       可以        可以         不可以     不可以

    private       可以        不可以       不可以     不可以

    三,简述final的用法

     final修饰的类不能不能被继承

     final修饰的属性值不能被修改

     final修饰的方法不能被重写

     在匿名内部类的方法中调用局部变量,局部变量需要被final修饰

    四,当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是引用传值还是属性传值

    答:是值传递

            java编程语言只有值传递参数,当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用,对象的内容可以在被调用的方法中改变,但是对象的引用是永远不会改变的

    五,简述static的用法

    static修饰的属性和方法随着类的加载而加载,优先于对象存在,被所有的对象共享,既可以通过类调用,也可以通过对象调用,static修饰的方法,只能访问static修饰的成员,static关键字不能和this和super同时使用

    六:Overload和Overrid的区别。Overloaded的方法是否可以改变返回值的类型


    方法的重写Overriding和重载Overloading是Java多态性的不同表现。(2)重写Overriding是父类与子类之间多态性的一种表现,(1)重载Overloading是一个类中多态性的一种表现。(1)如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被"屏蔽"了。(3)如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。

    七:String与StringBuffer的区别?


    String的长度是不可变的(3),StringBuffer的长度是可变的(3)。如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer(2),如果最后需要String,那么使用StringBuffer的toString()方法

    八:"=="和equals方法究竟有什么区别?


    ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同。(4)

    equals方法是用于比较两个独立对象的内容是否相同,就好比去比较两个人的长相是否相同,它比较的两个对象是独立的。(4)

    例如,对于下面的代码:

    String a=new String("foo");

    String b=new String("foo");

    两条new语句创建了两个对象,然后用a,b这两个变量分别指向了其中一个对象,这是两个不同的对象,它们的首地址是不同的,即a和b中存储的数值是不相同的,所以,表达式a==b将返回false,而这两个对象中的内容是相同的,所以,表达式a.equals(b)将返回true。(2)

    九:构造器Constructor是否可被override?abstract是否可以和final同时修饰方法?


    构造器Constructor不能被重写Overriding(2),构造器Constructor不能被继承,因此不能被重写,但可以被重Overloading(3)。

    abstract不可以和final同时修饰方法(2),因为abstract修饰的方法需要被重写Overrifing,而final修饰的方法不能被重写(3)。

    10. 问题:什么是多态。


    我们通常说的多态指的是对象的多态。(1)也就是说对象具有多种心态。编译时的类型由声明该变量时使用的类型决定;运行时的类型由实际赋给变量的对象决定。 如果编译时类型和运行时类型不同,就出现多态。(2)

    继承是多态产生的前提条件。(1)

    实现多态的机制: 父类的引用变量可以指向子类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的真正实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。(3)

    多态的作用: 把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码 , 做出通用的编程,以适应需求的不断变化。(3)




    相关文章

      网友评论

          本文标题:java 面试笔试题(一)

          本文链接:https://www.haomeiwen.com/subject/aqusmxtx.html