﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-AIRDREAM-随笔分类-JAVA</title><link>http://www.blogjava.net/airdream/category/6558.html</link><description>JAVA DIARY</description><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 14:50:45 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 14:50:45 GMT</pubDate><ttl>60</ttl><item><title>国内digg网站大收集</title><link>http://www.blogjava.net/airdream/archive/2006/11/26/83630.html</link><dc:creator>AIRDREAM</dc:creator><author>AIRDREAM</author><pubDate>Sun, 26 Nov 2006 08:45:00 GMT</pubDate><guid>http://www.blogjava.net/airdream/archive/2006/11/26/83630.html</guid><wfw:comment>http://www.blogjava.net/airdream/comments/83630.html</wfw:comment><comments>http://www.blogjava.net/airdream/archive/2006/11/26/83630.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/airdream/comments/commentRss/83630.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/airdream/services/trackbacks/83630.html</trackback:ping><description><![CDATA[
		<p>酷宝 <a href="http://qopo.net/" target="_blank">http://qopo.net(<font color="#ff0000">推荐</font>)</a><br />新崛起的中文Digg，人气很旺<br /></p>
		<p>奇客网 <a href="http://diglog.com/%C2%A0" target="_blank">http://diglog.com/ （<font color="#ff3300">推荐</font>）</a><br />奇客发现 有趣新鲜<br /><br />窝窝网 <a href="http://www.mywowo.com/%C2%A0" target="_blank">http://www.mywowo.com/ </a><br />用Digg+点评方式来介绍web2.0的网站<br /><br />板儿砖 <a href="http://www.banerzhuan.com/" target="_blank">http://www.banerzhuan.com/</a><br />相当有创意的digg式网站。<br /><br />新聚网 <a href="http://www.tagriver.com/%C2%A0" target="_blank">http://www.tagriver.com/ </a><br />博客时代的新型交流<br /><br />顶啊网 <a href="http://www.dingr.com/%C2%A0" target="_blank">http://www.dingr.com/ </a><br />关于科技的头版新闻<br /><br />抓虾网 <a href="http://www.zhuaxia.com/%C2%A0" target="_blank">http://www.zhuaxia.com/ </a><br />集rss订阅和digg挖掘为一体。<br /><br />比客窝<a href="http://www.pkooo.com/" target="_blank">http://www.pkooo.com/</a><br />以资讯为主的PK新闻<br /><br />电影发现 <a href="http://www.new21.cn/%C2%A0" target="_blank">http://www.new21.cn/ </a><br />电影发现·分享<br /><br />爱发现 <a href="http://www.ifaxian.com/%C2%A0" target="_blank">http://www.ifaxian.com/ </a><br />依靠社区的力量找出网上有阅读价值的内容<br /><br />新热网 <a href="http://www.newhots.com/%C2%A0" target="_blank">http://www.newhots.com/ </a><br />针对技术，BT资源，娱乐的网摘网站<br /><br />教育资源挖掘 <a href="http://www.edudig.net/%C2%A0" target="_blank">http://www.edudig.net/ </a><br />发掘互联网上有价值的教育资源<br /><br />17DIG网 <a href="http://www.17dig.com/%C2%A0" target="_blank">http://www.17dig.com/ </a><br />发掘IT新闻，草根们的新闻<br /><br />中国掘客 <a href="http://www.cndigg.com/%C2%A0" target="_blank">http://www.cndigg.com/ </a><br />完全是digg.com的中文版<br /><br />vottie 熱門影片<br /><a href="http://www.vottie.com/" target="_blank">http://www.vottie.com/</a><br />短片、熱門影片<br /><br />发掘之狐<br /><a href="http://www.diggfox.com/" target="_blank">http://www.diggfox.com/</a><br />发掘之狐<br /><br />livedigg|digg直播 <br /><a href="http://www.livedigg.com/" target="_blank">http://www.livedigg.com/</a><br />发掘网络上的新东西<br /><br />奇乐无穷 <br /><a href="http://www.qlwq.com/" target="_blank">http://www.qlwq.com/</a><br />web2.0留学社区，Digg贴吧模式,国内首创!<br /><br />Buzzc<br /><a href="http://www.buzzc.com/" target="_blank">http://www.buzzc.com/</a><br />汇集网络最热门</p>
		<p>Web2.0网站集合</p>
		<p>
				<a href="http://www.web2list.cn/" target="_blank">http://www.web2list.cn/</a>
		</p>
<img src ="http://www.blogjava.net/airdream/aggbug/83630.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/airdream/" target="_blank">AIRDREAM</a> 2006-11-26 16:45 <a href="http://www.blogjava.net/airdream/archive/2006/11/26/83630.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tapestry+Ibatis+Spring  写的Digg网站。效果不错！</title><link>http://www.blogjava.net/airdream/archive/2006/11/14/81100.html</link><dc:creator>AIRDREAM</dc:creator><author>AIRDREAM</author><pubDate>Tue, 14 Nov 2006 04:53:00 GMT</pubDate><guid>http://www.blogjava.net/airdream/archive/2006/11/14/81100.html</guid><wfw:comment>http://www.blogjava.net/airdream/comments/81100.html</wfw:comment><comments>http://www.blogjava.net/airdream/archive/2006/11/14/81100.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/airdream/comments/commentRss/81100.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/airdream/services/trackbacks/81100.html</trackback:ping><description><![CDATA[Tapestry + Ibatis + Spring 写的 Digg 类网站。虽然功能不是很全，但基本的digg功能已经全部都实现了，只是没有添加web2.0元素，不过已经是一个不错的digg类中文网站了，界面还可以。大家可以看一看，说不定这个小网站以后会很火的，抢到先机了！<br />站名：酷宝<br />地址：<a href="http://qopo.net">http://qopo.net</a><br /><img src ="http://www.blogjava.net/airdream/aggbug/81100.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/airdream/" target="_blank">AIRDREAM</a> 2006-11-14 12:53 <a href="http://www.blogjava.net/airdream/archive/2006/11/14/81100.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>spring+velocity自动发送邮件 </title><link>http://www.blogjava.net/airdream/archive/2006/07/12/57760.html</link><dc:creator>AIRDREAM</dc:creator><author>AIRDREAM</author><pubDate>Wed, 12 Jul 2006 02:58:00 GMT</pubDate><guid>http://www.blogjava.net/airdream/archive/2006/07/12/57760.html</guid><wfw:comment>http://www.blogjava.net/airdream/comments/57760.html</wfw:comment><comments>http://www.blogjava.net/airdream/archive/2006/07/12/57760.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/airdream/comments/commentRss/57760.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/airdream/services/trackbacks/57760.html</trackback:ping><description><![CDATA[
		<table class="content" cellspacing="0" cellpadding="2" width="95%" border="0">
				<tbody>
						<tr>
								<td align="middle">
										<font size="5">
												<span class="p19">
														<b>spring+velocity自动发送邮件</b>
												</span>
												<br />
										</font>
								</td>
						</tr>
						<tr>
								<td>
										<div class="content" style="TABLE-LAYOUT: fixed; WORD-WRAP: break-word">
												<br />
												<br />
												<span class="content">1.下载spring及velocity类库，<br /><br />email配置文件：mail.properties：<br />mail.default.from=jfishsz@163.com<br />mail.host=smtp.163.com<br />mail.username=xxxxxx<br />mail.password=xxxxxx<br />mail.smtp.auth=true<br />mail.smtp.timeout=25000<br /><br />spring配置文件：applicationContext.xml<br />&lt;?xml version="1.0" encoding="UTF-8"?&gt;<br />&lt;!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"<br />  "<a href="http://www.springframework.org/dtd/spring-beans.dtd" target="_blank"><font color="#666666">http://www.springframework.org/dtd/spring-beans.dtd</font></a>"&gt;<br /><br />&lt;beans&gt;<br />    &lt;!-- For mail settings and future properties files --&gt;<br />    &lt;bean id="propertyConfigurer"<br />        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"&gt;<br />        &lt;property name="locations"&gt;<br />              &lt;list&gt;<br />                  &lt;value&gt;classpath:mail.properties&lt;/value&gt;<br />              &lt;/list&gt;<br />        &lt;/property&gt;<br />    &lt;/bean&gt;<br />    &lt;bean id="mailSender"<br />        class="org.springframework.mail.javamail.JavaMailSenderImpl"&gt;<br />        &lt;property name="host"&gt;<br />              &lt;value&gt;${mail.host}&lt;/value&gt;<br />        &lt;/property&gt;<br />        &lt;property name="username"&gt;<br />              &lt;value&gt;${mail.username}&lt;/value&gt;<br />        &lt;/property&gt;<br />        &lt;property name="password"&gt;<br />              &lt;value&gt;${mail.password}&lt;/value&gt;<br />        &lt;/property&gt;<br />        &lt;property name="javaMailProperties"&gt;<br />              &lt;props&gt;<br />                  &lt;prop key="mail.smtp.auth"&gt;${mail.smtp.auth}&lt;/prop&gt;<br />                  &lt;prop key="mail.smtp.timeout"&gt;<br />                      ${mail.smtp.timeout}<br />                  &lt;/prop&gt;<br />              &lt;/props&gt;<br />        &lt;/property&gt;<br />    &lt;/bean&gt;<br />    &lt;bean id="mailMessage"<br />        class="org.springframework.mail.SimpleMailMessage"<br />        singleton="false"&gt;<br />        &lt;property name="from"&gt;<br />              &lt;value&gt;${mail.default.from}&lt;/value&gt;<br />        &lt;/property&gt;<br />        <br />    &lt;/bean&gt;<br />    &lt;bean id="sendMail" class="net.pms.email.SendMail"&gt;<br />        &lt;property name="mailSender" ref="mailSender" /&gt;<br />        &lt;property name="message" ref="mailMessage" /&gt;<br />        &lt;property name="velocityEngine" ref="velocityEngine" /&gt;<br />    &lt;/bean&gt;<br />    &lt;!-- Configure Velocity for sending e-mail --&gt;<br />    &lt;bean id="velocityEngine"<br />        class="org.springframework.ui.velocity.VelocityEngineFactoryBean"&gt;<br />        &lt;property name="velocityProperties"&gt;<br />              &lt;props&gt;<br />                  &lt;prop key="resource.loader"&gt;class&lt;/prop&gt;<br />                  &lt;prop key="class.resource.loader.class"&gt;<br />                      org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader<br />                  &lt;/prop&gt;<br />                  &lt;prop key="velocimacro.library"&gt;&lt;/prop&gt;<br />              &lt;/props&gt;<br />        &lt;/property&gt;<br />    &lt;/bean&gt;<br />&lt;/beans&gt;<br />velocity模板文件：accountCreated.vm：<br />${message}<br /><br />Username: ${username}<br />Password: ${Password}<br /><br />Login at: ${applicationURL}<br /><br />2.实现类<br />SendMail.java<br />package net.pms.email;<br /><br />import java.util.Map;<br /><br />import org.apache.commons.logging.Log;<br />import org.apache.commons.logging.LogFactory;<br />import org.apache.velocity.app.VelocityEngine;<br />import org.apache.velocity.exception.VelocityException;<br />import org.springframework.mail.MailSender;<br />import org.springframework.mail.SimpleMailMessage;<br />import org.springframework.ui.velocity.VelocityEngineUtils;<br /><br />public class SendMail {<br />    protected static final Log log = LogFactory.getLog(SendMail.class);<br /><br />    private MailSender mailSender;<br /><br />    private SimpleMailMessage message;<br /><br />    private VelocityEngine velocityEngine;<br /><br />    public void setVelocityEngine(VelocityEngine velocityEngine) {<br />        this.velocityEngine = velocityEngine;<br />    }<br /><br />    public void setMailSender(MailSender mailSender) {<br />        this.mailSender = mailSender;<br />    }<br /><br />    public void setMessage(SimpleMailMessage message) {<br />        this.message = message;<br />    }<br /><br />    public void sendEmail(Map model) {<br />        message.setTo("<a href="mailto:jfishsz@163.com"><font color="#666666">jfishsz@163.com</font></a>");<br />        message.setSubject("subject");<br />        String result = null;<br />        try {<br />              result = VelocityEngineUtils.mergeTemplateIntoString(<br />                      velocityEngine, "accountCreated.vm", model);<br />        } catch (VelocityException e) {<br />              e.printStackTrace();<br />        }<br />        message.setText(result);<br />        mailSender.send(message);<br />    }<br />}<br />测试类：SendMailTest.java<br />package net.pms.email;<br /><br />import java.util.HashMap;<br />import java.util.Map;<br /><br />import junit.framework.TestCase;<br /><br />import org.springframework.context.ApplicationContext;<br />import org.springframework.context.support.ClassPathXmlApplicationContext;<br /><br />public class SendMailTest extends TestCase {<br />    String[] paths = { "config/applicationContext*.xml" };<br /><br />    ApplicationContext ctx = new ClassPathXmlApplicationContext(paths);<br /><br />    SendMail s = (SendMail) ctx.getBean("sendMail");<br /><br />    protected void setUp() throws Exception {<br />        super.setUp();<br />    }<br /><br />    protected void tearDown() throws Exception {<br />        super.tearDown();<br />    }<br /><br />    /*<br />    * Test method for 'net.pms.email.SendMail.sendEmail(Map)'<br />    */<br />    public void testSendEmail() {<br />        Map model = new HashMap();<br />        model.put("message", "msg");<br />        model.put("username", "jack");<br />        model.put("Password", "666666");<br />        model.put("applicationURL", "<a href="http://www.163.com/" target="_blank"><font color="#666666">www.163.com</font></a>");<br />        s.sendEmail(model);<br />    }<br /><br />}<br />这只是一个简单的实现介绍，我想通过这个例子进入通往javamail的大门。<br /></span>
										</div>
								</td>
						</tr>
				</tbody>
		</table>原文：<a href="http://jfish.blog.ccidnet.com/blog/ccid/do_showone/tid_18513.html">http://jfish.blog.ccidnet.com/blog/ccid/do_showone/tid_18513.html</a><img src ="http://www.blogjava.net/airdream/aggbug/57760.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/airdream/" target="_blank">AIRDREAM</a> 2006-07-12 10:58 <a href="http://www.blogjava.net/airdream/archive/2006/07/12/57760.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java面试题集锦 四辑</title><link>http://www.blogjava.net/airdream/archive/2006/01/05/26810.html</link><dc:creator>AIRDREAM</dc:creator><author>AIRDREAM</author><pubDate>Thu, 05 Jan 2006 15:40:00 GMT</pubDate><guid>http://www.blogjava.net/airdream/archive/2006/01/05/26810.html</guid><wfw:comment>http://www.blogjava.net/airdream/comments/26810.html</wfw:comment><comments>http://www.blogjava.net/airdream/archive/2006/01/05/26810.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/airdream/comments/commentRss/26810.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/airdream/services/trackbacks/26810.html</trackback:ping><description><![CDATA[应用服务器与WEB SERVER的区别？      　<br> 

JAVA SERVLET API中forward() 与sendRedirect()的区别？<br> 

forward()方法可以使用原来的对象，而且速度较快。地址栏不变化。只能在本机内的页面间跳转。<br> 
redirect()方法不可以使用原来的对象，而且速度较慢。地址栏变化。可以跳转到任何页面和机器。<br> 

:前者仅是容器中控制权的转向，在客户端浏览器地址栏中不会显示出转向后的地址；后者则是完全的跳转，浏览器将会得到跳转的地址，并重新发送请求链接。这样，从浏览器的地址栏中可以看到跳转后的链接地址。所以，前者更加高效，在前者可以满足需要时，尽量使用forward()方法，并且，这样也有助于隐藏实际的链接。在有些情况下，比如，需要跳转到一个其它服务器上的资源，则必须使用sendRedirect()方法。 <br> 

STRUTS的应用(如STRUTS架构)<br> 
Struts框架的处理流程清楚的体现了MVC系统的特点， Struts Controller ActionServlet处理客户请求，利用配置的ActionMapping对象把请求映射到Action处理器对象进行处理。Action处理对象访问ActionForm中的数据，处理和响应客户请求，它还调用后台的Bean组件，这些组件封装了具体的业务逻辑。Action处理器对象根据处理结果通知Controller，Controller进行下一步的处理。<br> 
Struts是采用Java Servlet/JavaServer Pages技术，开发Web应用程序的开放源码的framework。 采用Struts能开发出基于MVC(Model-View-Controller)设计模式的应用构架。 Struts有如下的主要功能： <br> 
一.包含一个controller servlet，能将用户的请求发送到相应的Action对象。 <br> 
二.JSP自由tag库，并且在controller servlet中提供关联支持，帮助开发员创建交互式表单应用。 <br> 
三.提供了一系列实用对象：XML处理、通过Java reflection APIs自动处理JavaBeans属性、国际化的提示和消息。<br> 

MVC的各个部分都有那些技术来实现?如何实现? <br> 

答:MVC是Model－View－Controller的简写。"Model" 代表的是应用的业务逻辑（通过JavaBean，EJB组件实现）， "View" 是应用的表示面（由JSP页面产生），"Controller" 是提供应用的处理过程控制（一般是一个Servlet），通过这种设计模型把应用逻辑，处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用。 <br> 

一个网页有以下html代码片断<br> 

<form action=”a.jsp” method=”post”>

年龄：<input type=”text” name=”age”>
<br>
<input type=”submit” value=”提交”>
</form>
<br> 
在a.jsp中，获取用户提交的age参数，如果年龄大于100或是小于等于0，则显示“年龄不正确”的信息，否则输出“你的年龄为：xx岁”的信息。<br> 
请写出a.jsp中完成这部分处理的代码片断。（请注意处理过程中的一些异常Exception）<br> 


有以下jsp代码片断<br> 

If(isTrue())<br> 

{<br> 

       Response.sendRedirect(“/index.html”);<br> 

}<br> 

System.out.println(“继续执行”);<br> 

 

我们希望，如果isTrue()为真，则中止程序运行，直接跳转到/index.html。但是在程序执行过程中，会继续执行后面输出“继续执行”的代码呢？ <br> 


jsp有哪些内置对象?作用分别是什么? <br> 

JSP共有以下9种基本内置组件<br> 
request 用户端请求，此请求会包含来自GET/POST请求的参数 <br> 
response 网页传回用户端的回应 <br> 
pageContext 网页的属性是在这里管理 <br> 
session 与请求有关的会话期 <br> 
application servlet 正在执行的内容 <br> 
out 用来传送回应的输出 <br> 
config servlet的构架部件 <br> 
page JSP网页本身 <br> 
exception 针对错误网页，未捕捉的例外 <br> 

jsp有哪些动作?作用分别是什么? <br> 

JSP共有以下6种基本动作 <br> 

jsp:include：在页面被请求的时候引入一个文件。 <br> 
jsp:useBean：寻找或者实例化一个JavaBean。 <br> 
jsp:setProperty：设置JavaBean的属性。 <br> 
jsp:getProperty：输出某个JavaBean的属性。 <br> 
jsp:forward：把请求转到一个新的页面。 <br> 
jsp:plugin：根据浏览器类型为Java插件生成OBJECT或EMBED标记 <br> 

JSP中动态INCLUDE与静态INCLUDE的区别？ <br> 

动态INCLUDE用jsp:include动作实现 <br> 
<jsp:include page="included.jsp" flush="true" />它总是会检查所含文件中的变化，适合用于包含动态页面，并且可以带参数 <br> 
静态INCLUDE用include伪码实现,定不会检查所含文件的变化，适用于包含静态页面 <br> 
<%@ include file="included.htm" %> <br> 

两种跳转方式分别是什么?有什么区别? <br> 

说一说Servlet的生命周期? <br> 

servlet有良好的生存期的定义，包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由javax.servlet.Servlet接口的init,service和destroy方法表达。 <br> 
<br> 
你使用的servlet和jsp的版本？<br> 


Servlet的基本架构 <br> 
public class ServletName extends HttpServlet { <br> 
public void doPost(HttpServletRequest request, HttpServletResponse response) throws <br> 
ServletException, IOException { <br> 
} <br> 
public void doGet(HttpServletRequest request, HttpServletResponse response) throws <br> 
ServletException, IOException { <br> 
} <br> 
} 
<br> 
get与post提交的异同？<br> 

<img src ="http://www.blogjava.net/airdream/aggbug/26810.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/airdream/" target="_blank">AIRDREAM</a> 2006-01-05 23:40 <a href="http://www.blogjava.net/airdream/archive/2006/01/05/26810.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java面试题集锦 三辑 </title><link>http://www.blogjava.net/airdream/archive/2006/01/05/26809.html</link><dc:creator>AIRDREAM</dc:creator><author>AIRDREAM</author><pubDate>Thu, 05 Jan 2006 15:36:00 GMT</pubDate><guid>http://www.blogjava.net/airdream/archive/2006/01/05/26809.html</guid><wfw:comment>http://www.blogjava.net/airdream/comments/26809.html</wfw:comment><comments>http://www.blogjava.net/airdream/archive/2006/01/05/26809.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/airdream/comments/commentRss/26809.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/airdream/services/trackbacks/26809.html</trackback:ping><description><![CDATA[Java面试题（答案） <br>
第一，谈谈final, finally, finalize的区别。<br>
final?修饰符（关键字）如果一个类被声明为final，意味着它不能再派生出新的子类，不能作为父类被继承。因此一个类不能既被声明为 abstract的，又被声明为final的。将变量或方法声明为final，可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值，而在以后的引用中只能读取，不可修改。被声明为final的方法也同样只能使用，不能重载
finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常，那么相匹配的 catch 子句就会执行，然后控制就会进入 finally 块（如果有的话）。
finalize?方法名。Java 技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的，因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。<br>

第二，Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)?<br>
匿名的内部类是没有名字的内部类。不能extends(继承) 其它类，但一个内部类可以作为一个接口，由另一个内部类实现。<br>

第三，Static Nested Class 和 Inner Class的不同，说得越多越好(面试题有的很笼统)。<br>
Nested Class （一般是C++的说法），Inner Class (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: //www.frontfree.net/articles/services/view.asp?id=704&page=1<br>
注： 静态内部类（Inner Class）意味着1创建一个static内部类的对象，不需要一个外部类对象，2不能从一个static内部类的一个对象访问一个外部类对象
<br>
第四，&和&&的区别。<br>
&是位运算符。&&是布尔逻辑运算符。<br>

第五，HashMap和Hashtable的区别。<br>
都属于Map接口的类，实现了将惟一键映射到特定的值上。<br>
HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 <br>
Hashtable 类似于 HashMap，但是不允许 null 键和 null 值。它也比 HashMap 慢，因为它是同步的。<br>

第六，Collection 和 Collections的区别。<br>
Collections是个java.util下的类，它包含有各种有关集合操作的静态方法。<br>
Collection是个java.util下的接口，它是各种集合结构的父接口。<br>
<br>

第七，什么时候用assert。<br>
断言是一个包含布尔表达式的语句，在执行这个语句时假定该表达式为 true。如果表达式计算为 false，那么系统会报告一个 AssertionError。它用于调试目的： <br>
assert(a > 0); // throws an AssertionError if a <= 0 <br>
断言可以有两种形式： <br>
assert Expression1 ; <br>
assert Expression1 : Expression2 ; <br>
Expression1 应该总是产生一个布尔值。 <br>
Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。<br>
断言在默认情况下是禁用的。要在编译时启用断言，需要使用 source 1.4 标记： <br>
javac -source 1.4 Test.java<br><br>
要在运行时启用断言，可使用 -enableassertions 或者 -ea 标记。 <br>
要在运行时选择禁用断言，可使用 -da 或者 -disableassertions 标记。 <br>
要系统类中启用断言，可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。 <br>
可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过，断言不应该用于验证传递给公有方法的参数，因为不管是否启用了断言，公有方法都必须检查其参数。不过，既可以在公有方法中，也可以在非公有方法中利用断言测试后置条件。另外，断言不应该以任何方式改变程序的状态。 <br>


第八，GC是什么? 为什么要有GC? (基础)。<br>
GC是垃圾收集器。Java 程序员不用担心内存管理，因为垃圾收集器会自动进行管理。要请求垃圾收集，可以调用下面的方法之一： <br>
System.gc()<br>
Runtime.getRuntime().gc()<br>

第九，String s = new String("xyz");创建了几个String Object?<br>
两个对象，一个是“xyx”,一个是指向“xyx”的引用对象s。<br>

第十，Math.round(11.5)等於多少? Math.round(-11.5)等於多少?<br>
Math.round(11.5)返回（long）12，Math.round(-11.5)返回（long）-11;<br>

第十一，short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?<br>
short s1 = 1; s1 = s1 + 1;有错，s1是short型，s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正确。<br>

第十二，sleep() 和 wait() 有什么区别? 搞线程的最爱<br>
sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后，线程不一定立即恢复执行。这是因为在那个时刻，其它线程可能正在运行而且没有被调度为放弃执行，除非<br>
(a)“醒来”的线程具有更高的优先级<br>
(b)正在运行的线程因为其它原因而阻塞。<br>
wait()是线程交互时，如果线程对一个同步对象x 发出一个wait()调用，该线程会暂停执行，被调对象进入等待状态，直到被唤醒或等待时间到。<br>



第十三，Java有没有goto?<br>
Goto?java中的保留字，现在没有在java中使用。<br>

第十四，数组有没有length()这个方法? String有没有length()这个方法？<br>
数组没有length()这个方法，有length的属性。<br>
String有有length()这个方法。<br>

第十五，Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?<br>
方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现，重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数，我们说该方法被重写 (Overriding)。子类的对象使用这个方法时，将调用子类中的定义，对它而言，父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法，它们或有不同的参数个数或有不同的参数类型，则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。<br>

第十六，Set里的元素是不能重复的，那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?<br>
Set里的元素是不能重复的，那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。<br>
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖，为的是当两个分离的对象的内容和类型相配的话，返回真值。<br>

第十七，给我一个你最常见到的runtime exception。<br>
ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, 
ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException<br>

第十八，error和exception有什么区别?<br>
error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。<br>
exception 表示一种设计或实现问题。也就是说，它表示如果程序运行正常，从不会发生的情况。<br>


第十九，List, Set, Map是否继承自Collection接口?<br>
List，Set是<br>

Map不是<br>

第二十，abstract class和interface有什么区别?<br>
声明方法的存在而不去实现它的类被叫做抽象类（abstract class），它用于要创建一个体现某些基本行为的类，并为该类声明方法，但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量，其类型是一个抽象类，并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现，否则它们也是抽象类为。取而代之，在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。<br>
接口（interface）是抽象类的变体。在接口中，所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的，没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似，除了该实现类不能从接口定义中继承行为。当类实现特殊接口时，它定义（即将程序体给予）所有这种接口的方法。然后，它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类，它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换，instanceof 运算符可以用来决定某对象的类是否实现了接口。
<br>
第二十一，abstract的method是否可同时是static,是否可同时是native，是否可同时是synchronized?<br>
都不能<br>

第二十二，接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?<br>
接口可以继承接口。抽象类可以实现(implements)接口，抽象类是否可继承实体类，但前提是实体类必须有明确的构造函数。<br>
<br>
第二十三，启动一个线程是用run()还是start()?<br>
启动一个线程是调用start()方法，使线程所代表的虚拟处理机处于可运行状态，这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。<br>



第二十四，构造器Constructor是否可被override?<br>
构造器Constructor不能被继承，因此不能重写Overriding，但可以被重载Overloading。<br>

第二十五，是否可以继承String类?<br>
String类是final类故不可以继承。<br>

第二十六，当一个线程进入一个对象的一个synchronized方法后，其它线程是否可进入此对象的其它方法?<br>
不能，一个对象的一个synchronized方法只能由一个线程访问。<br>

第二十七，try {}里有一个return语句，那么紧跟在这个try后的finally {}里的code会不会被执行，什么时候被执行，在return前还是后?<br>
会执行，在return前执行。<br>


第二十八，编程题: 用最有效率的方法算出2乘以8等於几?<br>
有C背景的程序员特别喜欢问这种问题。<br>

2 << 3<br>

第二十九，两个对象值相同(x.equals(y) == true)，但却可有不同的hash code，这句话对不对?<br>
不对，有相同的hash code。
<br>
第三十，当一个对象被当作参数传递到一个方法后，此方法可改变这个对象的属性，并可返回变化后的结果，那么这里到底是值传递还是引用传递? <br>
是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时，参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变，但对象的引用是永远不会改变的。<br>

<br>
第三十一，swtich是否能作用在byte上，是否能作用在long上，是否能作用在String上?<br>
switch（expr1）中，expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。<br>

第三十二，编程题: 写一个Singleton出来。<br>
Singleton模式主要作用是保证在Java应用程序中，一个类Class只有一个实例存在。<br>
一般Singleton模式通常有几种种形式:<br>
第一种形式: 定义一个类，它的构造函数为private的，它有一个static的private的该类变量，在类初始化时实例话，通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
public class Singleton {<br>
　　private Singleton(){}<br>
　　//在自己内部定义自己一个实例，是不是很奇怪？<br>
　　//注意这是private 只供内部调用<br>
　　private static Singleton instance = new Singleton();<br>
　　//这里提供了一个供外部访问本class的静态方法，可以直接访问　　<br>
　　public static Singleton getInstance() {<br>
　　　　return instance; 　　<br>
　　 } <br>
} <br>
第二种形式: <br>
public class Singleton { <br>
　　private static Singleton instance = null;<br>
　　public static synchronized Singleton getInstance() {<br>
　　//这个方法比上面有所改进，不用每次都进行生成对象，只是第一次　　　 　<br>
　　//使用时生成实例，提高了效率！<br>
　　if (instance==null)<br>
　　　　instance＝new Singleton();<br>
return instance; 　　} <br>
} <br>
其他形式:<br>
定义一个类，它的构造函数为private的，所有方法为static的。<br>
一般认为第一种形式要更加安全些s<br><img src ="http://www.blogjava.net/airdream/aggbug/26809.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/airdream/" target="_blank">AIRDREAM</a> 2006-01-05 23:36 <a href="http://www.blogjava.net/airdream/archive/2006/01/05/26809.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java面试题集锦 二辑</title><link>http://www.blogjava.net/airdream/archive/2006/01/01/26267.html</link><dc:creator>AIRDREAM</dc:creator><author>AIRDREAM</author><pubDate>Sun, 01 Jan 2006 11:37:00 GMT</pubDate><guid>http://www.blogjava.net/airdream/archive/2006/01/01/26267.html</guid><wfw:comment>http://www.blogjava.net/airdream/comments/26267.html</wfw:comment><comments>http://www.blogjava.net/airdream/archive/2006/01/01/26267.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/airdream/comments/commentRss/26267.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/airdream/services/trackbacks/26267.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 一、Java基础知识1.Java有那些基本数据类型，String是不是基本数据类型，他们有何区别。2.字符串的操作：&nbsp; 写一个方法，实现字符串的反转，如：输入abc，输出cba&nbsp; 写一个方法，实现字符串的替换，如：输入bbbwlirbbb，输出bbbhhtccc。3.数据类型之间的转换&nbsp; 如何将数值型字符转换为数字（Integer，Double...&nbsp;&nbsp;<a href='http://www.blogjava.net/airdream/archive/2006/01/01/26267.html'>阅读全文</a><img src ="http://www.blogjava.net/airdream/aggbug/26267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/airdream/" target="_blank">AIRDREAM</a> 2006-01-01 19:37 <a href="http://www.blogjava.net/airdream/archive/2006/01/01/26267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>