后台开发-58

来源:互联网 发布:做注册单开淘宝店铺 编辑:程序博客网 时间:2024/05/21 10:49

面试时间 2017-9-21


一.计算机网络

1.TCP和UDP的区别?广播是用TCP还是UDP?

2.TCP四次挥手的过程?等待超时是发生在哪一个阶段?


二、操作系统

1.进程通信的方式?共享内存是如何做的?

2.Linux命令会哪一些?Top显示的信息有哪一些,包含线程信息吗,负载是指什么?


三、Java

1.多线程的生成方式

四种:继承Thread,实现Runnable接口,使用Callable和Future,使用线程池

区别是:继承Thread比较简单,但是该类无法继承其他类。一般比较常用的是Runnable接口,此外实现Runnable接口的类创建的多线程可以共享线程类的实例变量。Callable和Future可以有返回值。

2.线程同步的方式

三种:互斥同步(Synchronized+ReentrantLock)+非阻塞同步(CAS:Atomic的原子自增运算)+无同步方案(ThreadLocal)

3.接口和抽象类的区别

4.如何实现多线程下的i++

AtomicInteger

5.hashmap的底层结构,hash冲突的解决方法有哪些?LinkedHashMap和TreeHahsMap的区别

6.jvm的内存模型

7.一个类有几种方式使之不能被实例?


四、数据库

1.Mysql引擎知道哪些?Inodb和imysm的底层实现区别?


五、算法

1.堆排序的时间复杂度怎么算的?

2.手写链表倒序算法