Java面试题-Java基础(五)-数组(下)

116 阅读3分钟

Java面试题-Java基础(五)-数组(下)

Java面试题专栏---点击进入学习

数组

640 (8).png

Java面试题专栏---点击进入学习

1.用一句话描述数组

在内存中一块连续的空间,存储相同数据类型的值,长度是固定的

2.数组各个类型的默认值

整型: 0

浮点: 0.0

字符: \u0000

布尔: false

其他: null (比如String类型 二维数组(数组类型))

3.Arrays类toString,copy0f,sort,binarySearch方法的作用

toString是将数组中的元素转换为字符串

copyof复制数组

sort 排序升序排序

binarySearch 二分查找

4.复制数组的几种方式

1.编写循环实现复制数组

2.System.arraycopy(原数组,起始位置,新数组,起始位置,长度)

3.Arrays.copyof(原数组,新长度)

5.手写冒泡排序

for(n - 1){

for(n恭 - 1- i)

if(条件成立X)

{交换位置}}

6.冒泡排序如何优化?

可以在外层循环中定义标记,在需要交换位置的情况,改变标记的值,在一轮比较完成以后,判断标记是否被改变,如果没有被改变,则表示数列已经排列正确,不需要继续比 较,可以提前结束循环.

7.二分查找的比较原理和前提要求 ?

前提要求: 数列必须是有序的

比较原理: 将一个序列一分为二,比中间值小的,在左边查找,比中间值大的,在右边差找,如果等于中间,则返回中间值对应的下标。重复以上过程

8.描述局部变量特点,从以下几个方法面: 定义位置,作用范围,是否可以重名,默认值等

定义在方法体内

离当前变量最近的大括号以内

重合的作用范围不能重名

没有默认值,必须先赋值才能使用

基本数据类型存在栈中,引用数据类型,名字在栈中,值在堆中

随着方法的入栈而生效,随着方法的出栈而死亡

9.选择排序的比较原理

使用一个固定位置的元素,依次与其他元素比较大小,遇到需要交换位置的元素,先不交换位置,而是交换比较的元素,使用新的元素继续往后比较,一轮比较完成以后,交换一次位置。

10.值传递和引用传递的区别?

基本数据类型属于值传递,传递的是一个值的拷贝,副本,在方法体内,对值的修改不会影响原变量

引用数据类型属于引用传递,传递的是一个地址,在方法体内,根据地址对地址指向的值修改,将影响所有指向此地址的变量。

Java中只有值传递,"引用传递”也属于值传递,只不过这个值是一个地址值

11.二维数组的概念

数组中的元素还是一维数组