曾经经历的面试题汇总(2)
来源:互联网 发布:淘宝篮球鞋进货渠道 编辑:程序博客网 时间:2024/05/28 17:04
1.socket网络编程是怎样传送数据的
TCP/IP协议。TCP/IP由四个层次组成:网络接口层、网间网层、传输层、应用层
2.GUI全称,英文名
图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
3.怎么访问数据库,数据持久化怎么实现的。
持久化的好处:
通过持久化技术可以减少访问数据库数据次数,增加应用程序执行速度;
代码重用性高,能够完成大部分数据库操作;
松散耦合,使持久化不依赖于底层数据库和上层业务逻辑实现,更换数据库时只需修改配置文件而不用修改代码。
4.谈谈你对Hibernate和struts2,spring的认识。
struts 是一个按MVC 模式设计的Web 层框架,其实它就是一个大大的servlet,这个Servlet名为ActionServlet,或是ActionServlet 的子类。我们可以在web.xml 文件中将符合某种特征的所有请求交给这个Servlet 处理, 这个Servlet 再参照一个配置文件( 通常为/WEB-INF/struts-config.xml)将各个请求分别分配给不同的action 去处理。
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。这个里面需要讲解控制反转(IoC)和面向切面编程(AOP)。
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可 以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取 代CMP,完成数据持久化的重任。
5.关于servlet,jsp实现原理和内容。
jsp的运行过程:
(1)jsp引擎先把该jsp文件转换成一个java源文件(Servlet),在转换中如果发现jsp文件有任何语法错误,将中断转换过程,并向服务端和客户端输出出错信息。
(2)如果创建成功,jsp引擎用javac把该java源文件编译成相应的class文件。
(3)创建一个servlet(jsp页面的转换结果)的实例,该servlet的jspInit()方法被执行,jspInit()方法在servlet的生命周期中只被执行一次。
(4)jspService()方法被调用来处理客户端的请求。对每个请求,jsp引擎创建一个新的线程来处理该请求。 降低对系统的资源需求,提高系统的并发量及响应时间。注意多线程的编程限制,由于该servlet常驻于内存,响应非常快。
(5)jsp文件被修改,服务器根据设置决定是否对该文件重新编译。——取代原有servlet,并继续上述处理过程。
(6)jsp效率高,但是第一次调用时由于需要转换和编译会有轻微的延迟。若系统资源不足,jsp引擎会以某种不确定的方式将servlet从内存中移去。当这种情况发生时,jspDestroy()方法首先被调用,然后servlet实例便被标记,加入“垃圾收集”处理。可在jspInit()中进行一些初始化工作:如建立与数据库的链接,建立网络连接,或从配置文件中读取一些参数等,在jspDestory()中释放相应的资源。
优点:
1.简便有效,和html网页十分相似,加入一些jsp专有的标签,或脚本程序。
2.独立性。jsp是java API家族的一部分。
3.兼容性。适用于:HTML/DHTML的浏览器,WML的手提无线,XML的B2B应用。
4.可重用性。一个部件写好,可以为多个程序重复引用。 例证:JavaBean程序库。
7.最近在看什么技术书籍?
《java编程思想》
《深入理解Java虚拟机》
《快学Scala》
《算法》
《Spring技术内幕》
8.看了一些什么论坛。了解了一些什么新技术。
github
开源中国
csdn
博客园
iteye
scala
spark
hadoop
9.c语言和Java的不同点(特点特色)
1、内存管理
在Java中,基本不用考虑内存的问题,如果想用一个对象,new一个就可以,这个过程的背后则是JRE为对象分类的一定内存,GC.但是C则不同,如果你想用,你可以用malloc之类的方法申请内存,当你使用完了,因为没有跟班的,你需要自己把这块内存归还回去,也就是调用free方法来完成这个任务。
由于需要显式的归还内存,因此当一个函数需要将一块内存返回给调用者的时候,问题就比较复杂了,不如面向对象和具有内存回收功能的Java那么直观了。
对于这个问题,在C语言中,有几种解决方案:
(1) 在调用者中先分配好内存,作为参数传入到被调用的函数中
(2) 在被调用的函数中分配,使用完后在调用者中释放
(3) 在被调用函数中使用static变量,可以将该变量返回2、面向对象
Java的面向对象的特点很明显,而C则是一个地道的面向过程,结构化语言。
Java中有一个字符串类String, 通过调用 String.length()就可以知道字符串的长度,但是在C语言中,则需要调用函数strlen(str)来得到字符串(字符数组)的长度。
由于C不是面向对象的语言,也就没有this的概念,因此当使用一个与某个“东西”相关的函数时,就需要不厌其烦的将代表这个“东西”的变量作为参数传递进去。3、名称空间
Java通过包(package)来实现名称空间。在C语言中,所有的函数都处于同一名称空间,也就是没有名称空间,因此就会很多程序提供的api接口函数都有一个前缀,例如MYSQL的mysql_init(), mysql_real_connect(), mysql_real_query()等函数名称前面的 mysql_。
10.谈谈你做的项目。
购物商城
team协作管理
绩效考核系统
11.用过哪些中间件?
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通 讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。 通过中间件,应用程序可以工作于多平台或 OS 环境。
java 中间件,就是用java 语言实现的中间件
EJB?
12.知道哪些服务器(JSP的运行环境)?
最早的JSWDK
1.Tomcat :Apache Jakarta软件组织的一个子项目。
2.weblogic:BEA WebLogic Servlet
3.IBM WebSphere
4.Jboss
- 曾经经历的面试题汇总(2)
- 曾经经历的面试题汇总(1)
- 曾经的NOKIA面试题
- 曾经的面试题:求1+2+.......+100和。
- 经历的一些面试题
- 6.曾经的腾讯面试题
- 一道曾经微软的面试题
- 面试题的汇总
- 中金公司(CICC)面试经历及面试题大汇总
- 微软面试题汇总(2)
- 微软面试题汇总(2)
- iOS面试题汇总 (2)
- c/c++面试题汇总(2)
- 操作系统常见面试题汇总(2)
- 同学PB经历的面试题
- 汇总遇到的面试题
- 公司笔试曾经遇到过的面试题
- Oracle面试题汇总--2
- scanf&printf VS cin&cout
- 第一封博客--记录从技术支持转岗c#开发
- XTU1238:Segment Tree(线段树区间更新)
- [cocos2dx笔记016]cocos2dx 3.2 的UserDefault
- php将字符首字母大小写转换
- 曾经经历的面试题汇总(2)
- Linux iconv --字符编码转换工具
- json
- 内核同步机制
- Linux ldd -- 查看可执行文件所依赖的动态链接库
- NSString 和NSData 转换
- 查看、分析memcached使用状态
- leetcode181-Employees Earning More Than Their Managers
- oracle中varchar和varchar2区别