java基础面试问答

Java 和 JDK 的关系

JDK(Java Development Kit)Java 开发工具包,它包括:编译器、Java 运行环境(JRE,Java Runtime Environment)、JVM(Java 虚拟机)监控和诊断工具等,而 Java 则表示一种开发语言。

Java 程序是怎么执行的?

先把 Java 代码编译成字节码,也就是把 .java 类型的文件编译成 .class 类型的文件。这个过程的大致执行流程:Java 源代码 -> 词法分析器 -> 语法分析器 -> 语义分析器 -> 字符码生成器 -> 最终生成字节码,其中任何一个节点执行失败就会造成编译失败;
把 class 文件放置到 Java 虚拟机,这个虚拟机通常指的是 Oracle 官方自带的 Hotspot JVM;
Java 虚拟机使用类加载器(Class Loader)装载 class 文件;
类加载完成之后,会进行字节码效验,字节码效验通过之后 JVM 解释器会把字节码翻译成机器码交由操作系统执行。但不是所有代码都是解释执行的,JVM 对此做了优化,比如,以 Hotspot 虚拟机来说,它本身提供了 JIT(Just In Time)也就是我们通常所说的动态编译器,它能够在运行时将热点代码编译为机器码,这个时候字节码就变成了编译执行。

Java 程序执行流程图如下:

流程图
在这里插入图片描述Java 语言都有哪些特点?

答:Java 语言包含以下特点。

  • 面向对象,程序容易理解、开发简单、方便;
  • 跨平台,可运行在不同服务器类型上,比如:Linux、Windows、Mac 等;
  • 执行性能好,运行效率高;
  • 提供大量的 API 扩展,语言强大;
  • 有多线程支持,增加了响应和实时交互的能力;
  • 安全性好,自带验证机制,确保程序的可靠性和安全性。

Java 跨平台实现的原理是什么?

答:要了解 Java 跨平台实现原理之前,必须先要了解 Java 的执行过程,Java 的执行过程如下:

执行过程:

Java 执行流程:Java 源代码(.java)-> 编译 -> Java 字节码(.class) ->通过 JVM(Java 虚拟机)运行 Java 程序。每种类型的服务器都会运行一个 JVM,Java 程序只需要生成 JVM 可以执行的代码即可,JVM 底层屏蔽了不同服务器类型之间的差异,从而可以在不同类型的服务器上运行一套 Java 程序。

JDK、JRE、JVM 有哪些区别?

答:了解了 JDK、JRE、JVM 的定义也就明白了它们之间的区别,如下所述。
JDK:Java Development Kit(Java 开发工具包)的简称,提供了 Java 的开发环境和运行环境;
JRE:Java Runtime Environment(Java 运行环境)的简称,为 Java 的运行提供了所需环境;
JVM:Java Virtual Machine(Java虚拟机)的简称,是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的,简单来说就是所有的 Java 程序都是运行在 JVM(Java 虚拟机)上的。

总体来说,JDK 提供了一整套的 Java 运行和开发环境,通常使用对象为 Java 的开发者,当然 JDK 也包含了 JRE;而 JRE 为 Java 运行的最小运行单元,一般安装在 Java 服务器上,所以 JDK 和 JRE 可以从用途上进行理解和区分。JVM 不同于 JDK 和 JRE,JVM 是 Java 程序运行的载体,Java 程序只有通过 JVM 才能正常的运行。

Java三大特性的理解(封装 继承 多态)

一:封装

  • 目的:封装可以隐藏类的内部属性,并且对用户隐藏了数据的访问方式,这样可以保护类的内部状态。封装可以防止类中的方 法访问属性,防止对象间的交互,提高Java程序的安全性(比如给Javabean对象的属性加上private 只能通过set赋值和get取 值,不能直接访问访问)

二:继承

  • 在多个不同的类中抽取出共性的数据和逻辑,对这些共性的内容进行封装一个新的类即父类(也叫做超类或基类),让之前的 类来继承这个类,那些共性的内容在子类中就不必重复定义,比如 BaseDAO、BaseAction 等
    继承提高了程序的复用性、扩展性,也是 Java 语言多态特征的前提。

三:多态

  • 继承、重写、父类对象引用子类对象
  • 可以消除类型之间的耦合,增加可扩充性,可以使得Java的对象更灵活的调用方法

面向对象编程三大特性

面向对象编程是利用 类和对象编程的一种思想。万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的继承关系, 一个类和多个类的多态关系。万物皆对象,对象是具体的世界事物,面向对象的三大特征封装,继承,多态,封装,封装说明一个类行为和属性与其他类的关系,低耦合,高内聚;继承是父类和子类的关系,多态说的是类与类的关系。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值