例题1.(d)
class Parent{
public void method1(){ //change here
System.out.println(“Parent’s method1()”);
}
public void method2()
{
System.out.println(“Parent’s method2()”);
method1();
}
}
class Child extends Parent{
public void method1(){
System.out.println(“Child’s method1()”);
}
public static void main(String args[]){
Child p = new Child();//change here
p.method2();
}
}
Choices:
a. Compile time error
b. Run time error
c. prints : Parent’s method2()
Parent’s method1()
d. prints : Parent’s method2()
Child’s method1()
例题2:
How can you force garbage collection of an object?
A. Garbage collection cannot be forced
B. Call System.gc().
C. Call System.gc(), passing in a reference to the object to be garbage
collected.
D. Call Runtime.gc().
E. Set all references to the object to new values(null, for example).
2. A点评:在Java中垃圾收集是不能被强迫立即执行的。调用System.gc()或Runtime.gc()静态方法不能保证垃圾收集器的立即执行,因为,也许存在着更高优先级的线程。所以选项B、D不正确。选项C的错误在于,System.gc()方法是不接受参数的。选项E中的方法可以使对象在下次垃圾收集器运行时被收集。
例题3:
1. public class test {
2. public static string output = “”;
3.
4. public static void foo(int i) {
5. try {
6. if(i==1) {
7. throw new Exception ();
8. }
9. output += “1”;
10. }
11. catch(Exception e) {
12. output += “2”;
13. return;
14. }
15. finally {
16. output += “3”;
17. }
18. output += “4”;
19. )
20.
21. public static void main (string args[]) (
22. foo(0);
23. foo(1);
24.
25. )
26. )
第24行时,output的值为__1323___
2. 自定义一个字符串函数,其功能是随机产生一个由字母和数字组成的任意位数的字符串。
import java.util.*;
public class test {
public static void main(String args[]) {
Random random = new Random();
int n = random.nextInt(100);
StringBuffer sb = new StringBuffer();
for (int i = 0; i <= n; i++) {
int c = random.nextInt(255);
if ( (c <= ’9′ && c >= ’0′) || (c <= ‘Z’ && c >= ‘A’) ||
(c <= ‘z’ && c >= ‘a’)) {
sb.append( (char) c);
i++;
}
}
System.out.println(sb.toString());
}
}
3.简述 Java Server Page 和 Servlet 的联系和区别
Java Server Page即:JSP,JSP是Servlet技术的扩展,
本质上是Servlet的简易方式,更强调应用的外表表达。JSP编译后是”类servlet”。
Servlet和JSP最主要的不同点在于:
Servlet的应用逻辑是在Java文件中,并且完全从表示层中的HTML里分离开来。
JSP的情况是Java和HTML可以组合成一个扩展名为.jsp的文件。
①JSP编译后是“类servlet”,而不是servlet
②jsp主要用于视图,servlet则多用于控制逻辑
4.XML文档定义有几种形式?它们之间有何本质区别?
解析XML文档有哪几种方式?
①dtd,schema 两种形式
②本质区别:schema本身是xml,可以被xml解析器解析
③解析xml文档的方式:dom,sax
5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?
主要相同点:
Lock能完成synchronized所实现的所有功能.
主要不同点:
Lock有比synchronized更精确的线程语义和更好的性能
synchronized会自动释放锁.而Lock一定要求程序员手工释放.并且必须在finally从句
中释放
6.EJB规范规定EJB中禁止的操作有哪些?(15分)
2.不能操作awt
7.不能将this作为变量和返回.
3.不能实现服务器功能
4.不能对静态属生存取.
5.不能使用IO操作直接存取文件系统
6.不能加载本地库.
1.不能操作线程和线程API(线程API指非线程对象的方法如notify,wait等)
8.不能循环调用.
7.EJB(Enterprise JavaBean,企业JavaBean)是最重要的组件。能够为企业应用程序提供业务逻辑和数据访问逻辑支持。
二,MVC模型的理解
MVC设计模式的目的:解除控制逻辑,业务理解,视图间的耦合,提升系统的扩展性,维护性。
MVC有模型,视图,控制器组成。
控制器:主要负责接收客户提交的请求,并将请求转发到适当模型对象进行处理,处理的结果发给视图(在j2ee项目中一般有servlet完成)
模型:主要作用是根据的用户的请求进行相应业务的运算,处理。(javabean完成)
视图:负责将结果展示给客户 (Jsp完成)
三、响应时间和吞吐量
吞吐量 :是对单位时间内完成的工作量的量度
响应时间:是提交请求和返回该请求的响应之间使http://write.blog.youkuaiyun.com/postedit/7203281用的时间
二者之间的关系复杂。有时可能以响应时间为代价而得到较高的吞吐量,而有时候又要以吞吐量为代价得到较好的响应时间。在其他情况下,一个单独的更改可能对两者都有提高。可接受的性能基于合理的吞吐量与合理的响应时间相结合。(有个临界值)
四、Java下Class.forName的作用及使用原因
Class.forName(xxx.xx.xx)返回一个类,作用是要求JVM查找并加载指定的类
A a = (A)Class.forName("pakage.A").newInstance()
与
A a = new A(); 效果一样
newInstance()方法和new关键字区别:
一个是方法,一个是关键字外,最主要的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类。
在oracle大数据量下的分页解决方法?
一般用截取ID方法,还有是三层嵌套方法
两个对象值相同(x.equals(y) == true),则一定有相同的hash code
以下是java语言的定义: 1) 对象相等则hashCode一定相等; 2) hashCode相等对象未必相等。
java中int与byte[4]的相互转换(将数i放到byte数组中)
public class Test{
public static void main(String[] args) {
int i =65535;
byte[] b = intToByteArray(i);
for(byte bb:b){
System.out.println(bb+" ");
}
}
public static byte[] intToByteArray(int i) {
byte[] result = new byte[4];
result[0]=(byte)((i>>24)&0xff);
result[1]=(byte)((i>>16)&0xff);
result[2]=(byte)((i>>8)&0xff);
result[3]=(byte)((i)&0xff);
return result;
}
}