JVM 发生GC时的事件通知的机制

如果您还在用Java 6的话,请赶紧升级到Java 7吧。 
以下以Java 7为基准来讨论。 

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

在Java 7里有两种办法来监听GC事件。 

一种是比较传统的办法,从Java SE 5开始就可用。 
用C或C++或其它native语言来实现一个JVMTI agent,注册监听里面的 GarbageCollectionFinish 事件即可。 
JVMTI提供了GarbageCollectionStart和GarbageCollectionFinish事件,有需要的话前者也可以监听上。这两个事件都是在JVM处于GC暂停阶段之中发出的,此时不能执行任何Java代码。 
可以通过JVMTI的 GetStackTrace 函数来获取当时某个指定的Java线程的栈,或者用 GetAllStackTraces 来获取所有Java线程的栈。 

-------------------------------------------------------------- 

另一种是用Java 7新推出的JMX API的GC notification。用Java代码注册一个NotificationListener来监听GC事件即可。这边的事件是在GC完成之后才发出的。可以配置超时时间,只在超过指定的时间时才发出事件。 
具体用法可参考JavaDoc: GarbageCollectionNotificationInfo  
以及这个bug report里有具体注册GC notification的代码: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7087969  

我以前写过一个跟它的实现机制相关的笔记,有兴趣的话可以参考: https://gist.github.com/rednaxelafx/1465445 。相关邮件讨论: http://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2011-August/002352.html  

同样用JMX, ThreadMXBean.dumpAllThreads 可以获取所有Java线程的栈。 

用JMX版虽然可以用Java代码写,挺方便,但它获得GC事件通知时JVM已经不在暂停阶段,所有Java线程都重新变成可运行的,于是此时获取的stack trace就不如JVMTI准确(至少从楼主的意图来看)。用JVMTI还是用JMX就看楼主自己的取舍了。

转载于:https://my.oschina.net/sub/blog/152638

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制 自动化代码检查 sonar 代码规范 阿里巴巴Java开发规范手册 UMPAY——编码规范 日志规范 异常规范 网络 协议 TCP/IP HTTP hession file HTTPS 负载均衡 容器 JBOSS tomcat resin jetty 容灾 日志框架 开源框架 slf4j 框架实现 log4j logback commong logging jdk logger 测试框架 测试框架 junit easymock testng mockito bug管理 禅道 jira 开发工具 编程工具 eclipse myeclipse idea vi VS webstorm sublime text 版本控制 svn git 项目管理 maven Nexus Jenkins 工作软件 反编译软件 office系列 下载器 adobe系列 记录软件 思维导图 office--Note 邮件管理 性能优化 分层优化 系统级别 中间件级别 JVM级别 代码级别 分段优化 前端 web应用 服务应用 资源池 数据库 大数据与nosql zookeeper hadoop hbase mongodb strom spark java语言 语言语法基础 异常 泛型 内部类 反射 序列化 nIo 匿名类 包装类 优先级 引用 语言工具类库 容器类 集合 链表 map 工具类 系统类 日期类 数字类 字符串+正则 流 字符流 字节流 语言特性 继承 封装 多态 JVM 多线程与并发 GC机制 GC收集器类型 串行 CMS 并行 G1 算法 复制 标记清理 标记整理 分区 新生代 eden survivor 老年代(old区) 永久代(perm区) 版本变化 1.5 1.6 1.7 1.8 1.9 IO/NIO IO类型 同步阻塞 同步非阻塞 基于信号 多路复用 异步IO 类加载机制 双亲委派 OSGI 算法 搜索 二分 排序 选择 冒泡 插入 快速 归并 堆 桶 基数 常用算法 贪婪 回溯 剪枝 动态规划 数据挖掘算法 KMP算法 GZZ算法 HASH分桶 关联规则算法 APRORIVE算法 分布式 负载均衡 水平伸缩 集群 分片 Key-hash 异步 一致性hash 消峰 分库分表 锁 悲观锁 乐观锁 行级锁 分布式锁 分区排队 一致性 一致性算法 paxos zab nwr raft gossip 柔性事务(TCC) 一致性原理 CAP BASE 中间件 数据库 mysql 存储引擎 索引 锁 oracle db2 缓存 redis 数据结构 持久 复制 cas 单线程 memcache eacache Tair 消息队列 jms Queue Topic kafka 持久 复制 Stream Partition rocketMQ RabbitMQ ActiveMQ 常用开源框架 Spring Spring MVC Spring WebFlow spring tx aop ioc Struts ibatis Mybatis CAS Dubbo 工作能力 软实力 应急能力 创新能力 管理能力 分享能力 学习能力 沟通能力 解决问题能力 经历 技术攻关案例 程序开发案例 程序设计案例 设计 设计原则 单一职责原则 开闭原则 里氏替换原则 依赖倒转原则 接口隔离原则 迪米特原则 设计模式 结构模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 创建模式 抽象工厂模式 工厂方法模式 建造这模式 原型模式 单例模式 行为模式 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 设计案例 UML 架构 系统架构能力 基本理论 扩展性设计 可用性设计 可靠性设计 一致性设计 负载均衡设计 过载保护设计 协议设计 二进制协议 文本协议 接入层架构设计 DNS轮询 动静态分离 静态化 反向代理 LVS F5 CDN 逻辑层架构设计 连接池 串行化技术 影子Master架构 批量写入 配置中心 去中心化 通讯机制 同步 RPC RMI 异步 MQ Cron 数据层架构设计 缓存优化 DAO&ORM; 双主架构 主从同步 读写分离 性能优化架构能力 代码级别 关联代码优化 cache对其 分支预测 copy on write 内联优化 系统优化 cache 延迟计算 数据预读 异步 轮询与通知 内存池 模块化 工程架构能力 开发语言 运维与监控 监控 系统监控 日志监控 流量监控 接口监控 数据库监控 业务监控 性能监控 告警 日志 设计模式 数据结构与算法 各种工具
coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short s1 = 1; s1 = s1 + 1;有什么错? 8 7、Java 有没有goto? 8 8、int 和Integer 有什么区别? 9 9、&和&&的区别? 9 10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别? 9 11、heap 和stack 有什么区别? 9 12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 9 13、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上? 9 14、编程题: 用最有效率的方法算出2 乘以8 等於几? 9 15、有没有length()这个方法? String 有没有length()这个方法? 9 16、在JAVA 中,如何跳出当前的多重嵌套循环? 9 17、构造器Constructor 是否可被override? 9 18、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 9 19、是否可以继承String 类? 9 20、以下二条语句返回值为true 的有: 10 21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 10 23、String 和StringBuffer 的区别? 10 24、String, StringBuffer StringBuilder 的区别。 10 25、Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值的类型? 10 27、描述一下JVM 加载class 文件的原理机制? 10 28、char 型变量中能不能存贮一个中文汉字?为什么? 10 29、abstract class 和interface 有什么区别? 10 30、Static Nested Class 和Inner Class 的不同? 11 31、java 中会存在内存泄漏吗,请简单描述。 11 32、abstract 的method 是否可同是static,是否可同是native,是否可同是synchronized? 11 33、静态变量和实例变量的区别? 11 34、是否可以从一个static 方法内部发出对非static 方法的调用? 11 35、写clone()方法,通常都有一行代码,是什么? 11 36、GC 是什么? 为什么要有GC? 11 37、垃圾回收的优点和原理。并考虑2 种回收机制。 11 38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 12 39、String s=new String(“xyz”);创建了几个String Object? 12 40、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 12 41、Java 的接口和C++的虚类的相同和不同处。 12 42、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 12 43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)? 12 45、内部类可以引用他包含类的成员吗?有没有什么限制? 12 46、java 中实现多态的机制是什么? 12 47、在java 中一个类被声明为final 类型,表示了什么意思? 12 48、下面哪些类可以被继承? 12 49、指出下面程序的运行结果: 【基础】 13 52、关于内部类: 13 53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、Java 编程,打印昨天的当前刻。 15 60、java 和javasciprt 的区别。 15 61、什么候用assert? 16 62、error和exception有什么区别 16 63、ArrayList和Vector的区别 16 64、Collection 和 Collections的区别 17 65、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别 17 66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 17 69、文件读写的基本类 17 70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73、线程的基本概念、线程的基本状态以及状态之间的关系 18 74、sleep() 和 wait() 有什么区别? 18 75、socket通信(tcp/udp区别及JAVA的实现方式) 18 76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private String name; public abstract boolean isStupidName(String name) {}}这有何错误? 18 79、public class Something { void doSomething () { private String s = ""; int l = s.length(); } }有错吗? 18 80、abstract class Something { private abstract String doSomething ();}这好像没什么错吧? 18 81、public class Something { public int addOne(final int x) { return ++x; }}这个比较明显。 19 83、class Something { int i; public void doSomething() { System.out.println("i = " + i); }} 有什么错呢? 19 Hibernate部分 19 92、一般情况下,关系数据模型与对象模型之间有哪些匹配关系(A,B,C) 21 93、以下关于SessionFactory的说法哪些正确?(B,C) 21 94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、Hibernate是如何延迟加载? 22 98、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 103、Struts的validate框架是如何验证的? 24 104、说下Struts的设计模式 24 105、spring工作机制及为什么要用? 24 106、HttpSession session = request.getSession() 24 107、getParameter与 getAttribute的区别? 24 108、以下哪一个不是赋值符号? 25 109、以下哪个不是Collection的子接口? 25 110、.BufferedReader的父类是以下哪个? 25 112、div与span区别? 25 113、html的框架是什么? 25 114、alert怎样换行? 25 115、什么情况用HTML控件,什么情况用WEB控件,并比较两者差别 25 javaScript部分 25 116、JavaScript中的对象. 25 117、function的用法 26 118、对象的继承 27 119、this的用法 29 120、Array in JavaScript 29 121、jsp有哪些内置对象?作用分别是什么? 31 122、jsp有哪些动作?作用分别是什么? 31 123、JSP中动态INCLUDE与静态INCLUDE的区别? 31 124、两种跳转方式分别是什么?有什么区别? 31 125、如何执行一个线程安全的JSP? 31 126、JSP如何处理HTML FORM中的数据? 31 127、在JSP如何包含一个静态文件? 32 128、在JSP中如何使用注释? 32 129、在JSP中如何执行浏览重定向? 32 130、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中? 32 131、在JSP中如何设置COOKIE? 32 132、在JSP中如何删除一个COOKIE? 32 133、在一个JSP的请求处理中如何停止JSP的执行 33 134、在JSP中如何定义方法 33 135、在JSP中能发送EMAIL吗 34 136、在SERVLET中我能调用一个JSP错误页吗 34 137、APPLET和JSP如何通讯 35 138、JSP如何与EJB SessionBean通讯 35 139、当我使用一个结果集,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN如何接受初始化参数 36 142、使用JSP如何获得客户浏览器的信息? 36 143、能象调用子程序一样调用JSP吗? 36 144、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS? 36 145、<%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别? 36 146、JSP的缺点? 36 148、如何实现JSP的国际化? 36 150、如何在JSP中包括绝对路径文件? 使用URLConnection即可。 37 151、在servlets和JSP之间能共享session对象吗? 37 152、如何设置cookie在某一间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗? 37 155、对一个JSP页,如果多个客户端同请求它,同步可能吗? 37 156、在jsp:useBean语法中使用beanName有何好处? 37 157、当我使用<jsp:forward>,在浏览器的地址栏没有改变? 37 158、如何转换JSP 0.9版本的文件到JSP1.1? 37 160、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 38 161、AJAX的全称是什么? 介绍一下AJAX 38 162、Ajax主要包含了哪些技术? 38 163、主要的Ajax框架都有什么? 38 164、介绍一下XMLHttpRequest对象 38 165、AJAX应用和传统Web应用有什么不同? 38 166、如何用JQuery进行表单验证? 39 167、Prototype如何实现页面局部定刷新? 40 168、Prototype如何为一个Ajax添加一个参数? 40 169、Ajax请求总共有多少种Callback? 41 170、Javascript如何发送一个Ajax请求? 41 171、AJAX都有哪些有点和缺点? 41 172、Ajax和javascript的区别? 41 Servlet部分 42 174、JAVA SERVLET API中forward() 与redirect()的区别? 42 178、如何现实servlet的单线程模式 42 179、页面间对象传递的方法 42 180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话跟踪技术 42 182、Request对象的主要方法 43 183、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 43 184、Servlet执行一般实现哪几个方法? 44 185、getServletContext()和getServletConfig()的意思 44 186、Hashtable和HashMap 44 187、JAVA SERVLET API中forward() 与redirect()的区别? 44 189、Can a Java Thread be started from Servlet class, and what will be the implications? 45 190、What is HTTP Session tracking and why is it important? 45 191、What is session management, and how is it different from session tracking? 45 192、Can I use Hidden form field to track session? 45 194、In a architecture pattern like MVC, it is mandatory that Servlet should be the controller, why not JSP? 46 195、Why JSP is used as View part of MVC ? 46 196、Can a database connection pool be instantiated in init method of servlet instead of server connection pool? What will be the problem? 46 综合部分 46 197、Class.forName的作用?为什么要用? 47 198、Jdo是什么? 47 199、在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。 47 200、xml有哪些解析技术?区别是什么? 48 201、你在项目中用到了xml技术的哪些方面?如何实现的? 48 202、用jdom解析xml文件如何解决中文问题?如何解析? 48 203、编程用JAVA解析XML的方式. 49 204、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别? 51 205、EJB与JAVA BEAN的区别? 51 206、EJB的基本架构 51 207、MVC的各个部分都有那些技术来实现?如何实现? 52 208、J2EE是什么? 52 209、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。 52 210、STRUTS的应用(如STRUTS架构) 52 211、开发中都用到了那些设计模式?用在什么场合? 52 212、UML方面 52 213、如何校验数字型? 53 214、CORBA是什么?用途是什么? 53 215、写一个方法,实现字符串的反转,如:输入abc,输出cba 53 216、数据类型之间的转换 53 217、如何取得年月日,小分秒 53 218、如何取得从1970年到现在的毫秒数 53 219、如何格式化日期 53 220、文件和目录(I/O)操作 54 230、J2EE的优越性 54 231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何知道游标已经到了最后? 55 237、触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 56 238、EJB容器提供的服务 56 239、EJB的角色和三个对象 56 240、EJB的几种类型 56 241、bean 实例的生命周期 56 242、激活机制 56 243、remote接口和home接口主要作用 56 244、客服端调用EJB对象的几个基本步骤 56 245、 如何给weblogic指定大小的内存? 56 246、如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 57 247、如何启动不需输入用户名与密码? 57 248、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 57 250、如何查看在weblogic中已经发布的EJB? 57 251、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 57 252、在weblogic中发布ejb需涉及到哪些配置文件 57 253、EJB需直接实现它的业务接口或Home接口吗,请简述理由. 57 254、说说在weblogic中开发消息Bean的persistent与non-persisten的差别 57 255、说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法 57 256、现在输入n个数字,以逗号,分开; 58 257、金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 58 259、Spring和Struts的区别? 58 260、如何用Struts实现国际化? 58 261、如何实现struts的validator框架? 59 262、如何在struts中配置数据源在,什么文件?用什么标签?如何取出DataSource? 60 263、Struts框架如何取得消息资源文件中的信息? 60 264、Struts中如何基于validation.xml来启用客户端验证? 60 266、请你谈谈SSH整合 60 267、ActionForm bean的作用 61 268、Spring如何创建一个数据连接池 61 269、Spring如何配置一个bean来从JNDI得到DataSource 61 270、Bean的销毁 61 271、Spring如何获取Bean 61 272、Spring和Struts的区别? 62 273、什么是aop,aop的作用是什么? 62 275、依赖注入的方式有几种,各是什么? 62 276、spring中的核心类有那些,各有什么作用? 62 277、ApplicationContext的作用 63 278、如何实现资源管理 63 279、如何实现加入web框架中 63 280、如何实现事件处理 63 281、spring的ioc及di代表什么意思? 63 283、spring的配置的主要标签是什么?有什么作用? 64 284、spring与ejb2.0的事务管理比较的优缺点? 64 286、在spring中有几种事务管理,分别是什么? 64 287、在spring中如何配代码的事务管理? 65 288、在spring中如何配容器的事务管理,相关的类有那些? 65 289、如果spring与hibernate结合在一起可以不需要hibernate.cfg.xml文件是否正确? 65 290、spring+hibernate的配置文件中的主要类有那些?如何配置? 65 291、spring+hibernate的代码实现中,对于实现类一定继承于一个类是那一个,它有什么作用 66 292、如何配置spring+struts? 66 293、如何在web环境中配置applicationContext.xml文件? 66 294、BS与CS的联系与区别 66 295、Servlet的生命周期 68 296、如何现实Servlet的单线程模式 68 297、Servlet执行一般实现哪几个方法? 68 298、j2ee常用的设计模式?说明工厂模式。 68 299、应用服务器与WEB SERVER的区别? 68 300、应用服务器有那些? 68 301、说出数据连接池的工作机制是什么? 68 302、页面间对象传递的方法 69 303、四种会话跟踪技术 69 304、J2EE 是技术还是平台还是框架? 69 305、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 69 306、启动一个线程是用run()还是start()? 69 307、线程的基本概念、线程的基本状态以及状态之间的关系 69 308、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 70 309、JSP中动态INCLUDE与静态INCLUDE的区别? 70 310、JSP的常用指令 70 311、什么情况下调用doGet()和doPost()? 70 312、JSP和Servlet 有哪些相同点和不同点,他们之间的联系是什么? 70 313、Request对象的主要方法: 70 314、JSP有哪些动作?作用分别是什么? 71 315、JSP的两种跳转方式分别是什么?有什么区别? 71 316、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 71 317、EJB与JAVA BEAN的区别? 72 318、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的? 72 319、EJB规范规定EJB中禁止的****作有哪些? 72 320、remote接口和home接口主要作用 72 321、bean 实例的生命周期 72 322、EJB的激活机制 73 323、EJB的几种类型 73 324、客服端调用EJB对象的几个基本步骤 73 325、EJB需直接实现它的业务接口或Home接口吗,请简述理由。 73 327、说说在weblogic中开发消息Bean的persistent与non-persisten的差别 73 328、你在项目中用到了xml技术的哪些方面?如何实现的? 73 329、JAVA SERVLET API中forward() 与redirect()的区别? 73 330、面向对象的特征? 73 331、Java中的异常处理机制? 74 333、Java中的事件处理机制? 74 334、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 75 335、GC是什么?为什么要有GC (基础) ? 75 336、请说出你所知道的线程同步的方法。 75 337、什么是Java序列化,如何实现Java 序列化? 75 338、介绍Java中的Collection Framework(包括如何写自己的数据结构)? 75 339、String是最基本的数据类型吗? 76 340、谈谈final, finally, finalize 的区别? 76 341、Static Nested Class 和Inner Class的不同? 76 342、HashMap和Hashtable的区别? 76 343、ArrayList和Vector的区别? 76 344、Collection 和Collections的区别? 77 345、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 77 346、String与StringBuffer的区别? 77 347、静态变量和实例变量的区别? 77 348、List、Map、Set三个接口,存取元素,各有什么特点? 77 349、说出ArrayList,Vector, LinkedList的存储性能和特性。 77 350、在Java中一个类被声明为final类型,表示了什么意思? 77 351、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 77 352、String s = new String("xyz");创建了几个String Object? 77 353、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 77 354、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 78 355、数组有没有length()这个方法? String 有没有length()这个方法? 78 356、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 78 357、List, Set, Map是否继承自Collection接口? 78 358、abstract的method是否可同是static,是否可同是native,是否可同是synchronized? 78 360、构造器Constructor是否可被override? 78 361、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 78 362、try {}里有一个return 语句,那么紧跟在这个try后的finally {}里的code 会不会被执行,什么候被执行,在return前还是后? 78 363、描述一下JVM加载class文件的原理机制? 78 364、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 78 365、Java中会存在内存泄漏吗,请简单描述。 78 366、是否可以从一个static方法内部发出对非static方法的调用? 79 367、写clone()方法,通常都有一行代码,是什么? 79 368、在Java中,如何跳出当前的多重嵌套循环? 79 370、给我一个你最常见到的runtime exception。 79 371、写一个Singleton出来 79 372、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示? 80 373、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在 COLLECTION框架中,实现比较要实现什么样的接口? 81 374、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 82 380、ArrayList和Vector的区别, HashMap和Hashtable的区别 83 381、== 与 equals 的区别: 83 382、写一个 SQL Server 中的存储过程: 83 383、写一个 Oracle 中的存储过程: 84 384、HTTP 的请求过程: 84 385、多线程的优点 84 387、java是否存在内存泄露 85 388、Corba概述 85 389、toString方法的概述 85 390、Object类的概述 85 391、什么叫抽象类?抽象类跟接口有什么区别?为什么引进数据接口概念? 85 392、doGet与doPut的区别? 85 393、多线程实现有那几种方法,同步有哪几种方法? 85 394、JSP页面的跳转? 86 395、类变量的初始化 86 396、数组的定义 86 397、说明List和Set的区别 86
Java面试宝典2012版 一. Java基础部分 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 2、Java有没有goto? 3、说说&和&&的区别。 4、在JAVA中如何跳出当前的多重嵌套循环? 5、switch语句能否作用在byte上,能否作用在long上,能否作用在String上? 6、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 7、char型变量中能不能存贮一个中文汉字?为什么? 8、用最有效率的方法算出2乘以8等於几? 9、请设计一个一百亿的计算器 10、使用final关键字修饰一个变量,是引用不能变,还是引用的对象不能变? 11、"=="和equals方法究竟有什么区别? 12、静态变量和实例变量的区别? 13、是否可以从一个static方法内部发出对非static方法的调用? 14、Integer与int的区别 15、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 16、下面的代码有什么不妥之处? 17、请说出作用域public,private,protected,以及不写的区别 18、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 19、构造器Constructor是否可被override? 20、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承具体类(concrete class)? 抽象类中是否可以有静态的main方法? 21、写clone()方法,通常都有一行代码,是什么? 22、面向对象的特征有哪些方面 23、java中实现多态的机制是什么? 24、abstract class和interface有什么区别? 25、abstract的method是否可同是static,是否可同是native,是否可同是synchronized? 26、什么是内部类?Static Nested Class 和 Inner Class的不同。 27、内部类可以引用它的包含类的成员吗?有没有什么限制? 28、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 29、super.getClass()方法调用 30、String是最基本的数据类吗? 31、String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容到底变了没有? 32、是否可以继承String类? 33、String s = new String("xyz");创建了几个String Object? 二者之间有什么区别? 34、String 和StringBuffer的区别 35、如何把一段逗号分割的字符串转换成一个数组? 36、数组有没有length()这个方法? String有没有length()这个方法? 37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 38、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么候被执行,在return前还是后? 39、下面的程序代码输出的结果是多少? 40、final, finally, finalize的区别。 41、运行异常与一般异常有何异同? 42、error和exception有什么区别? 43、Java中的异常处理机制的简单原理和应用。 44、请写出你最常见到的5个runtime exception。 45、JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗? 二. Jav线程部分 46、java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 47、sleep() 和 wait() 有什么区别? 48、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 49. 下面两个方法同步吗?(自己发明) 50、多线程有几种实现方法?同步有几种实现方法? 51、启动一个线程是用run()还是start()? . 52、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 53、线程的基本概念、线程的基本状态以及状态之间的关系 54、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 55、设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。 56、子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序。 57、介绍Collection框架的结构 58、Collection框架中实现比较要实现什么接口 59、ArrayList和Vector的区别 60、HashMap和Hashtable的区别 61、List 和 Map 区别? 62、List, Set, Map是否继承自Collection接口? 63、List、Map、Set三个接口,存取元素,各有什么特点? 64、说出ArrayList,Vector, LinkedList的存储性能和特性 65、去掉一个Vector集合中重复的元素 66、Collection 和 Collections的区别。 67、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 68、你所知道的集合类都有哪些?主要方法? 69、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 70、TreeSet里面放对象,如果同放入了父类和子类的实例对象,那比较使用的是父类的compareTo方法,还是使用的子类的compareTo方法,还是抛异常! 71、说出一些常用的类,包,接口,请各举5个 72、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 73、字节流与字符流的区别 74、什么是java序列化,如何实现java序列化?或者请解释Serializable接口的作用。 75、描述一下JVM加载class文件的原理机制? 76、heap和stack有什么区别。 77、GC是什么? 为什么要有GC? 78、垃圾回收的优点和原理。并考虑2种回收机制。 79、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 80、什么候用assert。 81、java中会存在内存泄漏吗,请简单描述。 82、能不能自己写个类,也叫java.lang.String? 83. Java代码查错
java面试试题 全面 准确 带答案 coreJava部分 8 1、面向对象的特征有哪些方面? 8 2、作用域public,private,protected,以及不写的区别? 8 3、String 是最基本的数据类型吗? 8 4、float 型float f=3.4是否正确? 8 5、语句float f=1.3;编译能否通过? 8 6、short s1 = 1; s1 = s1 + 1;有什么错? 8 7、Java 有没有goto? 8 8、int 和Integer 有什么区别? 9 9、&和&&的区别? 9 10、简述逻辑操作(&,|,^)与条件操作(&&,||)的区别? 9 11、heap 和stack 有什么区别? 9 12、Math.round(11.5) 等于多少? Math.round(-11.5)等于多少? 9 13、swtich 是否能作用在byte 上,是否能作用在long 上,是否能作用在String上? 9 14、编程题: 用最有效率的方法算出2 乘以8 等於几? 9 15、有没有length()这个方法? String 有没有length()这个方法? 9 16、在JAVA 中,如何跳出当前的多重嵌套循环? 9 17、构造器Constructor 是否可被override? 9 18、两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对? 9 19、是否可以继承String 类? 9 20、以下二条语句返回值为true 的有: 10 21、当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 10 22、我们在web 应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 10 23、String 和StringBuffer 的区别? 10 24、String, StringBuffer StringBuilder 的区别。 10 25、Overload 和Override 的区别。Overloaded 的方法是否可以改变返回值的类型? 10 27、描述一下JVM 加载class 文件的原理机制? 10 28、char 型变量中能不能存贮一个中文汉字?为什么? 10 29、abstract class 和interface 有什么区别? 10 30、Static Nested Class 和Inner Class 的不同? 11 31、java 中会存在内存泄漏吗,请简单描述。 11 32、abstract 的method 是否可同是static,是否可同是native,是否可同是synchronized? 11 33、静态变量和实例变量的区别? 11 34、是否可以从一个static 方法内部发出对非static 方法的调用? 11 35、写clone()方法,通常都有一行代码,是什么? 11 36、GC 是什么? 为什么要有GC? 11 37、垃圾回收的优点和原理。并考虑2 种回收机制。 11 38、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 12 39、String s=new String(“xyz”);创建了几个String Object? 12 40、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)? 12 41、Java 的接口和C++的虚类的相同和不同处。 12 42、一个“.java”源文件中是否可以包含多个类(不是内部类)?有什么限制? 12 43、说出一些常用的类,包,接口,请各举5 个。 12 44、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类?是否可以implements(实现)interface(接口)? 12 45、内部类可以引用他包含类的成员吗?有没有什么限制? 12 46、java 中实现多态的机制是什么? 12 47、在java 中一个类被声明为final 类型,表示了什么意思? 12 48、下面哪些类可以被继承? 12 49、指出下面程序的运行结果: 【基础】 13 52、关于内部类: 13 53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔。 14 59、Java 编程,打印昨天的当前刻。 15 60、java 和javasciprt 的区别。 15 61、什么候用assert? 16 62、error和exception有什么区别 16 63、ArrayList和Vector的区别 16 64、Collection 和 Collections的区别 17 65、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别 17 66、HashMap和Hashtable的区别 17 67、说出ArrayList,Vector, LinkedList的存储性能和特性 17 68、java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? 17 69、文件读写的基本类 17 70、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 17 71、启动一个线程是用run()还是start()? 17 72、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 18 73、线程的基本概念、线程的基本状态以及状态之间的关系 18 74、sleep() 和 wait() 有什么区别? 18 75、socket通信(tcp/udp区别及JAVA的实现方式) 18 76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private String name; public abstract boolean isStupidName(String name) {}}这有何错误? 18 79、public class Something { void doSomething () { private String s = ""; int l = s.length(); } }有错吗? 18 80、abstract class Something { private abstract String doSomething ();}这好像没什么错吧? 18 81、public class Something { public int addOne(final int x) { return ++x; }}这个比较明显。 19 83、class Something { int i; public void doSomething() { System.out.println("i = " + i); }} 有什么错呢? 19 Hibernate部分 19 92、一般情况下,关系数据模型与对象模型之间有哪些匹配关系(A,B,C) 21 93、以下关于SessionFactory的说法哪些正确?(B,C) 21 94、元素有一个cascade属性,如果希望Hibernate级联保存集合中的对象,casecade属性应该取什么值?(单选)(D) 22 95、以下哪些属于Session的方法?(A,B,C,D,F) 22 96、Hibernate工作原理及为什么要用? 22 97、Hibernate是如何延迟加载? 22 98、Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 22 99、说下Hibernate的缓存机制 22 100、Hibernate的查询方式 23 101、如何优化Hibernate? 23 102、Struts工作机制?为什么要使用Struts? 23 103、Struts的validate框架是如何验证的? 24 104、说下Struts的设计模式 24 105、spring工作机制及为什么要用? 24 106、HttpSession session = request.getSession() 24 107、getParameter与 getAttribute的区别? 24 108、以下哪一个不是赋值符号? 25 109、以下哪个不是Collection的子接口? 25 110、.BufferedReader的父类是以下哪个? 25 112、div与span区别? 25 113、html的框架是什么? 25 114、alert怎样换行? 25 115、什么情况用HTML控件,什么情况用WEB控件,并比较两者差别 25 javaScript部分 25 116、JavaScript中的对象. 25 117、function的用法 26 118、对象的继承 27 119、this的用法 29 120、Array in JavaScript 29 121、jsp有哪些内置对象?作用分别是什么? 31 122、jsp有哪些动作?作用分别是什么? 31 123、JSP中动态INCLUDE与静态INCLUDE的区别? 31 124、两种跳转方式分别是什么?有什么区别? 31 125、如何执行一个线程安全的JSP? 31 126、JSP如何处理HTML FORM中的数据? 31 127、在JSP如何包含一个静态文件? 32 128、在JSP中如何使用注释? 32 129、在JSP中如何执行浏览重定向? 32 130、如何防止在JSP或SERVLET中的输出不被BROWSER保存在CACHE中? 32 131、在JSP中如何设置COOKIE? 32 132、在JSP中如何删除一个COOKIE? 32 133、在一个JSP的请求处理中如何停止JSP的执行 33 134、在JSP中如何定义方法 33 135、在JSP中能发送EMAIL吗 34 136、在SERVLET中我能调用一个JSP错误页吗 34 137、APPLET和JSP如何通讯 35 138、JSP如何与EJB SessionBean通讯 35 139、当我使用一个结果集,如何防止字段为"null"的字域显示在我的HTML输入文本域中? 35 140、如何中SERVLET或JSP下载一个文件(如:binary,text,executable)? 36 141、使用useBean标志初始化BEAN如何接受初始化参数 36 142、使用JSP如何获得客户浏览器的信息? 36 143、能象调用子程序一样调用JSP吗? 36 144、当我重编译我的JSP使用的一个类后,为什么JVM继续使用我的老CLASS? 36 145、<%@include file="abc.jsp"%>与<jsp:include page="abc.jsp"/>之间的差别? 36 146、JSP的缺点? 36 148、如何实现JSP的国际化? 36 150、如何在JSP中包括绝对路径文件? 使用URLConnection即可。 37 151、在servlets和JSP之间能共享session对象吗? 37 152、如何设置cookie在某一间后过期? 37 153、如何获得当前的sessions数? 37 154、能设置一些代码在我所有的JSP文件之上运行?如果可以,能共享吗? 37 155、对一个JSP页,如果多个客户端同请求它,同步可能吗? 37 156、在jsp:useBean语法中使用beanName有何好处? 37 157、当我使用<jsp:forward>,在浏览器的地址栏没有改变? 37 158、如何转换JSP 0.9版本的文件到JSP1.1? 37 160、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 38 161、AJAX的全称是什么? 介绍一下AJAX 38 162、Ajax主要包含了哪些技术? 38 163、主要的Ajax框架都有什么? 38 164、介绍一下XMLHttpRequest对象 38 165、AJAX应用和传统Web应用有什么不同? 38 166、如何用JQuery进行表单验证? 39 167、Prototype如何实现页面局部定刷新? 40 168、Prototype如何为一个Ajax添加一个参数? 40 169、Ajax请求总共有多少种Callback? 41 170、Javascript如何发送一个Ajax请求? 41 171、AJAX都有哪些有点和缺点? 41 172、Ajax和javascript的区别? 41 Servlet部分 42 174、JAVA SERVLET API中forward() 与redirect()的区别? 42 178、如何现实servlet的单线程模式 42 179、页面间对象传递的方法 42 180、JSP和Servlet有哪些相同点和不同点,他们之间的联系是什么? 42 181、四种会话跟踪技术 42 182、Request对象的主要方法 43 183、我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串? 43 184、Servlet执行一般实现哪几个方法? 44 185、getServletContext()和getServletConfig()的意思 44 186、Hashtable和HashMap 44 187、JAVA SERVLET API中forward() 与redirect()的区别? 44 189、Can a Java Thread be started from Servlet class, and what will be the implications? 45 190、What is HTTP Session tracking and why is it important? 45 191、What is session management, and how is it different from session tracking? 45 192、Can I use Hidden form field to track session? 45 194、In a architecture pattern like MVC, it is mandatory that Servlet should be the controller, why not JSP? 46 195、Why JSP is used as View part of MVC ? 46 196、Can a database connection pool be instantiated in init method of servlet instead of server connection pool? What will be the problem? 46 综合部分 46 197、Class.forName的作用?为什么要用? 47 198、Jdo是什么? 47 199、在ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。 47 200、xml有哪些解析技术?区别是什么? 48 201、你在项目中用到了xml技术的哪些方面?如何实现的? 48 202、用jdom解析xml文件如何解决中文问题?如何解析? 48 203、编程用JAVA解析XML的方式. 49 204、EJB2.0有哪些内容?分别用在什么场合? EJB2.0和EJB1.1的区别? 51 205、EJB与JAVA BEAN的区别? 51 206、EJB的基本架构 51 207、MVC的各个部分都有那些技术来实现?如何实现? 52 208、J2EE是什么? 52 209、WEB SERVICE名词解释。JSWDL开发包的介绍。JAXP、JAXM的解释。SOAP、UDDI,WSDL解释。 52 210、STRUTS的应用(如STRUTS架构) 52 211、开发中都用到了那些设计模式?用在什么场合? 52 212、UML方面 52 213、如何校验数字型? 53 214、CORBA是什么?用途是什么? 53 215、写一个方法,实现字符串的反转,如:输入abc,输出cba 53 216、数据类型之间的转换 53 217、如何取得年月日,小分秒 53 218、如何取得从1970年到现在的毫秒数 53 219、如何格式化日期 53 220、文件和目录(I/O)操作 54 230、J2EE的优越性 54 231、Java语言的11个关键特性. 54 232、说出Servlet的生命周期,并说出Servlet和CGI的区别。 55 233、说出在JSP页面里是怎么分页的? 55 234、存储过程和函数的区别 55 235、事务是什么? 55 236、游标的作用?如何知道游标已经到了最后? 55 237、触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。 56 238、EJB容器提供的服务 56 239、EJB的角色和三个对象 56 240、EJB的几种类型 56 241、bean 实例的生命周期 56 242、激活机制 56 243、remote接口和home接口主要作用 56 244、客服端调用EJB对象的几个基本步骤 56 245、 如何给weblogic指定大小的内存? 56 246、如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 57 247、如何启动不需输入用户名与密码? 57 248、在weblogic管理制台中对一个应用域(或者说是一个网站,Domain)进行jms及ejb或连接池等相关信息进行配置后,实际保存在什么文件中? 57 250、如何查看在weblogic中已经发布的EJB? 57 251、如何在weblogic中进行ssl配置与客户端的认证配置或说说j2ee(标准)进行ssl的配置 57 252、在weblogic中发布ejb需涉及到哪些配置文件 57 253、EJB需直接实现它的业务接口或Home接口吗,请简述理由. 57 254、说说在weblogic中开发消息Bean的persistent与non-persisten的差别 57 255、说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法 57 256、现在输入n个数字,以逗号,分开; 58 257、金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)->(一千零一拾一元整)输出。 58 259、Spring和Struts的区别? 58 260、如何用Struts实现国际化? 58 261、如何实现struts的validator框架? 59 262、如何在struts中配置数据源在,什么文件?用什么标签?如何取出DataSource? 60 263、Struts框架如何取得消息资源文件中的信息? 60 264、Struts中如何基于validation.xml来启用客户端验证? 60 266、请你谈谈SSH整合 60 267、ActionForm bean的作用 61 268、Spring如何创建一个数据连接池 61 269、Spring如何配置一个bean来从JNDI得到DataSource 61 270、Bean的销毁 61 271、Spring如何获取Bean 61 272、Spring和Struts的区别? 62 273、什么是aop,aop的作用是什么? 62 275、依赖注入的方式有几种,各是什么? 62 276、spring中的核心类有那些,各有什么作用? 62 277、ApplicationContext的作用 63 278、如何实现资源管理 63 279、如何实现加入web框架中 63 280、如何实现事件处理 63 281、spring的ioc及di代表什么意思? 63 283、spring的配置的主要标签是什么?有什么作用? 64 284、spring与ejb2.0的事务管理比较的优缺点? 64 286、在spring中有几种事务管理,分别是什么? 64 287、在spring中如何配代码的事务管理? 65 288、在spring中如何配容器的事务管理,相关的类有那些? 65 289、如果spring与hibernate结合在一起可以不需要hibernate.cfg.xml文件是否正确? 65 290、spring+hibernate的配置文件中的主要类有那些?如何配置? 65 291、spring+hibernate的代码实现中,对于实现类一定继承于一个类是那一个,它有什么作用 66 292、如何配置spring+struts? 66 293、如何在web环境中配置applicationContext.xml文件? 66 294、BS与CS的联系与区别 66 295、Servlet的生命周期 68 296、如何现实Servlet的单线程模式 68 297、Servlet执行一般实现哪几个方法? 68 298、j2ee常用的设计模式?说明工厂模式。 68 299、应用服务器与WEB SERVER的区别? 68 300、应用服务器有那些? 68 301、说出数据连接池的工作机制是什么? 68 302、页面间对象传递的方法 69 303、四种会话跟踪技术 69 304、J2EE 是技术还是平台还是框架? 69 305、同步和异步有何异同,在什么情况下分别使用他们?举例说明。 69 306、启动一个线程是用run()还是start()? 69 307、线程的基本概念、线程的基本状态以及状态之间的关系 69 308、java 中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 70 309、JSP中动态INCLUDE与静态INCLUDE的区别? 70 310、JSP的常用指令 70 311、什么情况下调用doGet()和doPost()? 70 312、JSP和Servlet 有哪些相同点和不同点,他们之间的联系是什么? 70 313、Request对象的主要方法: 70 314、JSP有哪些动作?作用分别是什么? 71 315、JSP的两种跳转方式分别是什么?有什么区别? 71 316、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 71 317、EJB与JAVA BEAN的区别? 72 318、EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的? 72 319、EJB规范规定EJB中禁止的****作有哪些? 72 320、remote接口和home接口主要作用 72 321、bean 实例的生命周期 72 322、EJB的激活机制 73 323、EJB的几种类型 73 324、客服端调用EJB对象的几个基本步骤 73 325、EJB需直接实现它的业务接口或Home接口吗,请简述理由。 73 327、说说在weblogic中开发消息Bean的persistent与non-persisten的差别 73 328、你在项目中用到了xml技术的哪些方面?如何实现的? 73 329、JAVA SERVLET API中forward() 与redirect()的区别? 73 330、面向对象的特征? 73 331、Java中的异常处理机制? 74 333、Java中的事件处理机制? 74 334、垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收? 75 335、GC是什么?为什么要有GC (基础) ? 75 336、请说出你所知道的线程同步的方法。 75 337、什么是Java序列化,如何实现Java 序列化? 75 338、介绍Java中的Collection Framework(包括如何写自己的数据结构)? 75 339、String是最基本的数据类型吗? 76 340、谈谈final, finally, finalize 的区别? 76 341、Static Nested Class 和Inner Class的不同? 76 342、HashMap和Hashtable的区别? 76 343、ArrayList和Vector的区别? 76 344、Collection 和Collections的区别? 77 345、Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? 77 346、String与StringBuffer的区别? 77 347、静态变量和实例变量的区别? 77 348、List、Map、Set三个接口,存取元素,各有什么特点? 77 349、说出ArrayList,Vector, LinkedList的存储性能和特性。 77 350、在Java中一个类被声明为final类型,表示了什么意思? 77 351、Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)? 77 352、String s = new String("xyz");创建了几个String Object? 77 353、Math.round(11.5)等於多少? Math.round(-11.5)等於多少? 77 354、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? 78 355、数组有没有length()这个方法? String 有没有length()这个方法? 78 356、Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? 78 357、List, Set, Map是否继承自Collection接口? 78 358、abstract的method是否可同是static,是否可同是native,是否可同是synchronized? 78 360、构造器Constructor是否可被override? 78 361、当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 78 362、try {}里有一个return 语句,那么紧跟在这个try后的finally {}里的code 会不会被执行,什么候被执行,在return前还是后? 78 363、描述一下JVM加载class文件的原理机制? 78 364、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么? 78 365、Java中会存在内存泄漏吗,请简单描述。 78 366、是否可以从一个static方法内部发出对非static方法的调用? 79 367、写clone()方法,通常都有一行代码,是什么? 79 368、在Java中,如何跳出当前的多重嵌套循环? 79 370、给我一个你最常见到的runtime exception。 79 371、写一个Singleton出来 79 372、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示? 80 373、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在 COLLECTION框架中,实现比较要实现什么样的接口? 81 374、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 82 380、ArrayList和Vector的区别, HashMap和Hashtable的区别 83 381、== 与 equals 的区别: 83 382、写一个 SQL Server 中的存储过程: 83 383、写一个 Oracle 中的存储过程: 84 384、HTTP 的请求过程: 84 385、多线程的优点 84 387、java是否存在内存泄露 85 388、Corba概述 85 389、toString方法的概述 85 390、Object类的概述 85 391、什么叫抽象类?抽象类跟接口有什么区别?为什么引进数据接口概念? 85 392、doGet与doPut的区别? 85 393、多线程实现有那几种方法,同步有哪几种方法? 85 394、JSP页面的跳转? 86 395、类变量的初始化 86 396、数组的定义 86 397、说明List和Set的区别 86
超级有影响力的Java面试题大全文档 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4. 多态性:  多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。 5、String是最基本的数据类型吗?  基本数据类型包括byte、int、char、long、float、double、boolean和short。  java.lang.String类是final类型的,因此不可以继承这个类、不能修改这个类。为了提高效率节省空间,我们应该用StringBuffer类 6、int 和 Integer 有什么区别  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。 原始类型 封装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float double Double  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。 7、String 和StringBuffer的区别  JAVA平台提供了两个类:String和StringBuffer,它们可以储存和操作字符串,即包含多个字符的字符数据。这个String类提供了数值不可改变的字符串。而这个StringBuffer类提供的字符串进行修改。当你知道字符数据要改变的候你就可以使用StringBuffer。典型地,你可以使用 StringBuffers来动态构造字符数据。 8、运行异常与一般异常有何异同?  异常表示程序运行过程中可能出现的非正常状态,运行异常表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行异常,但是并不要求必须声明抛出未被捕获的运行异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。  Servlet被服务器实例化后,容器运行其init方法,请求到达运行其service方法,service方法自动派遣运行与请求对应的doXXX方法(doGet,doPost)等,当服务器决定将实例销毁的候调用其destroy方法。 与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。 10、说出ArrayList,Vector, LinkedList的存储性能和特性  ArrayList 和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector由于使用了synchronized方法(线程安全),通常性能上较ArrayList差,而LinkedList使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据只需要记录本项的前后项即可,所以插入速度较快。 11、EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别,StatefulBean和StatelessBean的区别。 EJB包括Ses

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值