总结了Java基础面试题(后续还会持续更新)

Java面试题十道

第一章节:Java基础

1.是什么是解释性语言?什么是编译性语言

解释型语言

不需要编译过程,由解释器逐行阅读并执行。

编译性语言

编写完代码后,由编译器进行整体翻译为机器能理解的二进制。然后生成可执行的文件,再执行。

2.Java特点?

1. 跨平台(JVM是跨平台的根本)

2. 面向对象(低耦合,高内聚)

3. 支持多线程

3.简述一下JDK,JRE

JDK(Java Development Kit)

JDK 是 Java 开发工具包,包含了完整的Java编译器(javac),Java虚拟机(JVM),包括各种开发调试的工具。

JRE(Java Runtime Environment)

JRE 是 提供了 Java 运行环境,包含了JVM和核心类库。可以让用户在不安装JDK的情况下运行Java程序。

4.Java基本类型有哪些,包装类,默认值,以及他们的字节?

基本类型包装类字节默认值
byteIntger1(byte)0
shortShort2(short)0
intInteger40
longLong80L
floatFloat40.0f
doubleDouble80.0d
booleanBoolean-false
charCharacter2null

5.什么是JVM?

Java平台的核心组件之一,它是一个执行Java程序的虚拟计算机。JVM充当了Java程序与底层操作系统之间的中间层,提供了跨平台和安全性的特性

6.标识符命名规则?

含义:

指在程序中,类名,方法名,变量名等都是标识符

规则:

可以包含英文字母,0-9数字,$以及 _ 下划线。不能以数字开头,不能是关键字

规范:

类名大驼峰,变量名小驼峰

7.equals与==的区别?

==:

比较的是变量(栈)在内存中存放的对象(堆)的内存地址,判断两个对象是否相等,是否是同一对象。

(比较两者必须是同一类型,如果比较的是阿拉伯数字,值相等则为true)

equals:

比较两个对象内容是否相等,由于所有类都是继承于java.long.Object类,所以适用于所有对象。

8.面向对象和面向过程的区别?

1.解决问题方式不同

面向过程:以步骤为核心,通过一系列步骤解决问题,将问题分解成一系列函数或过程,每个函数执行特定的任务。

面向对象:以对象为核心,通过相互协作的对象解决问题,将问题分解为一系列对象,每个对象具有数据和方法,可以相互调用

2.封装性不同

面向过程:注重编程结构和数据组织,通过数据和函数处理,将细节暴露给外部。

面向对象:强调数据和操作绑定,将数据和相关方法封装在对象内部,提供接口给外部使用,隐藏内部细节。

3.可维护性不同

面向过程:程序结构相对简单,随着问题复杂度增加,代码冗长难以维护

面向对象:将数据和方法封装为对象,提供了更好的代码组织和管理机制,维护性强。

9.什么是数组?声明数组几种方式

数组是一种存储相同数据类型的元素集合,它可以按照一定的顺序排列,通过索引访问和操作其中元素。Java中是一种固定长度的对象。

创建方式:
1.静态初始化
int[] numbers = {1, 2, 3, 4, 5}; // 声明并初始化一个整型数组
String[] names = {"Alice", "Bob", "Charlie"}; // 声明并初始化一个字符串数组
2.动态初始化
int[] numbers = new int[5]; // 声明并创建一个包含5个整型元素的数组
String[] names = new String[3]; // 声明并创建一个包含3个字符串元素的数组
3.使用Array类的静态方法进行初始化
int[] numbers = new int[] {1, 2, 3, 4, 5}; // 声明并初始化一个整型数组
String[] names = new String[] {"Alice", "Bob", "Charlie"}; // 声明并初始化一个字符串数组

10.简述一下冒泡排序的工作机制

冒泡排序是一种简单的排序算法,它重复地比较相邻的两个元素,交换他们的位置,直到整个数组以特定的方式排列。

1.从数组的第一个元素开始,与其相邻的元素进行比较,如果顺序不正确,则交换他们的位置。

2.继续比较下一组元素,直到数组末尾。

3.重复上述步骤,直到按照特定的顺序完毕。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值