Java面试宝典(设计模式/算法/Linux篇)

本文是Java面试的精选内容,涵盖了设计模式和算法的常见问题,如正则表达式符号作用、单例模式、简单工厂模式、递归概念及应用,以及线性表的操作。此外,还讨论了Linux基础,如shell命令的用途,如`top`、`ps`、`mv`等,以及`vi`编辑器的常用操作。内容全面,适合Java开发者复习和准备面试。
摘要由CSDN通过智能技术生成

Java****面试宝典(设计模式/算法/Linux篇)


**一.**设计模式和算法

**1.**正则表达式中*?+的作用分别是什么(亿邮)

答: * ? + 都有用来匹配数量的,* 表示 0 或多个,?表示 0 个或 1 个,+ 表示 1 个或多个。

**2.**单例设计模式

答: 单例模式有以下特点:

1、单例类只能有一个实例。

2、单例类必须自己创建自己的唯一实例。

3、单例类必须给所有其他对象提供这一实例。 懒汉式 和 饿汉式

**3.**介绍一下简单工厂模式

答: 简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现。

**4.**简单说明什么是递归?什么情况会使用?并使用java实现一个简单的递归程序。

答: 一、递归函数,通俗的说就是函数本身自己调用自己…

如:n!=n(n-1)!

你定义函数f(n)=nf(n-1)

而f(n-1)又是这个定义的函数。。这就是递归

二、为什么要用递归:递归的目的是简化程序设计,使程序易读

三、递归的弊端:虽然非递归函数效率高,但较难编程,可读性较差。递归函数的缺点是增加了系统开销,也就是说,每递归一次,栈内存就多占用一截

四、递归的条件:需有完成任务的语句,需满足递归的要求(减小而不是发散)

**5.**线性表如果要频繁的执行插入和删除操作,该线性表采取的存储结构应该是()

A.散列 B.顺序 C.链式 D.索引

答: C

**6.**在下列排序方法中,不稳定的方法有

A.归并排序与基数排序 B.插进排序与希尔排序

C.堆排序与快速排序 D.选择排序与冒泡排序

答: C

**7.**一个递归算法必须包括()

A.递归部分 B.终止条件和递归部分

C.迭代部分 D.终止条件和迭代部分

答: B

**8.**用某种排序方法对关键字排序(25 、84、21、47、15、27、68、35、20)进行排序时,序列的变化情况如下:

20、15、21、25、47、27、68、35、84

15、20、21、25、35、37、47、68、84

15、20、21、25、27、35、47、68、84

则采用的排序方法是()

A.选择排序 B.希尔排序 C.归并排序 D.快速排序

答:D

**9.**以下哪种排序算法对(1,3,2,4,5,6,7,8,9)进行的排序最快?

A.冒泡 B.快排 C.归并 D.堆排

答: A

**10.**如果在一个排序算法的执行过程中,没有一对元素被比较过两次或以上,则称该排序算法为节俭排序算法,以下算法中是节俭排序算法的有________。

A.插入排序 B.选择排序 C.堆排序 D.归并排序

答: AD

**11.****若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为() **

A.1,2,3 B.9,5,3

C.9,5,2,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值