java面试小结

2024-06-18 版权声明 我要投稿

java面试小结(精选4篇)

java面试小结 篇1

答:vector是线程安全的,而ArrayList则是线程不安全的,但执行效率较高,视具体情况而定用哪一种;

HashMap是非线性安全的允许使用null键和null值,而HashTable则不能,基本上hashMap替代了HashTable.3,char型变量能不能定义为一个中文?为什么? 能,用unicode码实现

4,多线程有几种表示方法,都是什么?同步有几种实现方法,都是什么?

口,答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接同步的实现方面有两种,分别是synchronized,wait与notify 5,继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么? 6,内部类的实现方式? 内部类分为四种:

1.成员内部类 2.局部内部类 3.静态内部类 4.匿名内部类

7,垃圾回收机制,如何优化程序?

虽然程序员无法控制JVM的垃圾回收机制。但是可以通过编程的手段来影响,影响的方法是,让对象符合垃圾回收条件。

例如声明int型变量时,可以这样,Integer a = new Integer(47);最后a = null;就符合jvm回收机制了。8,float型float f=3.4是否正确? 不正确。精度不准确,应该用强制类型转换,如下所示:float f=(float)3.4 或float f = 3.4f 在java里面,没小数点的默认是int,有小数点的默认是 double;Jsp方面

1,jsp有哪些内置对象?作用分别是什么?

1、request对象:客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。

2、response对象:response对象包含了响应客户请求的有关信息。

3、session对象:session对象指的是客户端与服务器的一次会话,从客户连到服务器的一个WebApplication开始,直到客户端与服务器断开连接为止。

4、out对象:是向客户端输出内容常用的对象

5、page对象:page对象就是指向当前JSP页面本身,有点象类中的this指针。

6、application对象:application对象实现了用户间数据的共享,可存放全局变量。它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直存在;这样在用户的前后连接或不同用户之间的连接中,可以对此对象的同一属性进行操作;在任何地方对此对象属性的操作,都将影响到其他用户对此的访问。服务器的启动和关闭决定了application对象的生命。

7、exception对象:exception对象是一个例外对象,当一个页面在运行过程中发生了例外,就产生这个对象。如果一个JSP页面要应用此对象,就必须把isErrorPage设为true,否则无法编译。

8、pageContext对象:pageContext对象提供了对JSP页面内所有的对象及名字空间的访问,也就是说他可以访问到本页所在的SESSION,也可以取本页面所在的application的某一属性值,他相当于页面中所有功能的集大成者,它的本 类名也叫pageContext。

9、config对象:config对象是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一个ServletContext对象)。

2,jsp有哪些动作?作用分别是什么? 答:JSP共有以下6种基本动作

jsp:include:在页面被请求的时候引入一个文件。

jsp:useBean:寻找或者实例化一个JavaBean。

jsp:setProperty:设置JavaBean的属性。

jsp:getProperty:输出某个JavaBean的属性。

jsp:forward:把请求转到一个新的页面。

jsp:plugin:根据浏览器类型为Java插件生成OBJECT或EMBED标记

3,include的两种实现方式的区别? 以下是对include 两种用法的区别 主要有两个方面的不同;一:执行时间上:

<%@ include file=”relativeURI”%> 是在翻译阶段执行

在请求处理阶段执行.二:引入内容的不同:

<%@ include file=”relativeURI”%>

引入静态文本(html,jsp),在JSP页面被转化成servlet之前和它融和到一起.引入执行页面或servlet所生成的应答文本.另外在两种用法中file和page属性都被解释为一个相对的URI.如果它以斜杠开头,那么它就是一个环境相关的路径.将根据赋给应用程序的URI的前缀进行解释,如果它不是以斜杠开头,那么就是页面相关的路径,就根据引入这个文件的页面所在的路径进行解释.4,两种跳转方式分别是什么?有什么区别? 页面有两种方式:

1.forward跳转:

2.response跳转:response.sendRedirect(“跳转页面地址”);

forward跳转:服务器端跳转,地址栏不改变;

response跳转:客户端跳转,地址栏改变;

request.getRequestDispatcher(“/message.jsp”).forward(request, response);Servlet方面:

1,说一说Servlet的生命周期? servlet有良好的生存期的定义,包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。Servlet被服务器实例化后,容器运行其init方法,请求到达时运行其service方法,service方法自动派遣

运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的时候调用其destroy方法。

与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。

2,Servlet版本间(忘了问的是哪两个版本了)的不同? Jdbc,Jdo方面

1,可能会让你写一段Jdbc连Oracle的程序.2,Class.forName的作用?为什么要用? 3,Jdo是什么? JDO是Java对象持久化的新的规范,为java data object的简称,也是一个用于存取某种数据仓库中的对象的标准化API。JDO提供了透明的对象存储,因此对开发人员来说,存储数据对象完全不需要额外的代码(如JDBC API的使用)。这些繁琐的例行工作已经转移到JDO产品提供商身上,使开发人员解脱出来,从而集中时间和精力在业务逻辑上。另外,JDO很灵活,因为它可以在任何数据底层上运行。JDBC只是面向关系数据库(RDBMS)JDO更通用,提供到任何数据底层的存储功能,比如关系数据库、文件、XML以及对象数据库(ODBMS)等等,使得应用可移植性更强 Xml方面

1,xml有哪些解析技术?区别是什么? SAX 边读边解析,它只知道当前读到的元素,不知道其前后关系的元素,比较省内存

DOM 把整个文档读入内存,可以知道所有元素之间的关系,比较耗内存。2,你在项目中用到了xml技术的哪些方面?如何实现的? 用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中 3,用jdom解析xml文件时如何解决中文问题?如何解析? EJB方面

1,EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别? MVC方面

1,MVC的各个部分都有那些技术来实现?如何实现? 设计模式方面: 1,开发中都用到了那些设计模式?用在什么场合? JavaScript方面 1,如何校验数字型? CORBA 1,CORBA是什么?用途是什么? 以上就是我的总结,可能不是全部,因为时间问题,如果能够记起来,我会再加上,有些问题描述的可能不准确,希望大家批评指正,问题都很基础,即使不知道,花上一点时间查找(csdn/java版)就能弄懂,希望对正在找工作的朋友有所帮助,有所提醒.一份正确率很高的笔试卷可能会为你的面试减轻负担,少问不少问题.当然我还是要提醒从

Java陷阱一箩筐—-面试题集 找工作要面试,有面试就有对付面试的办法。以下一些题目来自我和我朋友痛苦的面试经历,提这些问题的公司包括IBM, E*Trade, Siebel, Motorola, SUN, 以及其它大小公司。

面试是没什么道理可讲的,它的题目有的不合情理、脱离实际。有在纸上写的,有当面考你的,也有在电话里问的,给你IDE的估计很少(否则你赶快去买彩票,说不定中)。所以如果你看完此文后,请不要抱怨说这些问题都能用IDE来解决。你必须在任何情况下准确回答这些问题,在面试中如果出现一两题回答不准确很 有可能你就被拒之门外了。当然这些都是Java的基本题,那些面试的人大多数不会问你Hibernate有多先进,Eclipse的三个组成部分,或command design pattern,他们都是老一辈了,最喜欢问的就是基础知识。别小看了这些基础,我朋友水平一流,结果就栽在一到基础知识的问题下,和高薪无缘。好了废话少说,开始正题。

第一,谈谈final, finally, finalize的区别。最常被问到。

第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。

第四,&和&&的区别。这个问得很少。

第五,HashMap和Hashtable的区别。常问。

第六,Collection 和 Collections的区别。你千万别说一个是单数一个是复数。第七,什么时候用assert。

API级的技术人员有可能会问这个。第八,GC是什么? 为什么要有GC? 基础。GC:Java的垃圾回收器。

Java是由C++发展来的。它摈弃了C++中一些繁琐容易出错的东西。其中有一条就是这个GC。

写C/C++程序,程序员定义了一个变量,就是在内存中开辟了一段相应的空间来存值。内存再大也是有限的,所以当程序不再需要使用某个变量的时候,就需要释放这个内存空间资源,好让别的变量来用它。在C/C++中,释放无用变量内存空间的事情要由程序员自己来解决。就是说当程序员认为变量没用了,就应当写一条代码,释放它占用的内存。这样才能最大程度地避免内存泄露和资源浪费。但是这样显然是非常繁琐的。程序比较大,变量多的时候往往程序员就忘记释放内存或者在不该释放的时候释放内存了。而且释放内存这种事情,从开发角度说,不应当是程序员所应当关注的。程序员所要做的应该是实现所需要的程序功能,而不是耗费大量精力在内存的分配释放上。

Java有了GC,就不需要程序员去人工释放内存空间。当Java虚拟机发觉内存资源紧张的时候,就会自动地去清理无用变量所占用的内存空间。当然,如果需要,程序员可以在Java程序中显式地使用System.gc()来强制进行一次立即的内存清理。

第九,String s = new String(“xyz”);创建了几个String Object? 第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 第十一,short s1 = 1;s1 = s1 + 1;有什么错? short s1 = 1;s1 += 1;有什么错? 面试题都是很变态的,要做好受虐的准备。第十二,sleep()和 wait()有什么区别? 搞线程的最爱。

第十三,Java有没有goto? 很十三的问题,如果哪个面试的问到这个问题,我劝你还是别进这家公司。第十四,数组有没有length()这个方法? String有没有length()这个方法? 第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 常问。

菜鸟 的java学习小结 篇2

一、7月11日

1.DOS命令

dir指令:显示文件; help指令:显示命令条数;

ipcofig指令:显示计算机的ip地址等信息。2.java的理论概括

面向对象:对现实世界进行抽象概括;

跨平台性:java虚拟机的不夸平台实现了java语言的跨平台性。

二、7月12日

1.右击sourceGenerate Getters and Setters„

自动生成get和set方法 2.1个字节=8位 char 1个字节 int 4个字节 3.java的构成

数据类型、变量、运算符、控制流语句 4.基本数据类型:

byte、char、boolean、short、int、long、float、double 引用数据类型:

数组、类(包括基本数据的引用类型)、接口

5.I/O阻塞 System.in.read()第一种用法:

int c=System.in.read();System.out.println((char)c);第二种用法:

Scanner s=new Scanner(System.in);String name=s.nextLine();

int age=s.nextInt();6.InputStreamReader bi=new InputStreamReader(System.in);BufferedReader br=new BufferedReader(bi);String s=br.readLine();7.把字符串类型的b转换为整型 int a=Integer.parseInt(b)8.设置智能提示

WindowPreferences输入“editor”JavaEditorContentAssist(在写“.”的框里写个特殊字符,以便在导出的文件中便于查找)导出(FileExportPreferences„)修改(找到带点的地方,输入24个字母的大小写)导入(FileImportPreferences„)9.导出jar包操作

ExportJava Jar选工程、保存位置选main class 创建快捷方式输入“java –jar D:ss.jar(路径)” 或者直接导出单独的可运行程序(xx.jar)10.数据类型转换

自动类型转换的条件:两种类型兼容、目标类型大于源类型。11.eclipse使用技巧: “Ctrl”+“/”

“Alt”+“/”

“Alt”+小键盘

多行注释或者取消注释 跳出提示 ASCⅡ码输入法

syso+“Alt”+“/” 输出System.out.println()main+“Alt”+“/” 输出public static void main(String[] args)

三、7月13日

1.编译器代表一个可执行文件,如javac 2.Override 重写、覆盖 重新定义

Overload 重载 一个类中存在多个同名方法 3.char c=s.charAt(0);把字符串s的第0个字符转换为char型,赋给c

4.“ctrl”+“shif”+“F”

右击sourceFormat

自动对齐

四、7月14日

1.List list=new ArrayList();List.add(“hello”);代表列表list中元素的类型,此处为字符串 2.abc:while(){„{„break abc„}„} abc表示标号 3.OOP:面向对象编程 OOA:面向对象分析 OOD:面向对象设计

4.消息指一个对象为执行某项特定操作而向另一个对象传递的数据

5.javascript如果要在声明框架的网页(框架网页)中插入,就一定要在之前插入,否则这些代码是不会执行的。6.for-each循环(用于遍历数组或者列表、集合)int[] a={3.4.5.2};for(int k:a){

} System.out.println(k);

五、7月15日

1.产生一个随机数

Random rd=new Random();rd.nextInt(100);0-100的整型随机数 2.JFrame类

JFrame jf=new JFrame();jf.setVisible(true);设置jf窗体为可见 jf.setLayout(new FlowLayout());设置布局格式 JButton jb=new JButton()

jb.setText(“ok”);设置按钮的文字 3.File类

File f=new File(“D:a.txt”);把此文件映射成f对象 f.delete();删除文件

六、7月16日

1.FileOutputStream类 用于往文件对象中写东西

FileOutputStream fos=new FileOutputStream(“D:/a.txt”);BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fos));2.FileInputStream类 用于读取文件

FileInputSream fis=new FileInputStream(“D:a.txt”);BufferedReader br=new BufferedReader(new InputStreamReader(fis));

String s;While((s=br.readLine())!=null && s.length()>0){ String[] ss=s.split(“,”);//以“,”为分隔符,把s中的各部分依次导入到数组ss中

} 3.String.valueOf(int t)把t转换为字符串类型 ZhiGong z=new ZhiGong(ss[0],Integer.parseInt(ss[1]));

七、7月18日

1.右击sourceOverride„

用于重写

2.在生成子类对象时会自动调用父类的默认构造方法;如果父类没有默认的构造方法,则必须在子类的构造方法中显示的调用父类的构造方法。并且必须写在第一行。

super()或者super(参数列表)。3.权限修饰符 public:

所有类都可以访问

private:

只有该类可以访问

该类及其子类、同一包中的类可以访问 相同数据包中的类可以访问 protected: 默认: 4.static:

①可以调用其他静态方法

②只能访问静态数据

③不能使用super或者this关键字 final:

①修饰类,不能被继承

②修饰字段,可以被引用,但不能被修改 abstract:抽象

①抽象类里面可以有抽象方法 ②抽象类不可以实例化

③非抽象子类必须实现抽象父类的全部抽象方法

八、7月20日

1.switch-case中case后面不能用变量 2.Thread 线程

①使用方法一:

public class Thread1 {

public static void main(String[] args){

Runner1 r=new Runner1();Thread t=new Thread(r);t.start();} } class Runner1 implements Runnable {

} public void run(){

} for(int i=0;i<30;i++){ } System.out.println(“No.”+i);②使用方法二:编写一个类继承Thread类,重写Thread类的run方法,然后直接new该类的对象使用。

③使用方法三:直接在代码里写线程

new Thread(new Runnable(){

public void run(){ //写代码

}

}).start();④isAlive():判断线程是否还“活”着,即线程是否终止

⑤wait():当前线程进入对象的wait pool; notify()/notifyAll():唤醒对象的wait pool中的一个/所有等待线程 ⑥线程的优先级用数字表示,范围1-10,值越大优先级越高(但不一定优先级越高,线程就会先执行)

getPriority()/setPriority(iint i)获取/设置线程的优先级 ⑦线程串行化

thread.join()

要等thread线程执行完才能执行其他线程

先执行thread指定时间,然后和其他线 join(毫秒),join(毫秒,纳秒)程并发执行

⑧线程让步:放弃当前获得的时间片,重新进入就绪状态

thread.yield();⑨线程挂起:暂时停止当前运行中的线程,使之转入阻塞状态,并且不会自动恢复运行。

线程恢复:使得一个已挂起的线程恢复运行。

suspend()挂起; resume()恢复 3.枚举 enum

public enum Week { } 以“Week.***”的格式来使用,Week可以看成一种变量类型。MON,TUE,WED,THU,FRI,SAT,SUN

九、7月21日

1.接口(interface)

①里面一般只有方法,也可以定义静态常量 例如:public static final int i=0;②只能是public或默认的 2.反射

①第一种情况:未知类采用默认构造方法

Class cls=Class.forName(getClassName());Object obj=cls.newInstance();Method m=cls.getMethod(getMethod(), new

Class[]{int.class,int.class});

m.invoke(obj,new Object[]{5,7});private static String getClassName(){ } private static String getMethod(){ } ②第二种情况:未知类采用带参数的构造方法

return “abc.AA”;return “add”;

Class cls=Class.forName(getClassName());Constructor cr=cls.getConstructor(new Class[]{int.class,String.class});

Object obj2=cr.newInstance(new Object[]{12,“king”});Method m2=cls.getMethod(getMethod(), new Class[]{});m2.invoke(obj2,null);private static String getClassName(){ } private static String getMethod(){

} 3.异常

throws(抛出异常类型)/throw(抛出具体异常);try,catch,finally return “add”;return “abc.AA”;

十、7月22日

1.常用类

Math、Class、Object、String/StringBuffer、Date/Calendar/Random 2.集合

(此图引自《java se 应用程序设计》视频教程)① 集(Set)

不区分元素的顺序,不允许插入重复的元素 ② 列表(List)

区分元素的顺序,并且允许插入重复的元素 ③映射(Map)

映射中保存成对的“键-值”(key-value)信息,映射中不能包含重复的键,每个键最多只能映射一个值

十一、7月25日

1.进程、线程

① 进程就是一个程序,线程就是程序中的代码块。进程包含线程 ② 子线程与父线程都是并列执行的 2.synchronized 同步线程

① 当某个对象用synchronized修饰时,说明该对象在任一时刻只能由一个线程访问

② 用于方法说明中,标明整个方法为同步方法

public synchronized void push(){„} ③ 用于修饰语句块,标明整个语句块为同步块

public char pop(){„

synchronized(this<对象>){„}„} 3.使用String类型的getBytes()方法获得Byte数组

十二、7月26日

1.DataInputStream和DataOutputStream 用于读取写入二进制文件 2.字节流 8位

字符流 16位

十三、7月27日

1.监听器 2.model 3.半相关:地址、协议、端口号

全相关:半相关一致(地址可以不同)//两点通信的条件

ServerSocket(服务器端<半相关>)、Socket(客户端/服务器端<全相关>)

十四、7月28日

1.Socket网络编程的步骤

① 建立网络连接----获得全相关

② 打开连接到Socket的输入/输出流----getInputStream/getOutputStream ③ 通过已打开的I/O流进行数据的读/写操作 ④ 关闭已打开的I/O流和Socket

十五、7月29日

1.protected不能修饰局部变量 abstract不能修饰属性

2.ImageIO.read(); //获取图片文件的一种方法

十六、8月1日

1.单例模式:确保某个类只有一个对象

① 虚拟机上的单例 class A {

private static boolean a=false;//用来判断对象是否存在 private A()//私有化构造函数,使其他类不能new { } public static A getInstance()//获得该类实例的唯一方法 {

} } ② 操作系统上的单例

在计算机上建个文本文件,里面标记该类是否存在实例,关闭实例时要把文件里的标记还原。if(a==false){

} else return null;a=true;return new A();

十七、8月2日

1.p instanceof Student 判断p是否是Student类的实例

2.**.getClass().getResource(“user.dir”);

获取当前路径

3.....上一层的上一层

十八、8月3日

1.随机读取文件RandomAccessFile

seek(long pos)定位到pos处

2.标准对话框(javax.swing.JoptionPane)用于实现程序员与用户的便捷交互

Java面试题 篇3

1、注册Jdbc驱动程序的三种方式

1、用JDBC如何调用存储过程

1、JDBC中的preparedStatement相比Statement的好处

1. 写一个用jdbc连接并访问oracle数据的程序代码

2、Class.forName的作用?为什么要用?

答:调用该访问返回一个以字符串指定类名的类的对象。

3、大数据量下的分页解决方法。

4、用 JDBC 查询学生成绩单, 把主要代码写出来.

5、这段代码有什么不足之处?

try {

Connection conn = ...;

Statement stmt = ...;

ResultSet rs = stmt.executeQuery(“select * from table1”);

while(rs.next()) {

}

} catch(Exception ex) {

}

36、说出数据连接池的工作机制是什么?

J2EE服务器启动时会建立一定数量的池连接,并一直维持不少于此数目的池连接。客户端程序需要连接时,池驱动程序会返回一个未使用的池连接并将其表记为忙。如果当前没有空闲连接,池驱动程序就新建一定数量的连接,新建连接的数量有配置参数决定。当使用的池连接调用完成后,池驱动程序将此连接表记为空闲,其他调用就可以使用这个连接。

4、为什么要用 ORM? 和 JDBC 有何不一样?

5. XML部分

1、xml有哪些解析技术?区别是什么?

答:有DOM,SAX,STAX等

DOM:处理大型文件时其性能下降的非常厉害。这个问题是由DOM的树结构所造成的,这种结构占用的内存较多,而且DOM必须在解析文件之前把整个文档装入内存,适合对XML的随机访问SAX:不现于DOM,SAX是事件驱动型的XML解析方式。它顺序读取XML文件,不需要一次全部装载整个文件。当遇到像文件开头,文档结束,或者标签开头与标签结束时,它会触发一个事件,用户通过在其回调事件中写入处理代码来处理XML文件,适合对XML的顺序访问

STAX:Streaming ApI for XML (StAX)

讲解这些区别是不需要特别去比较,就像说传智播客与其他培训机构的区别时,我们只需说清楚传智播客有什么特点和优点就行了,这就已经间接回答了彼此的区别。

2、你在项目中用到了xml技术的哪些方面?如何实现的?

答:用到了数据存贮,信息配置两方面。在做数据交换平台时,将不能数据源的数据组装成XML文件,然后将XML文件压缩打包加密后通过网络传送给接收者,接收解密与解压缩后再同XML文件中还原相关信息进行处理。在做软件配置时,利用XML可以很方便的进行,软件的各种配置参数都存贮在XML文件中。

3、用jdom解析xml文件时如何解决中文问题?如何解析?

答:看如下代码,用编码方式加以解决

package test;

import java.io.*;

public class DOMTest

{

private String inFile = “c:people.xml”

private String outFile = “c:people.xml”

public static void main(String args[])

{

new DOMTest();

}

public DOMTest()

{

try

{

javax.xml.parsers.DocumentBuilder builder =

javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder();

org.w3c.dom.Document doc = builder.newDocument();

org.w3c.dom.Element root = doc.createElement(“老师”);

org.w3c.dom.Element wang = doc.createElement(“王”);

org.w3c.dom.Element liu = doc.createElement(“刘”);

wang.appendChild(doc.createTextNode(“我是王老师”));

root.appendChild(wang);

doc.appendChild(root);

javax.xml.transform.Transformer transformer =

javax.xml.transform.TransformerFactory.newInstance().newTransformer();

transformer.setOutputproperty(javax.xml.transform.OutputKeys.ENCODING, “gb2312”);

transformer.setOutputproperty(javax.xml.transform.OutputKeys.INDENT, “yes”);

transformer.transform(new javax.xml.transform.dom.DOMSource(doc),

new

javax.xml.transform.stream.StreamResult(outFile));

}

catch (Exception e)

{

System.out.println (e.getMessage());

}

}

}

4、编程用JAVA解析XML的方式.

答:用SAX方式解析XML,XML文件如下:

王小明

信息学院

6258113

男,1955年生,博士,95年调入海南大学

事件回调类SAXHandler.java

import java.io.*;

import java.util.Hashtable;

import org.xml.sax.*;

public class SAXHandler extends HandlerBase

{

private Hashtable table = new Hashtable();

private String currentElement = null;

private String currentValue = null;

public void setTable(Hashtable table)

{

this.table = table;

}

public Hashtable getTable()

{

return table;

}

public void startElement(String tag, AttributeList attrs)

throws SAXException

{

currentElement = tag;

}

public void characters(char[] ch, int start, int length)

throws SAXException

{

currentValue = new String(ch, start, length);

}

public void endElement(String name) throws SAXException

{

if (currentElement.equals(name))

table.put(currentElement, currentValue);

}

}

JSp内容显示源码,SaxXml.jsp:

<%@ page errorpage=Errpage.jsp

contentType=text/html;charset=GB2312 %>

java面试技巧 篇4

好了废话少说,开始正题。

第一,谈谈final, finally, finalize的区别。最常被问到。

第二,Anonymous Inner Class(匿名内部类)是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?

第三,Static Nested Class和Inner Class的不同,说得越多越好(面试题有的很笼统)。

第四,&和&&的区别。

这个问得很少。

第五,HashMap和Hashtable的区别。

常问。

第六,Collection和Collections的区别。你千万别说一个是单数一个是复数。

第七,什么时候用assert。

API级的技术人员有可能会问这个。

第八,GC是什么?为什么要有GC?

基础。

第九,String s = new String(xyz);创建了几个String Object?

第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

第十一,short s1 = 1;s1 = s1 1;有什么错? short s1 = 1;s1 = 1;有什么错?

面试题都是很变态的,要做好受虐的准备。

第十二,sleep()和wait()有什么区别?

搞线程的最爱。

第十三,Java有没有goto?

很十三的问题,如果哪个面试的问到这个问题,我劝你还是别进这家公司。

第十四,数组有没有length()这个方法? String有没有length()这个方法?

第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?

常问。

第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用==还是equals()?它们有何区别?

第十七,给我一个你最常见到的runtime exception。

如果你这个答不出来,面试的人会认为你没有实际编程经验。第十八,error和exception有什么区别?

第十九,List, Set, Map是否继承自Collection接口?第二十,abstract class和interface有什么区别?常问。

第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?

第二十二,接口是否可继承接口?抽象类是否可实现

(implements)接口?抽象类是否可继承实体类(concrete class)?第二十三,启动一个线程是用run()还是start()?第二十四,构造器Constructor是否可被override?第二十五,是否可以继承String类?

第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?

第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 世界计算机

第二十八,编程题:用最有效率的方法算出2乘以8等於几?Copyright 2007-2008 Jobhere.Net All Rights Reserved有C背景的程序员特别喜欢问这种问题。

第二十九,两个对象值相同(x.equals(y)== true),但却可有不同的hash code,这句话对不对?

上一篇:电信暑期实习心得体会下一篇:第2章习题带答案