微信

使用微信服务,更方便

职友集>程序员面试题 > 笔试面试总结

笔试面试总结

2014-08-16 06:30:01 阅读( 95 )

1608人 收藏本页

标签:程序员面试题

1谈谈你对网络编程的理解:socket
2什么情况下使用多线程,如何实现?
要用到多线程的主 要是需要处理大量的IO操作时或处理的情况需要花大量的时间等等,比如:读写文件、视频图像的采集、处理、显示、保存等。
在java里实现Runnable 接口或继承Thread就可以了,用c\c++怎么办?

C语言是没有多线程的概念的,但是我们可以通过Task来实现多任务。可以采取以下方案:定义一个主Task,将其置为常驻Task,用以进行Task调度和Task的启动/终了和交互的管理。定义一个Task优先级列表,用优先级来作为Task调度和管理的基础。定义一个共享域,和相应的事件分发/广播/传递的管理机制,由主Task来实现各Task间的事件传递。定义3个List,实现Active,Ready,Dead的Task的管理和调度。定义各普通Task,包含Task基本信息:Task的栈指针,Task情报,Task存储空间大小,Task的优先级,Task的事件列表(定义可以接收/发送的事件,以及可以排队的事件的个数),以及如果需要的话可以定义Task的从属(父子)关系。

3 哈希表的实现方法,常用的哈希函数有哪些?处理冲突的方法
哈希函数:(1)直接地址法(2)数字分析发(3)平方取中法(4)折叠法(5)除留余数法(6)随机数法
处理冲突的方法:(1)开发地址法(2)再哈希法(3)链地址法(4)建立公共溢出区
4描述一个进程的虚拟内存分配情况?
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 – 程序结束后有系统释放
4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放
5、程序代码区—存放函数体的二进制代码。
5 html5的特点
离线存储、不需要Falsh支持实现音频和视频的播放、文件API、控件的拖拽、表单的自动验证等
6 struts、hibernate、spring的 作用及spring的原理
Struts提供了一种创建Web应用程序的框架,使用MVC设计模式。
Hibernate 实现对象的持久化
Spring 指导形成一种良好的编程习惯,推荐面向接口方式进行编程,实现高类聚低耦合,spring可以将struts和hibernate纳入自己的管理。

Spring的核心原理Ioc(控制反转和依赖注入) 控制反转:就是由容器控制程序之间的(依赖)关系,而非传统实现中,由程序代码直接操控。 依赖注入:组件之间的依赖关系由容器在运行期决定 ,由容器动态的将某种依赖关系注入到组件之中。
面向方面的编程(AOP):AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent)、事务管理(Transaction Management)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging)等。 AOP把这些提取出来进行封装,便于减少重复代码,降低模块间的耦合性。

7linux下常用的目录及其作用
/bin 存放使用者最长用的命令,如:cp、ls、cat,等等。
/boot 启动linux时使用的一些核心文件。
/dev 是device(设备)的缩写,这个目录下是所有linux的外围设备。
/etc 这个目录用来存放系统管理所需要的配置文件和子目录。
/home 用户的主目录,比如说有个用户叫wang,那他的目录就是/home/wang也可以用~wang来表示。
/lib 这个目录是存放着系统最基本的动态连接库,几乎所有的应用程序都须用这些共享库。
/lost+found 这个目录平时是空的,当系统不正常关机后,这里就是一些无家可归文件的避难所。
/mnt 这个目录是空的,系统提供这个目录是让用户临时挂接别的文件系统。
/proc 这个目录是一个虚拟目录,它是系统内存映射,我们可以直接通过访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存中。
/root 系统管理员(root)的主目录,作为系统的拥有者的特权。
/sbin s就是super user的意义,也就是说这里存放的是系统管理员使用的管理程序。
/tmp 这个目录是存放一些临时文件的地方。
/usr 我们用到的应用程序的文件几乎都存放这个目录下:/usr/X11R6存放X_Window的目录;/usr/bin存放着许多应用程序;/usr/sbin给超级用户使用的一些管理程序就放在这个里面;/usr/include开发和编译应用程序所需的头文件;/usr/lib存放一些常用的动态连接共享库和静态归档案库;/usr/local这是提供给一般用户的/usr目录,在这里安装软件最合适。/usr/man存放帮助文档。/usr/src开放的源代码就存在这个目录下。
/var 这个目录存放那些不断扩充的东西,为了保持usr的相对稳定,那些才、经常被修改的目录可以放在这个目录下,如/var/log日志文件。

来自IT公司面试手册

下一篇:今天第一次去面试软件开发的职位

上一篇:记录深网面试-软件工程师(后台开发)

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息: 面试题