zoukankan      html  css  js  c++  java
  • java面试基础题2

       java面试基础题2

        是否可以从一个static方法内部发出对非static方法的调用?

          答:不可以,非static方法的调用需要对象的参与,而static方法是通过类来进行访问的

     

        Integer与int的区别

          答:从数据类型上来看,Integer属于引用数据类型,int属于基本数据类型。

            从存储方式上来看,Integer实际上是对象的引用,指向存储在堆内存中的Integer对象;而int是直接存储数据。

            Integer的默认值是null;int默认值是0。

     

        Math.round(11.5)等於多少?Math.round(-11.5)等於多少?

          答:Math.round(11.5)=12;Math.round(-11.5)=-11

            Math.round的规则:  

              当小数点后一位=5时,正数运算结果为整数部分+1,负数为整数部分

              当小数点后一位<5时,无论正负数结果都是整数部分

              当小数点后一位>5时,无论正负数运算结果是整数部分绝对值+1,符号不变

     

        Overload和Override的区别?Overloaded的方法是否可以改变返回值的类型?

          答:Overload是方法重载,Override是方法重写(覆盖);

            overload存在于同一个类中,override只能存在于父类和子类中。

            overload参数类型、参数个数、返回值至少一个不同,override方法名、参数、返回值必须相同。

            overload中方法的异常类型和数目不会对重载造成影响,override中子类不能抛出比父类更多的异常

            overload中重载的方法与修饰符无关,override在进行继承时子类的访问权限不能比父类低

            由于方法的重载与修饰符和返回值是无关的,所以overload是可以改变返回值类型的    

          

        接口是否可继承接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concreteclass)?抽象类中是否可以有静态的main方法?

          答:接口可以继承接口

            

            

     

     

     

             

            抽象类可以实现接口

            

            

     

     

             抽象类可以继承实体类

            

            

     

            抽象类中可以有静态的main方法

            

     

     

        Java中实现多态的机制是什么?

          答:子类继承父类,类实现接口。方法的重写Overriding和重载Overloading是Java多态性的不同表现,只不过重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。

     

        abstractclass和interface语法上有什么区别?

          答:

            抽象类可以写所有的方法,只是抽象类的构造方法在实例化的时候必须赋值子类对象;接口不能写构造方法

            抽象类可以定义普通的成员变量;接口只能定义public static final修饰的变量,即常量

            抽象类中可以写静态方法;在jdk8之前,接口只能写抽象方法,但从jdk8开始,接口中就可以定义静态方法了

            抽象类的方法的访问类型可以是public、protected和default;接口中方法的访问类型只能是public,即默认的public abstract

            一个类可以实现多个接口,但只能继承一个抽象类;并且接口可以继承多个类,但抽象类只支持单继承。

     

        abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

          答:

            方法不能同时被static和abstract修饰:

              一是由于static修饰的方法必须有方法体而abstract修饰的方法没有方法体,两者互相矛盾;

              二是因为abstract修饰的方法必须被重写(overwrite)而static修饰的静态方法不能被重写(overwrite)

            

     

            方法不能同时被native和abstract修饰:

              native修饰方法只有方法的声明,没有方法的实现,它将方法的实现交给本地操作系统

              abstract修饰的方法也只有方法的声明,没有方法的实现,但它将方法的实现交给子类

              如果这两者同时修饰同一个方法就会产生矛盾:究竟是把方法交给本地实现还是类实现,

              所以这两者不能同时修饰一个方法

              

     

     

            方法不能同时被synchronized和abstract修饰:

              synchronized修饰的方法称为同步代码块,必须拥有方法体;而abstract修饰的方法没有方法体

              

     

     

     

     

        内部类可以引用它的包含类的成员吗?有没有什么限制?

          答:

            只有静态内部类有例外:

              静态内部类:当内部类是静态内部类时,可以引用包含类的成员变量,但必须有static修饰

              

     

              内部类:当内部类时普通的成员内部类时,可以访问包含类中的所有任何成员变量

              

     

        String s = "Hello";s = s + "world!";这两行代码执行后,原始的String对象中的内容到底变了没有?

          答:没有变,当我们执行第一条语句String s = "Hello"时,引用s第一次指向的内容是“Hello”;当执行了+操作后,引用s的内存地址发生改变,并指向“World!”,此时String对象中的内容并没有改变。

            

     

  • 相关阅读:
    jQuery 选择器 与 事件
    JavaScript 语法
    Java 包(package)
    Java 接口
    java封装继承多态---继承篇
    Java数组的学习
    java基础周总结
    JAVA基础接口集合框架
    周总结
    Java基础
  • 原文地址:https://www.cnblogs.com/javaisbest/p/11606980.html
Copyright © 2011-2022 走看看