Java基础面试题【1】-创新互联
1.面向对象和面向过程的区别
梨林ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!面向过程
优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗 资源;比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发,性能是 最重要的因素。
缺点: 没有面向对象易维护、易复用、易扩展 面向对象 优点: 易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特 性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 缺点: 性能比面向过程低
2. Java 语言有哪些特点
1. 简单易学;
2. 面向对象(封装,继承,多态);
3. 平台无关性( Java 虚拟机实现平台无关性);
4. 可靠性;
5. 安全性;
6. 支持多线程( C++ 语言没有内置的多线程机制,因此必须调用操作系 统的多线程功能来进行多线程程序设计,而 Java 语言却提供了多线程 享学课堂 支持);
7. 支持网络编程并且很方便( Java 语言诞生本身就是为简化网络编程设 计的,因此 Java 语言不仅支持网络编程而且很方便);
8. 编译与解释并存;
3. 关于 JVM JDK 和 JRE
最详细通俗的解答 JVM Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特 定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给 出相同的结果。 什么是字节码?采用字节码的好处是什么? 在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为 .class 的文 件),它不面向任何特定的处理器,只面向虚拟机。
Java 语言通过字节码的方 式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解 释型语言可移植的特点。所以 Java 程序运行时比较高效,而且,由于字节码 并不专对一种特定的机器,因此,Java 程序无须重新编译便可在多种不同的计 算机上运行。
Java 程序从源代码到运行一般有下面 3 步: 我们需要格外注意的是 .class->机器码
这一步。在这一步 jvm 类加载器首先 加载字节码文件,然后通过解释器逐行解释执行,这种方式的执行速度会相对 比较慢。而且,有些方法和代码块是经常需要被调用的,也就是所谓的热点代 码,所以后面引进了 JIT 编译器,JIT 属于运行时编译。当 JIT 编译器完成第 一次编译后,其会将字节码对应的机器码保存下来,下次可以直接使用。而我 们知道,机器码的运行效率肯定是高于 Java 解释器的。这也解释了我们为什 么经常会说 享学课堂 Java 是编译与解释共存的语言。 HotSpot 采用了惰性评估(Lazy Evaluation)的做法,根据二八定律,消耗大部分 系统资源的只有那一小部分的代码(热点代码),而这也就是 JIT 所需要编译 的部分。JVM 会根据代码每次被执行的情况收集信息并相应地做出一些优化, 因此执行的次数越多,它的速度就越快。JDK 9 引入了一种新的编译模式 AOT(Ahead of Time Compilation),它是直接将字节码编译成机器码,这样就 避免了 JIT 预热等各方面的开销。JDK 支持分层编译和 AOT 协作使用。但是 , AOT 编译器的编译质量是肯定比不上 JIT 编译器的。 总结:Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系 统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们 都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编 译,随处可以运行”的关键所在。 JDK 和 JRE JDK 是 Java Development Kit,它是功能齐全的 Java SDK。它拥有 JRE 所拥有 的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它能够创建和编 译程序。
JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合, 包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但 是,它不能用于创建新程序。 如果你只是为了运行一下 Java 程序的话,那么你只需要安装 JRE 就可以了。 如果你需要进行一些 Java 编程方面的工作,那么你就需要安装 JDK 了。但 是,这不是绝对的。有时,即使您不打算在计算机上进行任何 享学课堂 Java 开发,仍然 需要安装 JDK。例如,如果要使用 JSP 部署 Web 应用程序,那么从技术上讲, 您只是在应用程序服务器中运行 Java 程序。那你为什么需要 JDK 呢?因为应用 程序服务器会将 JSP 转换为 Java servlet,并且需要使用 JDK 来编译 servlet。
4. Oracle JDK 和 OpenJDK 的对比 可能在看这个问题之前很多人和我一样并没有接触和使用过 OpenJDK 。那么 Oracle 和 OpenJDK 之间是否存在重大差异?下面通过我通过我收集到一些资 料对你解答这个被很多人忽视的问题。
对于 Java 7,没什么关键的地方。OpenJDK 项目主要基于 Sun 捐赠的 HotSpot 源代码。此外,OpenJDK 被选为 Java 7 的参考实现,由 Oracle 工程师维护。 关于 JVM,JDK,JRE 和 OpenJDK 之间的区别,Oracle 博客帖子在 2012 年有 一个更详细的答案: 问:OpenJDK 存储库中的源代码与用于构建 Oracle JDK 的代码之间有什么区 别? 答:非常接近 - 我们的 Oracle JDK 版本构建过程基于 OpenJDK 7 构建,只添 加了几个部分,例如部署代码,其中包括 Oracle 的 Java 插件和 Java WebStart 的实现,以及一些封闭的源代码派对组件,如图形光栅化器,一些开源的第三 方组件,如 Rhino,以及一些零碎的东西,如附加文档或第三方字体。展望未 来,我们的目的是开源 Oracle JDK 的所有部分,除了我们考虑商业功能的部 分。
总结: 1. Oracle JDK 版本将每三年发布一次,而 OpenJDK 版本每三个月发布一 享学课堂 次; 2. OpenJDK 是一个参考模型并且是完全开源的,而 Oracle JDK 是 OpenJDK 的一个实现,并不是完全开源的; 3. Oracle JDK 比 OpenJDK 更稳定。OpenJDK 和 Oracle JDK 的代码几乎 相同,但 Oracle JDK 有更多的类和一些错误修复。因此,如果您想开发 企业/商业软件,我建议您选择 Oracle JDK,因为它经过了彻底的测试和 稳定。某些情况下,有些人提到在使用 OpenJDK 可能会遇到了许多应 用程序崩溃的问题,但是,只需切换到 Oracle JDK 就可以解决问题; 4. 顶级公司正在使用 Oracle JDK,例如 Android Studio,Minecraft 和 IntelliJ IDEA 开发工具,其中 Open JDK 不太受欢迎;
想要了解更多Java基础知识,可以点击评论区链接和小编一起学习java吧,此视频教程为初学者而著,零基础入门篇!给同学们带来全新的Java300集课程啦!java零基础小白自学Java必备优质教程_手把手图解学习Java,让学习成为一种享受_哔哩哔哩_bilibili
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
标题名称:Java基础面试题【1】-创新互联
本文地址:http://cdiso.cn/article/ccpigd.html