zoukankan      html  css  js  c++  java
  • Java面试题之一

    下面也将收集一些经典的java面试题,琢磨这些面试题还是非常有好处,可以弄清楚一些容易混淆的知识点,下面面试题的答案部分来自网络,有些来自自己的理解,都是自己精心归纳整理的,有问题的地方,希望大家指出,以便及时更正。

    一、GC是什么? 为什么要有GC?

    GCGabage Collection的缩写。中文意思就是垃圾回收。

    JavaC++发展而来,在C/C++中,需要程序员自己来释放无用变量的内存空间,这样非常繁琐,程序员也可能忘记释放或者释放了不该释放的内存。同时也会耗费程序员大量精力在释放内存上。所以,Java就对此做了改进,由系统来管理内存的释放,不再由程序员去人工释放内存空间了。当Java虚拟机发觉内存资源紧张的时候,就会自动地去清理无用变量所占用的内存空间,如果程序员显示地调用System.gc(),可以通知虚拟机加快垃圾回收的速度。但并不能控制垃圾回收。

     

    二、switch语句能否作用在byte上,能否作用在long上,能否作用在String?

    switch(condition)中,condition只能是一个整数表达式或者枚举常量,整数表达式可以是int基本类型或Integer包装类型,由于byteshortchar都可以隐含转换为int,所以这些类型以及这些类型的包装类型也是可以的。long不能作用于switch语句中。Stringjdk1.7之前的版本也不可以。

     

    三、"=="equals方法究竟有什么区别?

    1. "=="是运算符,equals是方法,可以被重写。

    2.==”操作符用来比较变量所对应的内存中所存储的数值是否相同。所以要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符。因为比较基本数据类型是否相等就是比较其内存中的数值是否相等。比较两个引用变量是否相等就是比较其内存中的值(该变量所指向的对象的首地址)是否相等,就是比较它们是否指向同一个对象。

    3. equals()方法是用于比较两个独立对象的内容是否相同。比如:String a=new String("java"); String b=new String("java");这两个变量指向的是两个不同的对象,它们的首地址是不同的,也就是说ab内存中存储的值是不同的,即a==b会返回false,但它们的内容是相同的,所以a.equals(b)将返回true

    4. equalsObject的方法。其底层实现就是根据“==”来判断的,这就是说如果一个类或者其父类没有覆盖Objectequals()方法,那么“==”和equals()效果是一样的。上面就是因为String类已经重写了equals()方法,所以“==”和equals()得到的结果才会不一样。

     

    四、构造方法能否被重写和重载?

    1、构造方法是允许被重载的,而且重载构造方法是一种很普遍的做法,可以方便使用者灵活的创建对象。重载的构造方法之间相互调用可以使用this关键字。

    2、在继承过程中构造方法是不能被继承的,因此在子类中无法对父类构造方法重新定义,当然就不能被重写了。如果需要在子类中调用父类的方法,可以调用super关键字引用。

     

    五、抽象类和接口的区别?

    1、接口和抽象类都不能产生对象。接口变量只能指向实现类对象,抽象类变量只能指向子类对象。
    2、一个类实现接口或者一个类继承一个抽象类,都必须实现接口或抽象类中定义的所有抽象方法。除非该类也是抽象类。
    3、抽象类中可以定义抽象方法也可以定义具体方法。但接口中只能定义抽象方法。
    4、接口中定义的变量都是public static final。而抽象类中定义的变量是普通属性。
    5、接口中定义的方法都是public。不能用privateprotected修饰。而抽象类中定义的方法可以是默认、protectedpublic
    6、一个类只能继承另一个类,但可以实现多个接口。
    7、接口和抽象类中都可以不定义抽象方法。

     

     

                                                                                                                               

     

     

     

  • 相关阅读:
    Linux操纵系统下的Oracle数据库编程详解
    Apache Tomcat负载平衡设置要领具体解析
    如何设定实施Java法式圭臬标准的Linux沉静状况1
    如何设定实施Java程序的Linux平安情况2
    Linux下Web效力器架设攻略1
    Linux下jsp情况:apache,tomcat设置装备安排1
    处置Linux下Oracle Tomcat 8080端口辩说
    一步一步跟我学Linux平台下搭建Jsp景象2
    若何设定实行Java步调的Linux安好环境3
    Linux下Apache与Tomcat整合的年夜抵要领
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3324856.html
Copyright © 2011-2022 走看看