A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


1.说明Java中String  str=null与String  str=""的区别?
    String str = null 表示声明了一个String对象的引用str,但是没有为其分配内存空间。
    String str = "" 表示创建了一个长度等于0的空字符串,并在内存中为其分配了内存空间。
String str = new String("tw"); str在内存中有两个对象,1.堆内存有一个 new Sting 2.常量池中有一个字符串。

2、使用运算符"= ="和方法equals() 进行比较对象的区别?
    使用"= ="算符比较基本数据类型时,比较的是值相等;使用"=="算符比较对象时,比较的是内存地址和内容。
    使用equals()方法 比较对象时,比较的是对象的内容,与地址无关,如果没有重写equals()方法就直接调用的是Object的equals()方法。
"=="比较的是外在和内涵;equals()比较的是外在。用博大精深的中文讲就是:一个相同,一个相似。

3、接口和抽象类有何区别?
   (1)成员特点:
    构造方法:接口没有构造方法;抽象类有构造方法。
    成员变量:接口中只有常量;抽象类中可以是常量,也可以是变量。
   成员方法:接口中只有抽象方法;抽象类中既有抽象方法,也有非抽象方法。
   (2)关系特点:
    类与类:类与类之间只有单继承,可以有多层继承。
   类与接口:类与接口之间是实现关系,可以单实现,也可以多实现。
   接口与接口:接口与接口之间是继承关系,可以单继承,也可以多继承。
   (3)设计理念:
    接口对应的设计模式是简单工厂设计模式,它被实现,这个接口中定义的是整个体现的扩展内容,体现:like a。
    抽象类对象的设计模式是模板设计模式,它被继承,这个类中定义的是整体体现的共性内容,显现is a。
  小编的理解:抽象类与接口类比为一个人的亲爹和干爹,亲爹血浓于水,感情深,爱你发自内心;干爹各种机缘认来的(中国式干爹你懂得)。
4、简述方法的重写与重载
    重写是指重新实现基类中的方法。在运行过程中,如果将子类创建的对象赋值给子类的引用或父类的引用,则无论通过哪个类型的引用,真正调用的方法都将是在子类中重写的方法。 如果希望调用父类中的方法,则需要通过父类创建类的实例,然后通过该实例才能访问父类定义的方法。重写方法时实现多态的一个重要表现。
    在Java中,一个类的内部可以定义多个同名的方法,但是它们的方法参数要有所不同。重写的是与父类同名的方法,与返回值有关。重载是同名方法,与返回值无关,与参数有关,如:个数、类型、排列。
重写注意事项:
(1)父类中的私有方法不可以被重写
(2)子类方法访问权限一定要大于父类的访问权限
(3)静态的方法只能被静态的方法重写,这个其实不能算对象的关系。

5、final、finally、finallize有何区别?
    final表示一个修饰符,如果用它来修饰一个类,则该类是不能继承的;如果用它来修饰一个变量,则该变量一旦赋值之后就不能再修改;如果用它来修饰一个方法,则该方法不能够被重写。
    finally用于异常处理,它用来修饰一个代码块,即使前面的代码处理异常,该代码块中的代码也会执行。它通常用于释放资源。finally代码块之前有调用System.exit()方法的话,finally里面的代码就不会执行。
    finallize表示Object类中定义的一个方法,他可以重写,用于回收资源。

6、编程计算3乘8等于几,什么方法效率更高?
     位运算的方法效率更高。编程运算其实质是二进制的运算,运用位运算的方法移动后补位即可得结果,比一般的3*8更高效。

7、不借用第三方变量,互换两个变量。
          n=11,m=3
     (2)n=n^m;
           m=n^m;//(n^m)^m一个数异或另一个数两次,还是得原来那个数
            n=n^m//n^(n^m)

小编强力推荐第二种方法,这是提升逼格的强劲手段。当面试官问你这个问题,你跟他拓展到位移运算,你的背后就会出现万丈光芒,那时你就会神一样存在在面试官的心里。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马