Skip to main content
算法面试题

排序算法

1)冒泡排序(O(N^2))

循环数组,对比相邻两个数据,前面的数据大于后面的数据则交换位置,否则不变。循环一遍之后,最小的数据会在最前面,数组长度-1,从第二个位置继续循环数组,重复上面过程。

2)选择排序(O(N^2))

选择排序是对冒泡排序的优化,在冒泡排序中,每次满足条件都要交换数据位置,在选择排序中,每次循环找到当前循环最小的数据,存储在临时变量中,循环完成之后与第一个数据交换,之后从第二个数据开始,重复这个操作。

3)插入排序(O(N^2))

将数据插入到一个有序数列中,当数据是无序的,我们需要将第一个数据当成有序数列,将后面的数据依次插入。


MarshioAbout 2 mininterview
脑筋急转弯

水壶问题

给你一个5L和一个3L的水桶,如何得到1L水?

其本质就是 3x5y=13x - 5y = 1 or 5y3x=15y - 3x = 1 的问题。


MarshioLess than 1 minuteinterview
设计模式

什么是设计模式?

设计模式是一套被反复使用的,多人只晓的,经过分类的代码设计经验总结。

设计模式有三大类:创建型,结构型,行为型

创建型:工厂模式,抽象工厂模式,单例模式,建造者模式,原型模式

结构型:适配器模式,过滤器模式,装饰模式,享元模式,代理模式,外观模式,组合模式,桥接模式

行为型:责任链模式,命令模式,中介者模式,观察者模式,状态模式,策略模式,模板模式,空对象模式,备忘录模式,迭代器模式,解释器模式,访问者模式


MarshioLess than 1 minuteinterview
计算机网络面试题

HTTP 协议了解吗?

TCP/IP 协议了解吗?

三次握手

四次挥手

UDP 协议和 TCP 协议


MarshioLess than 1 minuteinterview
Java 基础面试题

面对对象(OOP)的特点

  • 封装
  • 继承
  • 多态

什么是序列化和反序列化?

为了能够支持 IO (网络IO,如进程间通信;磁盘IO,如持久化),将内存中的对象转成字节流的过程就叫序列化。

将字节流转成对象的过程就叫反序列化。

扩展

  • 对象需要实现Serializable接口才支持序列化。
  • 如果对象的字段加了transient关键字,则该字段不会被序列化。

MarshioAbout 1 mininterview
Java 集合面试题

Java 中有哪些集合类?

简单说下往 HashMap 中插入一条记录的过程

HashMap 继承体系

public class HashMap<K,V> extends AbsractMap<K,V> implements Map<K,V>{}

public abstract class AbstractMap<K,V> implements Map<K,V> {}

public interface Map<K,V> {}

MarshioLess than 1 minuteinterview
Java 并发面试题

进程(process)

狭义:是正在运行的一个程序

广义:是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统进行资源分配与调度的基本单位

进程的概念主要有两点:

  • 进程是一个实体
  • 进程是一个执行中的程序,只有当操作系统赋予进程生命时,才成为一个活动的实体,称之为进程

线程(thread)

线程是进程的一个执行单元,每个线程有自己的线程栈,自己的寄存器环境,自己的线程本地存储。

线程是操作系统可进行运算调度的最小运行单元。


MarshioAbout 2 mininterview