zoukankan      html  css  js  c++  java
  • java面试第二弹

    1.==和equals的区别?

    == 指向的是一个地址

    Equelas 指向的是地址里具体的值

    2.静态变量和实例变量的区别?

      静态变量依赖于类而存在,如果类改变了,静态变量也会跟着改变

      实例变量不管其他类变不变,它自己的改变不会跟着其他东西改变

    3.integer与int的区别?

     Int是java提供的八大原始数据类型之一。Java为每个原始类型都提供了一个封装了。而integer就是java为int提供的封装类。Int的默认值为0,而integer的默认值为null

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

     Math类中提供了三个有关于取整的方法:cell,向上取整 floor 向下取整, Round四舍五入。其语法为Math. Floor(x+0.5) 原来的11.5+0.5=12  -11.5+0.5=11

    5.java中public  private protected

    当前类 当前package 子孙类 其他package

    public:公有,所有类都可以访问
    puotected:保护,同一类、同一包、不同包的子类可以访问
    缺省:即什么都不写,同一类、同一包可以访问
    private:私有,只有同一类中可访问

    6 Overload和Override的区别。

    Overload是重载的意思,Override是覆盖的意思,也就是重写。

    重载Overload表示同一个类中可以有多个名称相同的方法,但这些方法的参数列表各不相同(即参数个数或类型不同)。

    因为我们有时候调用一个方法时也可以不定义返回结果变量,即不要关心其返回结果,例如,我们调用map.remove(key)方法时,虽然remove方法有返回值,但是我们通常都不会定义接收返回结果的变量,这时候假设该类中有两个名称和参数列表完全相同的方法,仅仅是返回类型不同,java就无法确定编程者倒底是想调用哪个方法了,因为它无法通过返回结果类型来判断。

    7.构造器Constructor是否可被override?

    构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。

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

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

    9、写clone()方法时,通常都有一行代码,是什么?

    clone 有缺省行为,super.clone();因为首先要把父类中的成员复制到位,然后才是复制自己的成员。

    10.面向对象的特点:

    封装  把客观的实物封装成一个抽象类

    继承  指可以让某个类型的对象获得另一个类型的对象的属性的方法。

    多态  指一个类实例的相同方法在不同情形有不同表现形式

    11.java中实现多态的机制是什么?

    父类A有一个方法function(),子类B,C分别继承A并且重写function(),当创建一个对象A b = new B(); b.function()就调用B的funciotn,假如你new C(),那调用的就是C重写的function。怎么判断使用那个类的function就是动态绑定,这个现象就是多态...
     

    12.abstract class和interface有什么区别?  

    接口是一个特殊的抽象类。只能声明方法,但不能实现方法。接口中的所有方法都是抽象的。

    1. 抽象类可以有构造方法,接口中不能有构造方法。
    2. 抽象类中可以包含静态方法,接口中不能包含静态方法

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

    abstract的method 不可以是static的,因为抽象的方法是要被子类实现的,而static与子类扯不上关系!

    native方法表示该方法要用另外一种依赖平台的编程语言实现的,不存在着被子类实现的问题,所以,它也不能是抽象的,不能与abstract混用。

    14. 什么是内部类?Static Nested Class 和 Inner Class的不同。

     

    内部类就是在一个类的内部定义的类,内部类中不能定义静态成员(静态成员不是对象的特性,只是为了找一个容身之处,所以需要放到一个类中而已

    15.

    Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

    16. String是最基本的数据类型吗?

    基本数据类型包括byte、int、char、long、float、double、boolean和short。

    java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类

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

    没有。因为String被设计成不可变(immutable)类,所以它的所有对象都是不可变对象。在这段代码中,s原先指向一个String对象,内容是 "Hello",然后我们对s进行了+操作,那么s所指向的那个对象是否发生了改变呢?答案是没有。这时,s不指向原来那个对象了,而指向了另一个 String对象,内容为"Hello world!",原来那个对象还存在于内存之中,只是s这个引用变量不再指向它了。

    18. 是否可以继承String类?

    String类是final类故不可以继承。

    19. 、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别?

    两个或一个,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。New String每写一遍,就创建一个新的对象,它依据那个常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,这句代表就不会创建”xyz”自己了,直接从缓冲区拿。

    20 String 和StringBuffer的区别

    JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。

    21. 如何把一段逗号分割的字符串转换成一个数组?

    1. 用正则表达式,代码大概为:String [] result = orgStr.split(“,”);
    2. 用 StingTokenizer ,代码为:StringTokenizer  tokener = StringTokenizer(orgStr,”,”);

    String [] result = new String[tokener .countTokens()];

    Int i=0;

    while(tokener.hasNext(){result[i++]=toker.nextToken();}

    22. 数组有没有length()这个方法? String有没有length()这个方法?

    数组没有length()这个方法,有length的属性。String有有length()这个方法。

    23. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

    也许你的答案是在return之前,但往更细地说,我的答案是在return中间执行,请看下面程序代码的运行结果:

    public  class Test {

      public static void main(String[] args) {

          System.out.println(new Test().test());

      }

      static int test() {

          int x = 1;

          try {

             return x;

          } finally {

             ++x;

          }

      }

    }

    ---------执行结果 ---------

    1

    为什么呢?主函数调用子函数并得到结果的过程,好比主函数准备一个空罐子,当子函数要返回结果时,先把结果放在罐子里,然后再将程序逻辑返回到主函数。所谓返回,就是子函数说,我不运行了,你主函数继续运行吧,这没什么结果可言,结果是在说这话之前放进罐子里的。

    24、final, finally, finalize的区别。

    final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。

    内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码……

    finally是异常处理语句结构的一部分,表示总是执行。

    finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用

    25. error和exception有什么区别?

    error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

    26. JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?

    throws是获取异常

    throw是抛出异常

    try是将会发生异常的语句括起来,从而进行异常的处理,也可以在try块中抛出新的异常

    catch是如果有异常就会执行他里面的语句

    finally不论是否有异常都会进行执行的语句

     

    一直认为技术可以改变世界
  • 相关阅读:
    Hibernate初学
    表分区
    单列函数
    Oracle基础
    8.28
    SpringMVC
    SpringMVC 初级操作
    试题评测
    Mybatis

  • 原文地址:https://www.cnblogs.com/hackxhao/p/5489682.html
Copyright © 2011-2022 走看看