﻿<?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-满店香的家</title><link>http://www.blogjava.net/yigemaser/</link><description>学习+实践=进步</description><language>zh-cn</language><lastBuildDate>Sun, 12 Apr 2026 15:03:41 GMT</lastBuildDate><pubDate>Sun, 12 Apr 2026 15:03:41 GMT</pubDate><ttl>60</ttl><item><title>北京精神和创新无关</title><link>http://www.blogjava.net/yigemaser/archive/2013/02/03/395070.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Sun, 03 Feb 2013 03:41:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2013/02/03/395070.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/395070.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2013/02/03/395070.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/395070.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/395070.html</trackback:ping><description><![CDATA[<div>&nbsp;&nbsp;&nbsp;&nbsp; 北京倡导的8个字&#8220;爱国 创新 包容 厚德&#8221;与北京市的行动不符<br />&nbsp;&nbsp;&nbsp;&nbsp; 一边喊着创新，另一边限制外地人在北京人买房，怎么限制？？？连续五年在北京交社保或者完税。<br />&nbsp;&nbsp;&nbsp;&nbsp; 请问北京市政府：一个在一家公司或者企业埋头苦干5年以上的人，怎么会具备创新精神？？？？随便说说现在的成功企业家，马云、马化腾哪个不是左倒腾，右创业的人。<br />&nbsp;&nbsp;&nbsp; 创新和创业密不可分，没有创业型的创新，就是无本求末。<br />&nbsp;&nbsp;&nbsp; 这种不符合自然规律，只追求管理方便的政策，绝对是历史的倒退，纵观历史2000年来的人口户籍政策，目前的政策是最差的政策，完全就是文化的倒退。<br />&nbsp;&nbsp;&nbsp; 放开户籍政策会死人吗？会死人吗？会死人吗？<br />&nbsp;&nbsp;&nbsp; 既然不会死人，一天到晚担心什么，无非就是来自于既得利益阶级阻力大。<br />&nbsp;&nbsp;&nbsp; 一味的放任既得利益的城市阶级压迫农村阶级，就是现在贫富差距的根源。</div><img src ="http://www.blogjava.net/yigemaser/aggbug/395070.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2013-02-03 11:41 <a href="http://www.blogjava.net/yigemaser/archive/2013/02/03/395070.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用commons-compress包对tar.gz文件进行解压处理</title><link>http://www.blogjava.net/yigemaser/archive/2012/06/15/380849.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Fri, 15 Jun 2012 04:12:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2012/06/15/380849.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/380849.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2012/06/15/380849.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/380849.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/380849.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 想使用commons-compress-1.4.1.jar对tar.gz文件进行处理，上网找半天，别人写的都很费劲，看了看样例，自己写了一个方法。<br />&nbsp;/**<br />&nbsp; * 解压tar.gz文件<br />&nbsp; * tar文件只是把多个文件或文件夹打包合成一个文件，本身并没有进行压缩。gz是进行过压缩的文件。<br />&nbsp; * @param dir<br />&nbsp; * @param filepath<br />&nbsp; * @throws Exception<br />&nbsp; */<br />&nbsp;public static void deGzipArchive(String dir, String filepath)<br />&nbsp;&nbsp;&nbsp;throws Exception {<br />&nbsp;&nbsp;final File input = new File(filepath);<br />&nbsp;&nbsp;final InputStream is = new FileInputStream(input);<br />&nbsp;&nbsp;final CompressorInputStream in = new GzipCompressorInputStream(is, true);<br />&nbsp;&nbsp;TarArchiveInputStream tin = new TarArchiveInputStream(in);<br />&nbsp;&nbsp;TarArchiveEntry entry = tin.getNextTarEntry();<br />&nbsp;&nbsp;while (entry != null) {<br />&nbsp;&nbsp;&nbsp;File archiveEntry = new File(dir, entry.getName());<br />&nbsp;&nbsp;&nbsp;archiveEntry.getParentFile().mkdirs();<br />&nbsp;&nbsp;&nbsp;if (entry.isDirectory()) {<br />&nbsp;&nbsp;&nbsp;&nbsp;archiveEntry.mkdir();<br />&nbsp;&nbsp;&nbsp;&nbsp;entry = tin.getNextTarEntry();<br />&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;OutputStream out = new FileOutputStream(archiveEntry);<br />&nbsp;&nbsp;&nbsp;IOUtils.copy(tin, out);<br />&nbsp;&nbsp;&nbsp;out.close();<br />&nbsp;&nbsp;&nbsp;entry = tin.getNextTarEntry();<br />&nbsp;&nbsp;}<br />&nbsp;&nbsp;in.close();<br />&nbsp;&nbsp;tin.close();<br />&nbsp;}<br /><br />遗留问题：<br />
<p>&nbsp;tar解压tar.gz文件时，中文文件夹有乱码<br />&nbsp;研究发现commpress包解压时，TarArchiveInputStream类对中文未做处理，进一步跟踪，第一层是</p>
<p>utf8，正确，往下取，需要包括子文件夹，子文件，涉及到"/"等符号的切割，这个地方未考虑中文<br />据说ant没问题</p> <img src ="http://www.blogjava.net/yigemaser/aggbug/380849.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2012-06-15 12:12 <a href="http://www.blogjava.net/yigemaser/archive/2012/06/15/380849.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iframe横向滚动条控制</title><link>http://www.blogjava.net/yigemaser/archive/2008/09/12/228549.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Fri, 12 Sep 2008 03:46:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/09/12/228549.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/228549.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/09/12/228549.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/228549.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/228549.html</trackback:ping><description><![CDATA[在网上找了相关资料后，很多人都是把&#8220;<span style="color: gray">style="overflow-x:hidden" </span>",但我用了这种方法，还是不行，<br />
最后把页面上的<font face="Verdana">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;</font><br />
在&lt;body&gt;中加<span style="color: gray">style="overflow-x:hidden" 就可以了，<br />
</span>
<img src ="http://www.blogjava.net/yigemaser/aggbug/228549.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-09-12 11:46 <a href="http://www.blogjava.net/yigemaser/archive/2008/09/12/228549.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>时间处理</title><link>http://www.blogjava.net/yigemaser/archive/2008/09/09/227891.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Tue, 09 Sep 2008 03:10:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/09/09/227891.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/227891.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/09/09/227891.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/227891.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/227891.html</trackback:ping><description><![CDATA[http://robinjie.javaeye.com/blog/54386
<img src ="http://www.blogjava.net/yigemaser/aggbug/227891.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-09-09 11:10 <a href="http://www.blogjava.net/yigemaser/archive/2008/09/09/227891.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>简单可行的sitemesh</title><link>http://www.blogjava.net/yigemaser/archive/2008/07/17/215464.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Thu, 17 Jul 2008 05:34:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/07/17/215464.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/215464.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/07/17/215464.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/215464.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/215464.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 这个框架蛮不错<br />
&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; <a href="http://blog.sina.com.cn/s/blog_5287f3aa0100apee.html">使用sitemesh建立复合视图</a><br />
&nbsp;&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/yigemaser/aggbug/215464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-07-17 13:34 <a href="http://www.blogjava.net/yigemaser/archive/2008/07/17/215464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle10用plsql访问，中文显示乱码</title><link>http://www.blogjava.net/yigemaser/archive/2008/06/20/209395.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Fri, 20 Jun 2008 03:33:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/06/20/209395.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/209395.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/06/20/209395.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/209395.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/209395.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; window系统，修改注册表，&nbsp;&nbsp;&nbsp;&nbsp;将NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK 改为&nbsp; AMERICAN_AMERICA.US7ASCII，重新启动
<img src ="http://www.blogjava.net/yigemaser/aggbug/209395.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-06-20 11:33 <a href="http://www.blogjava.net/yigemaser/archive/2008/06/20/209395.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>试用eclipse uml插件 green,AmaterasUML_1.3.1,idafeuml 第一阶段。</title><link>http://www.blogjava.net/yigemaser/archive/2008/05/21/201796.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Tue, 20 May 2008 22:22:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/05/21/201796.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/201796.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/05/21/201796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/201796.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/201796.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; 上到<a href="http://www.eclipseplugincentral.com/">http://www.eclipseplugincentral.com/</a>中心<br />
&nbsp;&nbsp; 下载了三个插件，分别是green,AmaterasUML_1.3.1,idafeuml.前面两个是下载的，后面一个是通过eclipse的update manage下载的，我都把它们放到一个单独的目录，然后通过link方式加入到eclipse。<br />
&nbsp;&nbsp;&nbsp; 启动eclispse之后，检查发现插件都安装成功，但是点击图标，都报错，报unable load class XXX错误，检查了包路径，发现类确实在啊，是什么问题呢。后来发现是path路径设置的不对，指向的是jdk1.4。后来改为jdk5就没问题啦。<br />
&nbsp;&nbsp;&nbsp;&nbsp;经过简单测试3个都能够使用。不错。下一篇，再写写这三个使用的比较。先睡啦。<br />
&nbsp;&nbsp;&nbsp; 本来想用rose的。找了半天找不到免费的rose，再说这东西又大又贵，心血来潮，用用免费的，这东西技术含量也不是特别高，干嘛搞的那么高深非得用rose。无非就是画画类图，将类图映射为代码。<br />
&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/yigemaser/aggbug/201796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-05-21 06:22 <a href="http://www.blogjava.net/yigemaser/archive/2008/05/21/201796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复习 一些基本知识复习-转java面试考点</title><link>http://www.blogjava.net/yigemaser/archive/2008/05/20/201655.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Tue, 20 May 2008 07:00:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/05/20/201655.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/201655.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/05/20/201655.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/201655.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/201655.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; 温故而知新还是很重要的，长期不复习，有些东西就会模糊，在工作中可能就会犯些低级错误。所以今天将一篇java考点拿来复习一下，还是很有收获的。<br />
<p><strong>第一，谈谈final, finally, finalize的区别。<br />
</strong><br />
　final 用于声明属性，方法和类，分别表示属性不可变，方法不可覆盖，类不可继承。finally是异常处理语句结构的一部分，表示总是执行。finalize是 Object类的一个方法，在垃圾收集器执行的时候会调用被回收对象的此方法，可以覆盖此方法提供垃圾收集时的其他资源回收，例如关闭文件等。</p>
<p><strong>第二，Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)?</strong> <br />
<br />
　可以继承其他类或完成其他接口，在swing编程中常用此方式。　</p>
<p><strong>第三，Static Nested Class 和 Inner Class的不同，说得越多越好(面试题有的很笼统)。<br />
</strong><br />
　Static Nested Class是被声明为静态（static）的内部类，它可以不依赖于外部类实例被实例化。而通常的内部类需要在外部类实例化后才能实例化。　　</p>
<p><strong>第四，&amp;和&amp;&amp;的区别。<br />
</strong><br />
&nbsp;　&amp;是位运算符，表示按位与运算，&amp;&amp;是逻辑运算符，表示逻辑与（and）.　　</p>
<p><strong>第五，HashMap和Hashtable的区别。<br />
<br />
</strong>　HashMap是Hashtable的轻量级实现（非线程<a class="channel_keylink" href="http://security.chinaitlab.com/" target="_blank">安全</a>的实现），他们都完成了Map接口，主要区别在于HashMap允许空（null）键值（key）,由于非线程<a class="channel_keylink" href="http://security.chinaitlab.com/" target="_blank">安全</a>，效率上可能高于Hashtable.　　</p>
<p><strong>第六，Collection 和 Collections的区别。<br />
　</strong>　<br />
　Collection是集合类的上级接口，继承与他的接口主要有Set 和List.Collections是针对集合类的一个帮助类，他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。　　</p>
<p><strong>第七，什么时候用assert。<br />
<br />
</strong>　1.4新增关键字（语法），用于测试boolean表达式状态，可用于调试程序。使用方法 assert <boolean>，表示如果表达式为真（true）,则下面的语句执行，否则抛出AssertionError。另外的使用方式assert &lt; boolean表达式&gt;:<other>，表示如果表达式为真，后面的表达式忽略，否则后面表达式的值用于AssertionError的构建参数。注意编译时要增加-source 1.4 参数，否则报错。]运行时要增加 &#8211;ea参数，否则assert行被忽略　　</other></boolean></p>
<p><strong>第八，GC是什么? 为什么要有GC? <br />
　</strong>　<br />
　GC是垃圾收集的意思（Gabage Collection）,内存处理是编程人员容易出现问题的地方，忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃，<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank">Java</a>提供的GC功能可以 自动监测对象是否超过作用域从而达到自动回收内存的目的，<a class="channel_keylink" href="http://java.chinaitlab.com/" target="_blank">Java</a>语言没有提供释放已分配内存的显示操作方法。 　　</p>
<p><strong>第九，String s = new String("xyz");创建了几个String Object?<br />
</strong><br />
　两个　　</p>
<p><strong>第十，Math.round(11.5)等於多少? Math.round(-11.5)等於多少? <br />
<br />
</strong>　Math.round(11.5)==12Math.round(-11.5)==-11round方法返回与参数最接近的长整数，参数加1/2后求其floor.　　</p>
<p><strong>第十一，short s1 = 1; s1 = s1 + 1;有什么错?</strong> <strong>short s1 = 1; s1 += 1;有什么错?</strong></p>
<p>　short s1 = 1; s1 = s1 + 1; （s1+1运算结果是int型，需要强制转换类型）short s1 = 1; s1 += 1;（可以正确编译）　　</p>
<p><strong>第十二，sleep() 和 wait() 有什么区别?</strong> <br />
<br />
　sleep是线程类（Thread）的方法，导致此线程暂停执行指定时间，给执行机会给其他线程，但是监控状态依然保持，到时后会自动恢复。调用 sleep不会释放对象锁。wait是Object类的方法，对此对象调用wait方法导致本线程放弃对象锁，进入等待此对象的等待锁定池，只有针对此对 象发出notify方法（或notifyAll）后本线程才进入对象锁定池准备获得对象锁进入运行状态。　　</p>
<p><strong>第十三，Java有没有goto?</strong> <br />
<br />
　没有　　很十三的问题，如果哪个面试的问到这个问题，我劝你还是别进这家公司。</p>
<p><strong>第十四，数组有没有length()这个方法? String有没有length()这个方法？<br />
<br />
</strong>　数组没有length()这个方法，有length的属性。<br />
　String有有length()这个方法。</p>
<p><strong>第十五，Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?<br />
</strong><br />
　方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现， 重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数，我们说该方法被重写 (Overriding)。子类的对象使用这个方法时，将调用子类中的定义，对它而言，父类中的定义如同被&#8220;屏蔽&#8221;了。如果在一个类中定义了多个同名的方 法，它们或有不同的参数个数或有不同的参数类型，则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。</p>
<p><strong>第十六，Set里的元素是不能重复的，那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?<br />
</strong><br />
　Set里的元素是不能重复的，那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。<br />
equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖，为的是当两个分离的对象的内容和类型相配的话，返回真值。</p>
<p><strong>第十七，给我一个你最常见到的runtime exception。</strong></p>
<p>参考如下：<br />
ArithmeticException, <br />
ArrayStoreException, <br />
BufferOverflowException, <br />
BufferUnderflowException, <br />
CannotRedoException, <br />
CannotUndoException, <br />
ClassCastException, <br />
CMMException, <br />
ConcurrentModificationException, <br />
DOMException, <br />
EmptyStackException, <br />
IllegalArgumentException, <br />
IllegalMonitorStateException, <br />
IllegalPathStateException, <br />
IllegalStateException, <br />
ImagingOpException, <br />
IndexOutOfBoundsException, <br />
MissingResourceException, <br />
NegativeArraySizeException, <br />
NoSuchElementException, <br />
NullPointerException, <br />
ProfileDataException, <br />
ProviderException, <br />
RasterFormatException, <br />
SecurityException, <br />
SystemException, <br />
UndeclaredThrowableException, <br />
UnmodifiableSetException, <br />
UnsupportedOperationException</p>
<p><strong>第十八，error和exception有什么区别?<br />
</strong><br />
　error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。<br />
　exception 表示一种设计或实现问题。也就是说，它表示如果程序运行正常，从不会发生的情况。</p>
<p><strong>第十九，List, Set, Map是否继承自Collection接口?<br />
</strong><br />
List，Set是<br />
Map不是</p>
<p><strong>第二十，abstract class和interface有什么区别?<br />
</strong><br />
　声明方法的存在而不去实现它的类被叫做抽象类（abstract class），它用于要创建一个体现某些基本行为的类，并为该类声明方法，但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量，其类型是一个抽象类，并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现，否则它们也是抽象类为。取而代之，在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。<br />
<br />
　接口（interface）是抽象类的变体。在接口中，所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的，没有一个 有程序体。接口只可以定义static final成员变量。接口的实现与子类相似，除了该实现类不能从接口定义中继承行为。当类实现特殊接口时，它定义（即将程序体给予）所有这种接口的方法。 然后，它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类，它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到 接口类型或从接口类型转换，instanceof 运算符可以用来决定某对象的类是否实现了接口。</p>
<p><strong>第二十一，abstract的method是否可同时是static,是否可同时是native，是否可同时是synchronized?<br />
<br />
</strong>都不能</p>
<p><strong>第二十二，接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?<br />
<br />
</strong>　接口可以继承接口。抽象类可以实现(implements)接口，抽象类是否可继承实体类，但前提是实体类必须有明确的构造函数。</p>
<p><strong>第二十三，启动一个线程是用run()还是start()?<br />
</strong><br />
　启动一个线程是调用start()方法，使线程所代表的虚拟处理机处于可运行状态，这意味着它可以由JVM调度并执行。这并不意味着线程就会立即运行。run()方法可以产生必须退出的标志来停止一个线程。</p>
<p><strong>第二十四，构造器Constructor是否可被override?<br />
</strong><br />
　构造器Constructor不能被继承，因此不能重写Overriding，但可以被重载Overloading。</p>
<p><strong>第二十五，是否可以继承String类?<br />
</strong><br />
　String类是final类故不可以继承。</p>
<p><strong>第二十六，当一个线程进入一个对象的一个synchronized方法后，其它线程是否可进入此对象的其它方法?<br />
<br />
</strong>　不能，一个对象的一个synchronized方法只能由一个线程访问。</p>
<p><strong>第二十七，try {}里有一个return语句，那么紧跟在这个try后的finally {}里的code会不会被执行，什么时候被执行，在return前还是后?<br />
</strong><br />
会执行，在return前执行。</p>
<p><strong>第二十八，编程题: 用最有效率的方法算出2乘以8等於几?<br />
</strong><br />
有C背景的程序员特别喜欢问这种问题。<br />
2 &lt;&lt; 3</p>
<p><strong>第二十九，两个对象值相同(x.equals(y) == true)，但却可有不同的hash code，这句话对不对?<br />
</strong><br />
不对，有相同的hash code。</p>
<p><strong>第三十，当一个对象被当作参数传递到一个方法后，此方法可改变这个对象的属性，并可返回变化后的结果，那么这里到底是值传递还是引用传递?</strong> <br />
<br />
　是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时，参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变，但对象的引用是永远不会改变的。</p>
<p><strong>第三十一，swtich是否能作用在byte上，是否能作用在long上，是否能作用在String上?<br />
</strong><br />
　switch（expr1）中，expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。</p>
<p><strong>第三十二，编程题: 写一个Singleton出来。<br />
</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp; Singleton模式主要作用是保证在Java应用程序中，一个类Class只有一个实例存在。<br />
一般Singleton模式通常有几种种形式:<br />
<br />
　第一种形式: 定义一个类，它的构造函数为private的，它有一个static的private的该类变量，在类初始化时实例话，通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。</p>
<p>
<table style="border-top-style: dotted; border-right-style: dotted; border-left-style: dotted; border-bottom-style: dotted" bordercolor="#cccccc" cellspacing="0" cellpadding="3" width="500" align="center" bgcolor="#f3f3f3" border="1" heihgt="">
    <tbody>
        <tr>
            <td>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 />
            }&nbsp;&nbsp;</td>
        </tr>
    </tbody>
</table>
</p>
<p><br />
第二种形式: </p>
<p>
<table style="border-top-style: dotted; border-right-style: dotted; border-left-style: dotted; border-bottom-style: dotted" bordercolor="#cccccc" cellspacing="0" cellpadding="3" width="500" align="center" bgcolor="#f3f3f3" border="1" heihgt="">
    <tbody>
        <tr>
            <td>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 />
            }&nbsp;</td>
        </tr>
    </tbody>
</table>
<br />
&nbsp;<br />
其他形式:<br />
定义一个类，它的构造函数为private的，所有方法为static的。<br />
一般认为第一种形式要更加安全些 <br />
</p>
<img src ="http://www.blogjava.net/yigemaser/aggbug/201655.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-05-20 15:00 <a href="http://www.blogjava.net/yigemaser/archive/2008/05/20/201655.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复习 接口隔离原则</title><link>http://www.blogjava.net/yigemaser/archive/2008/05/19/201297.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Sun, 18 May 2008 17:24:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/05/19/201297.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/201297.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/05/19/201297.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/201297.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/201297.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div><font face="宋体" size="2"><span class="277092403-01032007"><strong>一、ISP简介（<span class="277092403-01032007">ISP--Interface Segregation Principle</span>）：</strong></span></font></div>
<div><font face="宋体" size="2"><span class="277092403-01032007">使用多个专门的接口比使用单一的总接口要好。<br />
一个类对另外一个类的依赖性应当是建立在最小的接口上的。<br />
一个接口代表一个角色，不应当将不同的角色都交给一个接口。没有关系的接口合并在一起，形成一个臃肿的大接口，这是对角色和接口的污染。</span></font></div>
<div><font face="宋体" size="2"></font>&nbsp;</div>
<div><font face="宋体" size="2"><span class="277092403-01032007">&#8220;不应该强迫客户依赖于它们不用的方法。接口属于客户，不属于它所在的类层次结构。&#8221;这个说得很明白了，再通俗点说，不要强迫客户使用它们不用的方法，如果强迫用户使用它们不使用的方法，那么这些客户就会面临由于这些不使用的方法的改变所带来的改变。</span></font></div>
<div><font face="宋体" size="2"></font>&nbsp;</div>
<div><font face="宋体" size="2"><span class="277092403-01032007"><strong>二、举例说明：</strong></span></font></div>
<div><font face="宋体" size="2"><span class="277092403-01032007">参考下图的设计，在这个设计里，取款、存款、转帐都使用一个通用界面接口，也就是说，每一个类都被强迫依赖了另两个类的接口方法，那么每个类有可能因为另外两个类的方法(跟自己无关)而被影响。拿取款来说，它根本不关心&#8220;存款操作&#8221;和&#8220;转帐操作&#8221;，可是它却要受到这两个方法的变化的影响。<br />
</span></font></div>
<div><font face="宋体" size="2"></font></div>
<div><font face="宋体" size="2"><span class="277092403-01032007"><img height="514" alt="" src="http://www.cnblogs.com/images/cnblogs_com/feipeng/Pic01.jpg" width="375" border="0" /><br />
那么我们该如何解决这个问题呢？参考下图的设计，为每个类都单独设计专门的操作接口，使得它们只依赖于它们关系的方法，这样就不会互相影了！</span></font></div>
<div><font face="宋体" size="2"></font></div>
<div><font face="宋体" size="2"><span class="277092403-01032007"><font face="宋体" size="2"><span class="277092403-01032007"><strong><img height="644" alt="" src="http://www.cnblogs.com/images/cnblogs_com/feipeng/Pic02.jpg" width="404" border="0" /><br />
三、实现方法：</strong><br />
1、使用委托分离接口<br />
2、使用多重继承分离接口</span></font></div>
<div><font face="宋体" size="2"></font></div>
</span></font>
<img src ="http://www.blogjava.net/yigemaser/aggbug/201297.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-05-19 01:24 <a href="http://www.blogjava.net/yigemaser/archive/2008/05/19/201297.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Spring让LOB数据操作变得简单易行的思考</title><link>http://www.blogjava.net/yigemaser/archive/2008/05/17/201174.html</link><dc:creator>满店香</dc:creator><author>满店香</author><pubDate>Sat, 17 May 2008 15:11:00 GMT</pubDate><guid>http://www.blogjava.net/yigemaser/archive/2008/05/17/201174.html</guid><wfw:comment>http://www.blogjava.net/yigemaser/comments/201174.html</wfw:comment><comments>http://www.blogjava.net/yigemaser/archive/2008/05/17/201174.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/yigemaser/comments/commentRss/201174.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/yigemaser/services/trackbacks/201174.html</trackback:ping><description><![CDATA[&nbsp;&nbsp; spring中对lob操作就像普通对待String一样，不错。以前写代码的时候总是要单独对lob进行封装编程。地址如下。<br />
&nbsp;&nbsp; http://dev.yesky.com/5/3484005_4.shtml<br />
&nbsp;&nbsp; <a href="http://space.itpub.net/10714335/viewspace-167565">http://space.itpub.net/10714335/viewspace-167565</a><br />
&nbsp;&nbsp; 不过，我觉得是否可以再添加一层。再封装，而无需配置hibernate属性文件，岂不是更好。<br />
&nbsp;&nbsp; 比如下面这种情况。某个字段以前是varchar 4000以内，后来变动为clob。这样的话，需要修改hibernate属性文件,指定某个字段是clob类型，Spring能否增加自动识别，将vachar和clob识为一种类型，那样的话岂不是更爽。写到这里，我认为干脆，除非用户自定义数据类型，对于各种数据类型,都能有自动识别功能，无需再hibernate属性文件中指定，那样的话，我想会更棒。<br />
&nbsp;&nbsp; 在看dwr源码中发现，dwr源码对于数据类型的封装就做到了这一点，数据类型的映射做到了自动化。<br />
&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/yigemaser/aggbug/201174.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/yigemaser/" target="_blank">满店香</a> 2008-05-17 23:11 <a href="http://www.blogjava.net/yigemaser/archive/2008/05/17/201174.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>