java高级软件工程师面试题(7)

2019-01-19 17:07

=========================================================== 1. 一下a,b两段代码那个执行速度更快? a. for(int i = 100000; i>0; i–){} b. for (int i = 1; i<100001; i++){} 答案:a

2. 一下两段代码那个执行速度更快? a. Math.max(a,b); b.(a>b)?a:b 答案: b

3. Array操作是不是比Vector更快? 是的,Array更快

4. 如果Point p的如下方法被调用之前是(700, 800), 那么当如下a,b方法执行后,Point p的值分别为多少?

a. static void changePoint ( Point p) { p.x = 100; p.y=200; }

b. static void changePoint(Point p) { p=new Point(100,200); }

答案:a. (100,200) b. (700,800) 基本类型在方法参数中是按值传递的,而对象是按引用的值传递的,在一个方法内如果对象的值改变了,会有影响。但是如果我们改变引用本身,它的原始引用/对象不会改变,只有引用的拷贝会改变。

5. MyClass.java和空文件是合法的java源文件,这个说法正确吗?答案:是的 6. 下面哪种说法正确?

1. Char \ar a =’a’; 2. Char \b = ’b’; 3. Char c =’\c’;

1. 1 b. 2 c.3 d. ALL e. NONE

答案:d

1. 下面哪种基本类型是无符号的?

1. int 2. long 3. char 4. double 5. float

答案:c. char (所有的数字类型都是带符号的,char是唯一的无符号的整形) 2. Java同时支持多维数组和嵌套数组对吗? 答案:不对,Java只支持嵌套数组,不支持多维数组 3. public main(int number) { }是一个合法的方法吗? 答案: 正确的

4. public static final main(String[] args) {}是一个合法的方法吗? 是的

5. 一个没有方法的类可以在JVM执行吗?如果它的祖先类有main方法? 是的

6. GC是一个高优先级线程吗? 不对,GC是一个低优先级线程

7. 循环引用可以避免一个对象被垃圾回收吗? 不会

8. 如果在finalize方法里面发生了exception, 这个对象会被垃圾回收吗? finalize方法里面的Exception不能避免垃圾回收

=================================

DispatchAction是Struts包含的另一个能大量节省开发时间的Action类。与其它Action类仅提供单个execute()方法实现单个业务不同,DispatchAction允许你在单个Action类中编写多个与业务相关的方法。这样可以减少Action类的数量,并且把相关的业务方法集合在一起使得维护起来更容易。

要使用DispatchAction的功能,需要自己创建一个类,通过继承抽象的DispatchAction得到。对每个要提供的业务方法必须有特定的方法signature。例如,我们想要提供一个方法来实现对购物车添加商品清单,创建了一个类ShoppingCartDispatchAction提供以下的方法:

public ActionForward addItem(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){ throws Exception; }

那么,这个类很可能还需要一个deleteItem()方法从客户的购物车中删除商品清单,还有clearCart()方法清除购物车等等。这时我们就可以把这些方法集合在单个Action类,不用为每个方法都提供一个Action类。

在调用ShoppingCartDispatchAction里的某个方法时,只需在URL中提供方法名作为参数值。就是说,调用addItem()方法的 URL看起来可能类似于: http://myhost/storefront/action/cart?method=addItem

其中method参数指定ShoppingCartDispatchAction中要调用的方法。参数的名称可以任意配置,这里使用的”method”只是一个例子。参数的名称可以在Struts配置文件中自行设定。

如何在Web项目中保护JSP源代码不被未经授权的访问和窥视? JSP

通常JSP开发人员会把他们的页面文件存放在Web应用相应的子目录下。一个典型的商店应用程序的目录结构如图2所示。跟catalog (商品目录)相关的JSP被保存在catalog子目录下。跟customer相关的JSP,跟订单相关的JSP等都按照这种方法存放。 基于不同的功能 JSP 被放置在不同的目录下

这种方法的问题是这些页面文件容易被偷看到源代码,或被直接调用。某些场合下这可能不是个大问题,可是在特定情形中却可能构成安全隐患。用户可以绕过Struts的controller直接调用JSP同样也是个问题。

为了减少风险,可以把这些页面文件移到WEB-INF 目录下。基于Servlet的声明,WEB-INF不作为Web应用的公共文档树的一部分。因此,WEB-INF 目录下的资源不是为客户直接服务的。我们仍然可以使用WEB-INF目录下的JSP页面来提供视图给客户,客户却不能直接请求访问JSP。

如果把这些JSP页面文件移到WEB-INF 目录下,在调用页面的时候就必须把”WEB-INF”添加到URL中。例如,在一个Struts配置文件中为一个logoff action写一个Action mapping。其中JSP的路径必须以”WEB-INF”开头。如下所示:请注意粗体部分.

这个方法在任何情况下都不失为Struts实践中的一个好方法。是唯一要注意的技巧是你必须把JSP和一个Struts action联系起来。即使该Action只是一个很基本的很简单JSP,也总是要调用一个Action,再由它调用JSP。

Struts的控制器如何知道什么样的信息转发到什么样的Action类呢? Struts

在struts 中,控制器信息转发的配置映射信息是存储在特定的XML文件(比如struts-config.xml)中的。这些配置信息在系统启动的时候被读入内存,供struts framework在运行期间使用。在内存中,每一个元素都与org.apache.struts.action.ActionMapping类的一个实例对应。当可以通过/logonAction.do(此处假设配置的控制器映射为*.do)提交请求信息的时候,控制器将信息委托com.test.LogonAction处理。调用LogonAction实例的execute()方法。同时将Mapping实例和所对应的LogonForm Bean信息传入。其中name=LogonForm,使用的form-bean元素所声明的ActionForm Bean。


java高级软件工程师面试题(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高三英语上学期第二次月考试题17

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: