程序员面试的一些知识点(二)

来源:互联网 发布:linux execl函数作用 编辑:程序博客网 时间:2024/06/18 10:36

1.一个好的设计所具备的特征有哪些?全面考虑,组件独立,容错机制,异常处理。高内聚,低耦合。

2.测试全面指的是:单元测试,集成测试,系统测试(性能测试,安全测试,易用性测试,兼容性测试)。

3.将内存地址编码扩大到外围设备上的编码方式为?暂时不会

4浮点运算指令属于算术运算指令。(实际上  浮点指令系统分为五类:数据传送类、算术运算类、超越函数类、比较类、环境及系统控制类。)

5.public class test {
public static void main(String[] args) {
String s1 = "hello";
if(s1=="hello")
{
System.out.println("s1=\"hello\"");
}
else
{
System.out.println("s1!=hello");
}
}
}的结果   s1="hello"

6.在mvc中,用jsp做表现层V,用servlet来控制器C,而用javaBean做成M,也就是数据模型。
如果加上EJB,就把它放在M这一块上,也就是它其实也是javabean,只不过是一种极为特殊的Javabean,是企业Bean。

7.public static void main(String[] args) {
Runnable runner = new Runnable() {

@Override
public void run() {
// TODO Auto-generated method stub
System.out.print("foo");
}
};
Thread t = new Thread(runner);
t.run();
System.out.println("bar");
}

结果是foobar

8.0.6332的数据类型是double,小数默认是double

9.烧一根不均匀的绳子需要一小时,如何获得半小时。如果有多根这样的绳子,如何获得一小时十五分钟。

第一个,首先对折,同时点燃非对折位置的两个线头,烧完的时间就是半小时。第二个用三根绳子第一条两头同时点燃,第二条只点一头等第一条绳子烧完时,(此时已过半小时)马上将第二条绳子(此时绳子寿命还可以烧半小时)的没点着的一端也点着.等第二条绳子烧完时,(原本半小时,点了两头只能烧15分钟)马上将第三条绳子的两端点着,等第三条绳子烧完时,(又过了半小时),总共1小时15分钟.

10.一个优秀的设计,如何进行分解或者是模块化的过程

这个不知道,我个人的理解是通过功能划分模块,来将设计模块化。

11.对于敏捷开发,你认为他的好处在哪里

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

最直观的好处是项目进入实质性开发开发很快,迭代周期也不长,客户可以很快看到一个基线架构版的产品,这样能比较好地改善用户满意度

12.如何实现线程安全的hashMap

方法一:通过Collections.synchronizedMap()返回一个新的Map,这个新的map就是线程安全的. 这个要求大家习惯基于接口编程,因为返回的并不是HashMap,而是一个Map的实现.
方法二:重新改写了HashMap,具体的可以查看java.util.concurrent.ConcurrentHashMap. 这个方法比方法一有了很大的改进.

13.java应用服务器有哪些?写出三种以上

Tomcat 服务器  Resin 服务器  JBoss服务器  WebSphere 服务器  WebLogic 服务器

14.进程与线程的区别

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。
简而言之,一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。(转自  http://blog.csdn.net/yaosiming2011/article/details/44280797,如有侵权,请留言,抱歉了,只是学术使用,看到留言后,我会立刻删除)。