没有合适的资源?快使用搜索试试~ 我知道了~
首页java面试常见的框架问题
资源详情
资源评论
资源推荐
1、SqlServer 和 Oracle 的区别在于:
一、开放性
1. SQL Server 只能在 windows 上运行,没有丝毫的开放性,操作系统的系统的稳定对
数据库是十分重要的。Windows9X 系列产品是偏重于桌面应用,NT server 只适合中小型企
业。而且 windows 平台的可靠性,安全性和伸缩性是非常有限的。它不象 unix 那样久经考
验,尤其是在处理大数据库。
2. Oracle 能在所有主流平台上运行(包括 windows)。完全支持所有的工业标准。采
用完全开放策略。可以使客户选择最适合的解决方案。对开发商全力支持。
二、可伸缩性,并行性
1. SQL server 并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,
伸缩性有限。
2. Oracle 并行服务器通过使一组结点共享同一簇中的工作来扩展 windownt 的能力,提
供高可用性和高伸缩性的簇的解决方案。如果 windowsNT 不能满足需要,用户可以把数据
库移到 UNIX 中。Oracle 的并行服务器对各种 UNIX 平台的集群机制都有着相当高的集成
度。
三、性能
1. SQL Server 多用户时性能不佳
2. Oracle 性能最高, 保持开放平台下的 TPC-D 和 TPC-C 的世界记录。
四、客户端支持及应用模式
1. SQL Server C/S 结构,只支持 windows 客户,可以用 ADO、DAO、OLEDB、ODBC
连接。
2. Oracle 多层次网络计算,支持多种工业标准,可以用 ODBC、JDBC、OCI 等网络客
户连接。
五、操作简便
1. SQL Server 操作简单,但只有图形界面。
2. Oracle 较复杂,同时提供 GUI 和命令行,在 windowsNT 和 unix 下操作相同。
六、使用风险
1. SQL server 完全重写的代码,经历了长期的测试,不断延迟,许多功能需要时间来
证明。并不十分兼容。
2. Oracle 长时间的开发经验,完全向下兼容。得到广泛的应用。完全没有风险。 最后
价格上 ORACLE 贵过 SQLSRVER
2、Struts1 和 Struts2 的区别
1) 在 Action 实现类方面的对比:
要求 类继承一个抽象基类; 的一个具体问题是使用抽象类
编程而不是接口。
类可以实现一个 接口,也可以实现其他接口,使可选和定制
的服务成为可能。 提供一个 基类去实现常用的接口。即使
接口不是必须实现的,只有一个包含 方法的 类都可以用作
的 。
2) 线程模式方面的对比:
是单例模式并且必须是线程安全的,因为仅有 的一个实例来
处理所有的请求。单例策略限制了 能做的事,并且要在开发时特别小心。
资源必须是线程安全的或同步的; 对象为每一个请求产生一
个实例,因此没有线程安全问题。
3) Servlet 依赖方面的对比:
依赖于 ,因为 的 方法中有
和 方法。
不再依赖于 ,从而允许 脱离 容器运行,从
而降低了测试 的难度。 当然,如果 需要直接访问 和
参数, 仍然可以访问它们。但是,大部分时候
都无需直接访问 和 ,从而给开发者
更多灵活的选择。
4) 可测性方面的对比:
测试 的一个主要问题是 方法依赖于 ,这使得
的测试要依赖于 容器。为了脱离 容器测试 的 ,必须借
助 于 第 三 方 扩 展 : , 该 扩 展 下 包 含 了 系 列 的 对 象 ( 模 拟 了
和 对象),从而可以脱离 容器测试
的 类。
可以通过初始化、设置属性、调用方法来测试。
5) 封装请求参数的对比:
使用 !" 对象封装用户的请求参数,所有的 !" 必须继承
一个基类:!"。普通的 # 不能用作 !",因此,开发者必须
创建大量的 !" 类封装用户请求参数。虽然 提供了动态 !" 来
简化 !" 的开发,但依然需要在配置文件中定义 !"; 直接使
用 属性来封装用户请求属性,避免了开发者需要大量开发 !" 类的烦琐,
实际上,这些属性还可以是包含子属性的 $ 对象类型。如果开发者依然怀念
!" 的模式, 提供了 %& 模式,可以让开发者使用单独的
% 对象来封装用户请求参数,但该 % 对象无需继承任何 基类,是一个
,从而降低了代码污染。
6) 表达式语言方面的对比:
整合了 ',因此可以使用 ' 表达式语言。这种表达式语言有基本对象
图遍历,但在对集合和索引属性的支持上则功能不强;
可 以 使 用 ' , 但 它 整 合 了 一 种 更 强 大 和 灵 活 的 表 达 式 语 言 :
()'(*($)'++),因此, 下的表达式语言功能
更加强大。
7) 绑定值到视图的对比:
使用标准 机制把对象绑定到视图页面;
使用“, -技术,使标签库能够访问值,而不需要把对象和视图页面
绑定在一起。
8) 类型转换的对比:
!" 属 性 通 常 都 是 + 类 型 。 使 用 "".
# 进行类型转换,每个类一个转换器,转换器是不可配置的;
使用 ()' 进行类型转换,支持基本数据类型和常用对象之间的转换。
9) 数据校验的对比:
支 持 在 !" 重 写 % 方 法 中 手 动 校 验 , 或 者 通 过 整 合
""% 框架来完成数据校验。
支持通过重写 % 方法进行校验,也支持整合 / 校验框架进行校
验。
10) Action 执行控制的对比:
支持每一个模块对应一个请求处理(即生命周期的概念),但是模块中的所
有 必须共享相同的生命周期。
支持通过拦截器堆栈( )为每一个 创建不同的
生命周期。开发者可以根据需要创建相应堆栈,从而和不同的 一起使用。
11) 捕获输入:
使用 !" 对象捕获输入。所有的 !" 必须继承一个基类。
因为其他 # 不能用作 !",开发者经常创建多余的类捕获输入。动态
#(&0#)可以作为创建传统 !" 的选择,但是,开发者可能是在重
新描述1创建2已经存在的 #(仍然会导致有冗余的 *)。
直接使用 属性作为输入属性,消除了对第二个输入对象的需求。输
入属性可能是有自己1子2属性的 $ 对象类型。 属性能够通过 3 页面上的
+ 访问。 也支持 !" 模式。$ 对象类型,包括业务对象,能够用
作输入4输出对象。这种 %&特性简化了 + 对 输入对象的引用。
5、 虚拟机的运行原理
Java 虚拟机 Java 虚拟机(Java virtual machine,JVM)是运行 Jav 才程序必不可少的机
制。编译后的 Java 程序指令并不直接在硬件系统的 CPIJ 上执行,而是由 JVM 执行。JVM
是 编译后的 Java 程序和硬件系统之间的接口,程序员可以把 JVM 看作一个虚拟的处理器。
它不仅解释执行编译后的 Java 指令,而且还进行安全检查。它是 Java 程序能在多平台间进
行无缝移植的可靠保证,同时也是 Java 程序的安全检验引擎。
Java 虚拟机规范中给出了 JVM 的定义:JVM 是在一台真正的机器上用软件方式实现
的一台假想机。JVM 使用的代码存储在。class 文件中。JVM 的某些指令很像真正的 CPU
指令,包括算术运算、流控制和数组元素访问等。
Java 虚拟机规范提供了编译所有 Java 代码的硬件平台。因为编译是针对假想机的,所
以该规范能让 Java 程序独立于平台。它适用于每个具体的硬件平台,以保证为 JVM 编译
的代码的运行。JVM 不但可以用软件实现,而且可以用硬件实现。
JVM 的具体实现包括:指令集(等价于 CPIJ 的指令集)、寄存器组、类文件格式、栈、
垃圾收集堆、内存区。
JVM 的代码格式为压缩的字节码,因而效率较高。由 JVM 字节码表示的程序必须保
持原来的类型规定。Java 主要的类型检查是在编译时由字节码校验器完成的。Java 的任何
解释器必须能执行符合 JVM 定义的类文件格式的任何类文件。
网管网 bitsCN.com
Java 虚拟机规范对运行时数据区域的划分及字节码的优化并不做严格的限制,它们的
实现依平台的不同而有所不同。JVM 的实现叫做 Java 运 行时系统,简称为运行时。Java
运行时必须遵从 Java 虚拟机规范,这样,Java 编译器生成的类文件才可被所有 Java 运行时
系统下载。嵌入了 Java 运行时系统的应用程序,就可以执行 Java 程序了。目前有许多操作
系统和浏览器都嵌入了 Java 运行时环境。
Java 虚拟机的性能 Java 在问世之初,因其没有完全优化,并且是解释执行,因此 Java
程序的运行效率较低。同时,有着较长发展史、已非常成熟的 C+十语言仍在开发界扮演着
主要角色,人们往往拿 C++的性能效率与刚诞生的 Java 相比较,这当然失之偏颇。
Java 解释器经过不断的优化,字节码的执行速度已有很大提高。另外,在字节码执行
之前可以先经过 JIT 编译器(just in time compiler)进行编译,生成针对具体平台的本机执
行代码。它的执行效率可比解释执行的效率提高 4~8 倍。现在许多厂商都提供 JlT 编译器,
这项技术 已非常成熟。由于字节码与平台无关,所以经过编泽的 Java 仍不失跨平台的特点。
Hotspot 技术是 Sun 公司推出的一种全新技术。它提供对代码的运行时选择,为的是从
根本上解决 Java 程序的效率问题。在程序执行 时,I{otspot 对每个字节码指令进行分析,
根据它的执行次数,动态决定它的执行方式。比如,一段指令需要多次重复执行,则立即
编译为可执行代码。如 果是只执行一次的简单指令,且解释执行的效率更高,则使用解释
执行的方式。有了这项技术,Javal 的效率问题基本上可以得到解决
一级缓存和二级缓存的区别
Hibernate 一级缓存又称为“Session 的缓存”,它是内置的,不能被卸载(不能被卸载的
意思就是这种缓存不具有可选性,必须有的功能,不可以取消 session 缓存)。由于 Session
对象的生命周期通常对应一个数据库事务或者一个应用事务,因此它的缓存是事务范围的
缓存。第一级缓存是必需的,不允许而且事实上也无法卸除。在第一级缓存中,持久化类
的每个实例都具有唯一的 OID。
Hibernate 二级缓存又称为“SessionFactory 的缓存”,由于 SessionFactory 对象的生命周期和
应用程序的整个过程对应,因此 Hibernate 二级缓存是进程范围或者集群范围的缓存,有可
能出现并发问题,因此需要采用适当的并发访问策略,该策略为被缓存的数据提供了事务
隔离级别。第二级缓存是可选的,是一个可配置的插件,在默认情况下,SessionFactory 不
会启用这个插件。
4、堆和栈的区别
栈与堆都是 用来在 " 中存放数据的地方。与 66不同, 自动管理栈和
堆,程序员不能直接地设置栈或堆。
的 堆 是 一 个 运 行 时 数 据 区 7 类 的 1 对 象 从 中 分 配 空 间 。 这 些 对 象 通 过
3、30、30 和 "30 等指令建立,它们不需要程序代码来
显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也
不必事先告诉编译器,因为它是在运行时动态分配内存的, 的垃圾收集器会自动收走
这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中
的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量
(77$7+70787%77$)和对象句柄。
栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义:
95:
95;
编译器先处理 95;首先它会在栈中创建一个变量为 的引用,然后查找栈中是否
有 5 这个值,如果没找到,就将 5 存放进来,然后将 指向 5。接着处理 95;在创
建完 的引用变量后,因为在栈中已经有 5 这个值,便将 直接指向 5。这样,就出现了
与 同时均指向 5 的情况。
这时,如果再令 9;;那么编译器会重新搜索栈中是否有 ; 值,如果没有,则将 ; 存放进
来,并令 指向 ;;如果已经有了,则直接将 指向这个地址。因此 值的改变不会影响
到 的值。
要注意这种数据的共享与两个对象的引用同时指向一个对象的这种共享是不同的,因为这
种情况 的修改并不会影响到 7它是由编译器完成的,它有利于节省空间。而一个对象引
用变量修改了这个对象的内部状态,会影响到另一个对象引用变量。
+ 是一个特殊的包装类数据。可以用:
+93+1<<2:
+9<<:
两种的形式来创建,第一种是用 312来新建对象的,它会在存放于堆中。每调用一次就
会创建一个新的对象。
而第二种是先在栈中创建一个对 + 类的对象引用变量 ,然后查找栈中有没有存
放<<,如果没有,则将<<存放进栈,并令 指向”-,如果已经有”-则直
接令 指向“-。
比较类里面的数值是否相等时,用 12方法;当测试两个包装类的引用是否指向同一
个对象时,用99,下面用例子说明上面的理论。
+9<<:
+9<<:
0"==1992:44
可以看出 和 是指向同一个对象的。
+93+1<<2:
剩余38页未读,继续阅读
qinfeng19889166
- 粉丝: 15
- 资源: 217
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- RTL8188FU-Linux-v5.7.4.2-36687.20200602.tar(20765).gz
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
- SPC统计方法基础知识.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0