首页 > 代码库 > 1笔经小结

1笔经小结

1 经常会有二叉树的遍历,前序、中序、后序

 

2 关于数据索引,几个特点如下

1)增加索引会增加磁盘占用

2)建立索引可以提升查询速度,但在一定程度上降低写速度

3)数据库一般使用B+树作为索引

4)删除数据需要调整索引,所以会降低效率

 

3 关于cookie的描述

1)用于实现session的跟踪技术

2)cookie是服务器保存在客户端的文本文件,大小限制在4kb

3)cookie在服务端与客户端之间往返通过http Headers进行传输

4)http请求中cookie是明文传输的、

 

4 下面java concurrent包下的4个类中,差别最大的一个是?

1)CountDownLatch

2)Future

3)Semaphore

4)ReentrantLock

答案:Future,因为他是接口,其他都是类。表示异步计算的结果。

 

5 设计模式可以提高系统的扩展性:

1))singleton

2)abstract factory

3)adapter

4)decorator

答案:2、3、4.工厂方法实现松耦合,可以提高扩展性。

适配器模式可以将一个接口转换成另一个接口,方便引入外部接口

装饰着模式可以扩展接口

 

6 线程和进程描述正确的是:

1)线程的数据交换更快,因为它们在同一地址空间

2)线程因为有自己的独立 栈空间且共享数据,不利于资源管理和保护

3)多进程,子进程可以获得父进程所有堆和栈的数据

4)进程比线程更健壮,但是进程比线程更容易杀掉

答案:1/3/4

解释:进程:子进程是父进程的复制品,子进程获得父进程数据空间、堆和站的复制品

线程:相对于进程进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。   
两者都可以提高程序的并发度,提高程序运行效率和响应时间。   

线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而进程则可以跨机器迁移。
根本区别就一点:用多进程每个进程有自己的地址空间(address space),线程则共享地址空间。所有其它区别都是由此而来的: 
1、速度:线程产生的速度快,线程间的通讯快、切换快等,因为他们在同一个地址空间内。 
2、资源利用率:线程的资源利用率比较好也是因为他们在同一个地址空间内。 
3、同步问题:线程使用公共变量/内存时需要使用同步机制还是因为他们在同一个地址空间内

 

1笔经小结