zoukankan      html  css  js  c++  java
  • JavaSE之谈谈对java平台的理解

    Q:谈谈你对Java平台的理解?“Java是解释执行”,这句话正确吗?

    考点分析

      题目本身是非常开放的,往往考察的是多个方面,比如,基础知识理解是否很清楚是否掌握Java平台主要模块和运行原理等。

      对于这类笼统的问题,你需要尽量表现出自己的思维深入并系统化,Java知识理解得也比较全面,一定要避免让面试官觉得你是个“知其然不知其所以然”的人。毕竟明白基本组成和机制,是日常工作中进行问题诊断或者性能调优等很多事情的基础,相信没有招聘方会不喜欢“热爱学习和思考”的面试者。

      即使感觉自己的回答不是非常完善,也不用担心。我个人觉得这种笼统的问题,有时候回答得稍微片面也很正常,大多数有经验的面试官,不会因为一道题就对面试者轻易地下结论。通常会尽量引导面试者,把他的真实水平展现出来,这种问题就是做个开场热身,面试官经常会根据你的回答扩展相关问题。

    参考回答 

      首先,Java是一门面向对象的语言,相对简单,容易上手,不仅提供了包括集合、IO/NIO、网络、并发、安全等丰富的基础类库,而且自带内存管理,Java通过垃圾收集器回收分配内存,大部分情况下,不需要自己操心内存的分配和回收;其次是可移植性和跨平台性;java编写的应用程序在不同的操作系统都可以运行,因为Java通过字节码和Java虚拟机这种跨平台的抽象,屏蔽了操作系统和硬件的细节,这也是实现“一次编译,到处执行”的基础,不同的操作系统上可以安装对应的Java虚拟机;java具有三大特性:封装、继承和多态,同时,还拥有反射、泛型和lambda等语言特性。

      对于“Java是解释执行”这句话,这个说法不太准确。我们开发的Java的源代码,首先通过Javac编译成为字节码,然后,在运行时,通过 Java虚拟机(JVM)内嵌的解释器将字节码转换成为最终的机器码。但是常见的JVM,比如我们大多数情况使用的Oracle JDK提供的Hotspot JVM,都提供了JIT(Just-In-Time)编译器,也就是通常所说的动态编译器,JIT能够在运行时将热点代码编译成机器码,这种情况下部分热点代码就属于编译执行,而不是解释执行了。

    转载:

      极客时间:《Java核心技术面试精讲

  • 相关阅读:
    .NetCore 部署到IIS上的问题
    泛型(EF)增删改查
    Ef数据GroupBy多字段查询Vb.net与c#参考
    WEBAPI 最近更新项目时 服务器总是提示:An error has occurred.
    SQL SERVER 语法
    Fonour.AspnetCore 生成SQL SERVER数据库
    Windows10出现打开EXE应用程序错误
    jQuery实现DOM加载方法源码分析
    前端面试高频题:删除数组重复元素的多种方法
    Mac 下使用homebrew 安装node后全局安装找不到问题
  • 原文地址:https://www.cnblogs.com/GuixinChan/p/13493928.html
Copyright © 2011-2022 走看看