Java基础面试题整理

385 阅读3分钟

Java概述

1. JVM,JRE,JDK之间的关系

JVM: Java虚拟机,是Java virtual machine的缩写,是Java程序的运行环境,不同平台有自己的Java虚拟机,是Java程序一次编译,到处运行的基石。

JRE: Java Runtime Environment,包括Java虚拟机和Java程序所需要的核心类库;核心类库主要是java.lang包,包含了运行Java程序必不可少的系统类,如:基本数据类型、基本数学函数、字符串处理、线程、异常处理类等。如果只需运行开发好的Java程序,只需要安装JRE即可。

JDK: Java Development Kit,是提供给Java开发人员使用的。包含了Java的开发工具和JRE。开发工具包括:javac.exe,jar.exe等。

JVM、JRE、JDK三者之间的关系图:

jrejdkjvm.png

2. Java语言有什么特点?

  • 简单(Java语言的语法与C语言和C++语言很接近)
  • 面向对象(封装,继承,多态)
  • 平台无关性(Java虚拟机实现平台无关性)
  • 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的)
  • 支持多线程(多线程机制使应用程序在同一时间并行执行多项任)
  • 健壮性(Java语言的强类型机制、异常处理、垃圾的自动收集等)
  • 安全性

3. 什么是平台无关性(跨平台性),原理是什么?

概念: 所谓的平台无关性,指的是Java编写的程序,在一次编译后,可以在多个系统平台上运行。

原理 Java程序是通过Java虚拟机在系统平台上运行的,不同的系统有自己的虚拟机,只要安装对应系统的Java虚拟机,就可以运行Java程序。

4. 什么是字节码?采用字节码有什么好处?

  • 字节码: Java源代码经过虚拟机 编译器编译 后产生的文件(即扩展为.class的文件),它不面向任何特定的处理器, 只面向虚拟机
  • 好处:Java语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保留了解释型语言可移植的特点。所以Java程序运行时比较高效,而且,由于字节码并不专对一种特定的机器,因此,Java程序无须重新编译便可在多种不同的计算机上运行。

5. 什么是Java的主类?

一个Java程序可以有多个类,但是只能有一个主类。在Java程序中,这个主类指的是包含main方法的类。主类是Java程序执行的入口

6. Java和c++的区别

  • Java和c++都是面向对象的语言,都支持封装、继承、多态。
  • Java不提供指针来直接访问内存,保证了程序内存更加安全。
  • Java的类是单继承,c++支持多继承,但是Java的接口是支持多继承的。
  • Java有自动内存管理机制,不需要程序员手动释放无用内存。

Java基础语法

1. Java有哪些数据类型

Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。

Java中的数据类型包括基本数据类型和引用数据类型。

  1. 基本数据类型有:
  • 整数类型(byte,short,int,long)
  • 浮点类型(float,double)
  • 字符型(char)
  • 布尔型(boolean)

640.webp 2. 引用数据类型有:

  • 类(class)
  • 接口(interface)
  • 数组([])