首页>面试题库>java面试题

java面试题及答案---2018核心Java面试问题与解答(一)

2018-08-04 08:44:08 | 查看次数 695 | 分类: 面试题库>java面试题 文章来源:来源:http://www.ifx666.cn

摘要内容:java面试题及答案---2018核心Java面试问题与解答,最新java面试与答案。

  1. Java 10发布的重要特性是什么?

    Java 10是Oracle公司每六个月发布一次,因此它不像早期版本那样是主要版本。但是,Java 10的一些重要功能是:

    • 局部变量类型推断
    • 增强java.util.Locale和相关API以实现BCP 47语言标记的其他Unicode扩展。
    • 启用HotSpot VM以在另一个内存设备上分配Java对象堆,例如用户指定的NV-DIMM。
    • 在JDK中提供一组默认的根证书颁发机构(CA)证书。

    Java 10主要是维护版本,但我真的很喜欢本地变量类型推断功能。

  2. Java 9发布的重要特性是什么?

    Java 9是一个主要版本,带来了很多功能。一些重要的功能是:

    • Java 9 REPL(JShell)
    • Java 9模块系统
    • 不可变列表,集合,映射和Map.Entry的工厂方法
    • 接口中的私有方法
    • 反应流
    • GC(垃圾收集器)改进
  3. Java 8发布的重要特性是什么?

    Java 8已于2014年3月发布,因此它是java面试问题的热门话题之一。如果您清楚地回答这个问题,它将表明您希望自己了解最新技术。

    Java 8是Java 5注释和泛型之后的最大版本之一。Java 8的一些重要功能是:

    1. 接口随默认和静态方法而变化
    2. 功能接口和Lambda表达式
    3. 用于集合类的Java Stream API
    4. Java Date Time API
    1. 用Java命名一些OOPS概念?

      Java基于面向对象的编程概念,以下是java编程中实现的一些OOPS概念。

      • 抽象化
      • 封装
      • 多态性
      • 遗产
      • 协会
      • 聚合
      • 组成
    2. Java的平台独立性是什么意思?

      平台独立性意味着您可以在任何操作系统中运行相同的Java程序。例如,您可以在Windows中编写java程序并在Mac OS中运行它。

    3. 什么是JVM,它是独立于平台的吗?

      Java虚拟机(JVM)是​​java编程语言的核心。JVM负责将字节代码转换为机器可读代码。JVM不是独立于平台的,这就是为什么你有不同的JVM用于不同的操作系统。我们可以使用Java Options自定义JVM,例如为JVM分配最小和最大内存。它被称为虚拟,因为它提供了一个不依赖于底层操作系统的接口。

    4. JDK和JVM有什么区别?

      Java Development Kit(JDK)用于开发目的,JVM是执行java程序的一部分。

      JDK提供编译,调试和执行Java程序所需的所有工具,可执行文件和二进制文件。执行部分由JVM处理以提供机器独立性。

    5. JVM和JRE有什么区别?

      Java Runtime Environment(JRE)是JVM的实现。JRE由JVM和java二进制文件以及其他成功执行任何程序的类组成。JRE不包含任何开发工具,如java编译器,调试器等。如果要执行任何Java程序,则应安装JRE。

    6. 哪个类是所有类的超类?

      java.lang.Object 是所有java类的根类,我们不需要扩展它。

    7. 为什么Java不支持多重继承?

      但是接口支持多个继承。接口可以扩展多个接口,因为它们只是声明方法,实现将出现在实现类中。所以没有接口钻石问题的问题。

    8. 为什么Java不是纯粹的面向对象语言?

      Java并不是纯粹的面向对象,因为它支持原始类型,如int,byte,short,long等。我相信它在编写代码时为语言带来了简单性。显然,java可以有原始类型的包装器对象,但只是为了表示,它们不会提供任何好处。

      我们知道,对于所有原始类型,我们都有包装类,如Integer,Long等,它们提供了一些额外的方法。

    9. 路径和类路径变量之间有什么区别?

      PATH是操作系统用于定位可执行文件的环境变量。这就是为什么当我们安装Java或希望OS找到任何可执行文件时,我们需要在PATH变量中添加目录位置。

      Classpath特定于java,并由java可执行文件用于定位类文件。我们可以在运行java应用程序时提供类路径位置,它可以是目录,ZIP文件,JAR文件等。

    10. Java中main方法的重要性是什么?

      main()方法是任何独立java应用程序的入口点。main方法的语法是public static void main(String args[])

      Java main方法是public和static,因此Java运行时可以在不初始化类的情况下访问它。input参数是一个String数组,通过它我们可以将运行时参数传递给java程序。

    11. 什么是重载和覆盖java?

      当我们在一个类中有多个具有相同名称的方法但参数不同时,则将其称为方法重载。

      当我们有两个具有相同签名的方法,一个在父类中,另一个在子类中时,覆盖概念出现在继承图中。我们可以在子类重写方法中使用@Override注释来确保是否更改了父类方法,以及子类。

    12. 我们可以重载主方法吗?

      是的,我们可以在一个类中使用名为“main”的多个方法。但是,如果我们运行该类,则java运行时环境将查找具有语法的main方法public static void main(String args[])

    13. 我们可以在java源文件中有多个公共类吗?

      我们在一个java源文件中不能有多个公共类。单个源文件可以包含多个不公开的类。

    14. 什么是Java Package以及默认导入的包?

      Java包是通过对它们进行分组来组织java类的机制。分组逻辑可以基于功能或模块。java类完全分类的名称包含包和类名。例如,java.lang.Object包的Object一部分的完全分类的java.lang

      java.lang 默认情况下导入包,我们不需要显式地从这个包中导入任何类。

    15. 什么是访问修饰符?

      Java通过公共,私有和受保护的访问修饰符关键字提供访问控制。如果没有使用这些,则称为默认访问修饰符。
      java类只能有公共或默认访问修饰符。

    16. 什么是最终关键字?

      final关键字与Class一起使用以确保没有其他类可以扩展它,例如String类是final,我们无法扩展它。

      我们可以使用带有方法的final关键字来确保子类不能覆盖它。

      final关键字可以与变量一起使用,以确保它只能分配一次。但是,变量的状态可以更改,例如,我们只能将一个最终变量赋值给对象一次,但对象变量可以稍后更改。

      Java接口变量默认为final和static。

    17. 什么是static关键字?

      static关键字可以与类级变量一起使用,使其成为全局的,即所有对象将共享同一个变量。

      static关键字也可以与方法一起使用。静态方法只能访问类的静态变量,并且只能调用类的静态方法。

    18. 什么是最终并在Java中完成?

      finally块与try-catch一起用于放置您想要执行的代码,即使try-catch块抛出任何异常也是如此。finally块主要用于释放在try块中创建的资源。

      finalize()是Object类中的一个特殊方法,我们可以在类中重写它。当对象收集垃圾时,垃圾收集器会调用此方法。当对象被垃圾收集时,通常会重写此方法以释放系统资源。

    19. 我们可以将一个类声明为静态吗?

      我们不能将顶级类声明为static,但是内部类可以声明为static。如果内部类声明为static,则称为静态嵌套类。
      静态嵌套类与任何其他顶级类相同,并且仅为了包装方便而嵌套。

    20. 什么是静态导入?

      如果我们必须使用来自其他类的任何静态变量或方法,通常我们导入该类,然后使用带有类名的方法/变量。

      
      import java.lang.Math;
      
      //inside class
      double test = Math.PI * 5;
      

      我们可以通过仅导入静态方法或变量来执行相同的操作,然后在类中使用它,就像它属于它一样。

      
      import static java.lang.Math.PI;
      
      //no need to refer class now
      double test = PI * 5;
      

      使用静态导入会导致混淆,因此最好避免使用它。过度使用静态导入会使您的程序无法读取且无法维护。

    21. 什么是java中的try-with-resources?

      Java 7的一个特性是用于自动资源管理的try-with-resources语句。在Java 7之前,没有自动资源管理,我们应该明确关闭资源。通常,它是在finallytry-catch语句块中完成的当我们忘记关闭资源时,这种方法会导致内存泄漏。

    22. 什么是java中的多捕获块?

      Java 7的改进之一是多捕获块,我们可以在一个catch块中捕获多个异常。当每个catch块具有类似的代码时,这使得代码更短且更干净。

      如果catch块处理多个异常,您可以使用管道(|)将它们分开,在这种情况下,exception参数(ex)是最终的,因此您无法更改它。

上一篇: web前端面试题及答案总会(二)

下一篇: web前端面试题 本文是在GitHub上看到一个大牛总结的前端常见面试题

验证码:
评论列表
  • 文章推荐

    09-19 | 查看次数 450

    《深入理解Spring Cloud与微服务构建》PDF下载

    09-14 | 查看次数 155

    bootstrap tooltip 提示框的样式、提示字体颜...

    09-01 | 查看次数 160

    json字符串与java对象互转,json字符串转化为map...

    08-04 | 查看次数 328

    java面试题及答案---2018核心Java面试问题与解答...

    08-03 | 查看次数 694

    java面试题及答案---2018核心Java面试问题与解答...

    最新评论
    文章标题:管理和发布文章java cms

    评论内容:能下载吗

    评论时间:2018-12-12 01:30:02

  • 返回顶部
    欢迎投稿
    返回底部