网上搜集的题目,自己的想法解答
- 进程线程的区别
线程的划分尺度小于进程,进程在执行过程中拥有独立的内存单元,而多个线程共享内存。进程间通信IPC,线程间可以直接读写进程数据段。
- IO模型有哪些?
阻塞I/O
非阻塞I/O
I/O复用
信号驱动I/O
异步I/O
- 不同操作系统实现进程有什么区别
LINUX中的进程本身是可以执行的。而WINDOWS中,进程只是表示一个资源的拥有体,是不能执行的。要执行的话,一定需要一个线程。
- gc算法,回收器有哪些
串行垃圾回收器(Serial Garbage Collector)
并行垃圾回收器(Parallel Garbage Collector)
并发标记扫描垃圾回收器(CMS Garbage Collector)
G1垃圾回收器(G1 Garbage Collector)
- ACID,事务隔离机制
原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
http://blog.csdn.net/gaogaoshan/article/details/21158949
- syn在方法上和代码块有什么不同
在Java语言中,每一个对象有一把锁。线程可以使用synchronized关键字来获取对象上的锁。synchronized关键字可应用在方法级别(粗粒度锁)或者是代码块级别(细粒度锁)。
- memcached和其他nosql的区别
关系型数据库 中 的表都是存储一些格式化的数据结构 ,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。 而非关系型数据库以键值对 存储 ,它的结构不固定,每一个 元组 可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。
- 解释mvc
模型(model)-视图(view)-控制器(controller)
整体上是一个循环,从 Model 开始, 中间加上用户操作, 又作用回到 Model,这是写图形的一个思路, 就是把数据跟界面区分开来, 简化程序。
- threadlocal解释
ThreadLocal用来解决多线程程序的并发问题
- volatile的作用
一个变量声明为volatile,就意味着这个变量是随时会被其他线程修改的,因此不能将它cache在线程memory中。
- 堆和栈的区别和联系
Java 把内存划分成两种:一种是栈内存,另一种是堆内存。
- tcp和udp的不同之处
- tcp如何保证可靠的
- 数组和链表的区别
- 排序算法应用场景
- lucene全文检索原理