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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庭院深深深几许 金牌黑马   /  2019-4-18 14:12  /  840 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  今天给大家分享的是关于Java面试的几个小问题,助力各位同学面试的时候能更加顺利。
20171226041534718.jpg

  1、Java 中的值传递和引证传递
  解析:这类标题,面试官会手写一个例子,让你说出函数履行结果,具体举例请查阅我的博客:Java 值传递和引证传递根底剖析。
  答:值传递是指目标被值传递,意味着传递了目标的一个副本,即便副本被改动,也不会影响源目标。引证传递是指目标被引证传递,意味着传递的并不是实践的目标,而是目标的引证。
  因而,外部对引证目标的改动会反映到一切的目标上。
  2、面向目标的特性有哪些?
  答:封装、承继和多态。
  3、Java 中掩盖和重载是什么意思?
  解析:掩盖和重载是比较重要的根底知识点,而且简单混杂,所以面试中常见。
  答:掩盖(Override)是指子类对父类办法的一种重写,只能比父类抛出更少的反常,拜访权限不能比父类的小。
  被掩盖的办法不能是 private 的,否则只是在子类中从头界说了一个办法;重载(Overload)表示同一个类中能够有多个称号相同的办法,但这些办法的参数列表各不相同。
  4、面试官: 那么构成重载的条件有哪些?
  答:参数类型不同、参数个数不同、参数次序不同。
  面试官: 函数的返回值不同能够构成重载吗?为什么?
  答:不能够,由于 Java 中调用函数并不需要强制赋值。举例如下:
  如下两个办法:
  void f(){}
  int f(){ return 1;}
  只需编译器能够依据语境清晰判别出语义,比如在 int x = f();中,那么确实能够据此差异重载办法。不过, 有时你并不关怀办法的返回值,你想要的是办法调用的其他作用 (这常被称为 “为了副作用而调用”),这时你可能会调用办法而疏忽其返回值,所以如果像下面的调用:
  fun();
  此刻 Java 怎么才干判别调用的是哪一个 f() 呢?他人怎么了解这种代码呢?所以,依据办法返回值来差异重载办法是行不通的。
  5、笼统类和接口的差异有哪些?
  答:
  笼统类中能够没有笼统办法;接口中的办法有必要是笼统办法;
  笼统类中能够有一般的成员变量;接口中的变量有必要是 static final 类型的,有必要被初始化 , 接口中只需常量,没有变量。
  笼统类只能单承继,接口能够承继多个父接口;
  Java8 中接口中会有 default 办法,即办法能够被完成。
  6、面试官:笼统类和接口怎么挑选?
  答:
  如果要创立不带任何办法界说和成员变量的基类,那么就应该挑选接口而不是笼统类。
  如果知道某个类应该是基类,那么第一个挑选的应该是让它成为一个接口,只需在有必要要有办法界说和成员变量的时分,才应该挑选笼统类。由于笼统类中答应存在一个或多个被具体完成的办法,只需办法没有被悉数完成该类就仍是笼统类。
  7、Java 和 C++ 的差异:
  解析:虽然我们不太懂 C++,可是就是会这么问,尤其是三面(总监等级)面试中。
  答:
  都是面向目标的言语,都支撑封装、承继和多态;
  指针:Java 不供给指针来直接拜访内存,程序愈加安全;
  承继: Java 的类是单承继的,C++ 支撑多重承继; Java 通过一个类完成多个接口来完成 C++ 中的多重承继; Java 中类不能够多承继,可是!!!接口能够多承继;
  内存: Java 有主动内存管理机制,不需要程序员手动释放无用内存。


0 个回复

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