﻿<?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/huanghr/</link><description>成功的摇篮</description><language>zh-cn</language><lastBuildDate>Sat, 18 Apr 2026 21:47:00 GMT</lastBuildDate><pubDate>Sat, 18 Apr 2026 21:47:00 GMT</pubDate><ttl>60</ttl><item><title>20070622 周五 告别南宁</title><link>http://www.blogjava.net/huanghr/archive/2007/06/23/125955.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Sat, 23 Jun 2007 02:34:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/archive/2007/06/23/125955.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125955.html</wfw:comment><comments>http://www.blogjava.net/huanghr/archive/2007/06/23/125955.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125955.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125955.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 终于可以把周一～五 07：45，周六8：15，每天中午14：00的闹钟取消了，舒舒服服的睡了一个懒觉，居然感觉不到室友起床的脚步声，以前基本上都是他吵醒我的，睡的太晚，早上的闹钟基本不起任何作用。<br>&nbsp;&nbsp;&nbsp;&nbsp; 打开QQ，MSN，新浪股票频道，15分钟K线， <u>用友软件</u> 好样的，9：00～10：29 居然涨了9.99%，然后不涨了，守住，然后小跌，短线，真的需要时间及精力去盯紧。<br>&nbsp;&nbsp;&nbsp;&nbsp; 中午，打点行李，半年前来的时候只有一小箱物品，半年后怎么多了2倍，原来都是衣服，冬春夏的衣服。还多了一台笔记本，最夸张的是多了20多斤书。午饭还是米线，电视播了二战片"勾魂谷"，一直没计划去看，原来真的很恐怖，又是一部对残酷战争的思考教材。<br>&nbsp;&nbsp;&nbsp;&nbsp; 傍晚，很多兄弟要来送我，我只让小井小邱美女送了。离别的事情，我一直主张低调，对自己，对别人就不同，有可能的话，我一定回去送朋友的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;随着双脚踏上开往深圳的豪华大巴，别了，南宁移动，广西华为BI，我奋斗过得地方，我一起同甘共苦的兄弟。明天会更好。 
<img src ="http://www.blogjava.net/huanghr/aggbug/125955.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-23 10:34 <a href="http://www.blogjava.net/huanghr/archive/2007/06/23/125955.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>20070621 周四 GXBI最后一天上班</title><link>http://www.blogjava.net/huanghr/archive/2007/06/22/125807.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Fri, 22 Jun 2007 04:41:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/archive/2007/06/22/125807.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125807.html</wfw:comment><comments>http://www.blogjava.net/huanghr/archive/2007/06/22/125807.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125807.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125807.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上午把文档完成了，说是完成，其实只是完成了大部分，程序口径变化太大了，代码改了又改，到正式成型，初期的详细设计文档与实现代码相距10，0000，8000公里。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中午KFC了一次，其实我对这种食物也没什么好感，也不反感，像我对付异性的态度。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 下午，老李给我讲了一句话，让我思考了很长时间&#8220;没完没了的工作&#8221;，确实是的，经营分析就是没完没了的工作，口径天天变，代码天天改，没有最终版本，累！快刀砍乱麻，该收手就收手。写了一份400字左右的工作总结，经验，教训，有点形式，提了三个项目组的不足，老李看了也直叹气，嘻嘻，点到要害了，对于加班---逆来顺受，对于项目组里的人际---冷漠，资源及配置管理---垃圾。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6：30，交了这个月的工作量报告，问清楚了自己的休假计划及总部报到时间，向组里其他兄弟姐妹飞鸽了告别信息。清理电脑记忆，删文件的时候，鼻子有点酸，那种感觉，就像让母亲去杀自己的亲生儿一般。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7：00&nbsp;&nbsp; 梦之岛 鲜蛋牛肉粥<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8：00&nbsp;&nbsp; 打算游泳，等不到车，书城看书。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9：30&nbsp;&nbsp; 超市，给老爸买几件夏天的衣服。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10：00&nbsp; 宿舍。。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（ the end ）
<img src ="http://www.blogjava.net/huanghr/aggbug/125807.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-22 12:41 <a href="http://www.blogjava.net/huanghr/archive/2007/06/22/125807.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>20070620 周三 送别聚餐，一线天K歌</title><link>http://www.blogjava.net/huanghr/archive/2007/06/22/125806.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Fri, 22 Jun 2007 04:22:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/archive/2007/06/22/125806.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125806.html</wfw:comment><comments>http://www.blogjava.net/huanghr/archive/2007/06/22/125806.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125806.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125806.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 最近聚餐太频繁了，本想低调的离开算了，其他兄弟就是不同意，非得再聚一次，6送一，7送一是峰，苏牧牧羊。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3瓶95年的长城干红，满江红酒店鹅庄。敬酒，客套话，感言，总之该说的说了，不该说的，也说了，点评了自己的品行，很多了点，但没有醉，不会说的罪兄弟的话就OK了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 老雷，我们的GXCRM来头人，显然对现实有很大的不满，不满黑暗腐败的社会，不满比天还高的楼价，不满这次让他回到解放前的印花税，尽管这样，对下面的兄弟还是很好的，实干型人物。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 酒足饭饱，该唱K了，离开GX之前，再疯狂一次，王，林，邱去邀请上。项目完成后，每次离开项目组，都是以K歌首尾，所谓曲终人散吧。很开心，不停的拍照，被拍照，唯一想留下的就是这段兄弟情，在一起经历太多了：火车站相遇，赶晚点的火车，郁闷时一起吹牛皮，最忙时一起通宵加班，休闲是一起打球，游泳。。。天下没有不散的宴席，他们签了3个月的维护合同，而我选择回总部。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<img src ="http://www.blogjava.net/huanghr/aggbug/125806.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-22 12:22 <a href="http://www.blogjava.net/huanghr/archive/2007/06/22/125806.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>20070619 周二 晴 1302 大转移</title><link>http://www.blogjava.net/huanghr/archive/2007/06/22/125785.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Fri, 22 Jun 2007 03:28:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/archive/2007/06/22/125785.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125785.html</wfw:comment><comments>http://www.blogjava.net/huanghr/archive/2007/06/22/125785.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125785.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125785.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9：00，刚好碰到服务器断网，当然不能让人闲着。老李一声令下：13楼的兄弟回归祖国怀抱，香槟庆祝。 告别没装修的办公室，告别建筑工地的杀人的噪音，告别吹得骨头发麻电风扇。。。也告别了山高皇帝远的自由，1003，有空调，不错的环境。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 计划20号开始休息，真是计划不如变化，没完没了的繁琐需求，再推迟一天。中午买了2注彩票，运气好点500万到手後回家养老。往常傍晚去人人乐超市，吃一次哪里的快餐，虽说不怎喜欢，但要加班，总比不吃的好，一直觉得超市的饭菜没什么味道，只是填肚子而已，没办法，附近没什么可以选择的去处。老雷要去乐融融快餐，我对那没什么好感，有一天中午让我等了一个小时还没吃到饭，人多，管理也乱，连排的号码都要自己去找才勉强找回来，不知这个老板是怎样想的，也可能是故意制造的繁华场景吧。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 吃完饭，五象广场拍合照，newyulong的四位兄弟+ME，有两个家伙去参加别人的送别晚宴去了，对了，今天还是端午节，老李大赦天下，可以不加班。照了很多照片，日后怀旧时拿出来翻翻，也是很不错的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后回去加班，该交接代码及文档了。感觉组长对此事不怎关注，我的原则是：做好自己的事，管他MD。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22：00，阿达，我的最佳拍档，披星戴月的，算下班了。一路上再拍拍南宁高新区的夜景，真的很美，如果有足够的钱能买一套这里的房子，那就更美了。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;虽然有点累，洗完澡后还是看了半部片才睡，习惯了，越累越烦，越是要消遣。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 接下来，失眠了，原因，未知<br><br>足迹：五象广场，西南地标地王，金湖路55号，亚航财富中心，中国移动GX分公司大楼，HW-GXBI项目组，新闻大厦，1005，1003，1302，凤翔路，检察院家属楼，29，74，6，33路共驾车。 
<img src ="http://www.blogjava.net/huanghr/aggbug/125785.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-22 11:28 <a href="http://www.blogjava.net/huanghr/archive/2007/06/22/125785.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[实战篇]华为的java面试题</title><link>http://www.blogjava.net/huanghr/articles/125779.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Fri, 22 Jun 2007 03:13:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/articles/125779.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125779.html</wfw:comment><comments>http://www.blogjava.net/huanghr/articles/125779.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125779.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125779.html</trackback:ping><description><![CDATA[<font face="Times New Roman" color=#000000 size=3>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [转载]华为的java面试题<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 信息来源：JR<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JAVA方面<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 面向对象的特征有哪些方面&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2 String是最基本的数据类型吗?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3 int 和 Integer 有什么区别<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4 String 和StringBuffer的区别<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5运行时异常与一般异常有何异同？<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 异常表示程序运行过程中可能出现的非正常状态，运行时异常表示虚拟机的通常操作中可能遇到的异常，是一种常见运行错误。java编译器要求方法必须声明抛出可能发生的非运行时异常，但是并不要求必须声明抛出未被捕获的运行时异常。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6 说出一些常用的类，包,接口，请各举5个<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7 说出ArrayList,Vector, ArrayLlinkedListd的存储性能和特性<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ArrayList和Vector都是使用数组方式存储数据，此数组元素数大于实际存储的数据以便增加和插入元素，它们都允许直接按序号索引元素，但是插入元素要涉及数组元素移动等内存操作，所以索引数据快而插入数据慢，Vector由于使用了synchronized方法（线程安全），通常性能上较ArrayList差，而LinkedList使用双向链表实现存储，按序号索引数据需要进行前向或后向遍历，但是插入数据时只需要记录本项的前后项即可，所以插入速度较快。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8设计4个线程，其中两个线程每次对j增加1，另外两个线程对j每次减少1。写出程序。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以下程序使用内部类实现线程，对j增减的时候没有考虑顺序问题。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public class ThreadTest1{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private int j;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void main(String args[]){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ThreadTest1 tt=new ThreadTest1();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Inc inc=tt.new Inc();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dec dec=tt.new Dec();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;2;i++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Thread t=new Thread(inc);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t.start();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t=new Thread(dec);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t.start();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private synchronized void inc(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j++;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(Thread.currentThread().getName()+"-inc:"+j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private synchronized void dec(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; j--;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.out.println(Thread.currentThread().getName()+"-dec:"+j);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class Inc implements Runnable{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;100;i++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; class Dec implements Runnable{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public void run(){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;100;i++){<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec();<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9．&nbsp;&nbsp; JSP的内置对象及方法。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; request表示HttpServletRequest对象。它包含了有关浏览器请求的信息，并且提供了几个用于获取cookie, <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; header, 和session数据的有用的方法。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response response表示HttpServletResponse对象，并提供了几个用于设置送回 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 浏览器的响应的方法（如cookies,头信息等） </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; out out 对象是javax.jsp.JspWriter的一个实例，并提供了几个方法使你能用于向浏览器回送输出结果。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageContext <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pageContext表示一个javax.servlet.jsp.PageContext对象。它是用于方便存取各种范围的名字空间、servlet相关的对象的API，并且包装了通用的servlet相关功能的方法。 </p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; session表示一个请求的javax.servlet.http.HttpSession对象。Session可以存贮用户的状态信息 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; application applicaton <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示一个javax.servle.ServletContext对象。这有助于查找有关servlet引擎和servlet环境的信息 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; config表示一个javax.servlet.ServletConfig对象。该对象用于存取servlet实例的初始化参数。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; page page表示从该页面产生的一个servlet实例<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10.用socket通讯写出客户端和服务器端的通讯，要求客户发送数据后能够回显相同的数据。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参见课程中socket通讯例子。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11说出Servlet的生命周期，并说出Servlet和CGI的区别。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Servlet被服务器实例化后，容器运行其init方法，请求到达时运行其service方法，service方法自动派遣运行与请求对应的doXXX方法（doGet，doPost）等，当服务器决定将实例销毁的时候调用其destroy方法。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 与cgi的区别在于servlet处于服务器进程中，它通过多线程方式运行其service方法，一个实例可以服务于多个请求，并且其实例一般不会销毁，而CGI对每个请求都产生新的进程，服务完成后就销毁，所以效率上低于servlet。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12.EJB是基于哪些技术实现的?并说出SessionBean和EntityBean的区别，StatefulBean和StatelessBean的区别。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13．EJB包括（SessionBean,EntityBean）说出他们的生命周期，及如何管理事务的？</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14．说出数据连接池的工作机制是什么?</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15同步和异步有和异同，在什么情况下分别使用他们？举例说明。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16应用服务器有那些？</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17你所知道的集合类都有哪些？主要方法？</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18给你一个:驱动程序A,数据源名称为B,用户名称为C,密码为D,数据库表为T，请用JDBC检索出表T的所有数据。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19．说出在JSP页面里是怎么分页的?<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 页面需要保存以下参数：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 总行数：根据sql语句得到总行数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 每页显示行数：设定值<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当前页数：请求参数<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 页面根据当前页数和每页行数计算出当前页第一行行数，定位结果集到此行，对结果集取出每页显示行数的行即可。</p>
<p><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据库方面：</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.&nbsp;&nbsp; 存储过程和函数的区别<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 存储过程是用户定义的一系列sql语句的集合，涉及特定表或其它对象的任务，用户可以调用存储过程，而函数通常是数据库已定义的方法，它接收参数并返回某种类型的值并且不涉及特定用户表。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2.&nbsp;&nbsp; 事务是什么？<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事务是作为一个逻辑单元执行的一系列操作，一个逻辑工作单元必须有四个属性，称为 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ACID（原子性、一致性、隔离性和持久性）属性，只有这样才能成为一个事务：<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原子性<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事务必须是原子工作单元；对于其数据修改，要么全都执行，要么全都不执行。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一致性<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事务在完成时，必须使所有的数据都保持一致状态。在相关数据库中，所有规则都必须应用于事务的修改，以保持所有数据的完整性。事务结束时，所有的内部数据结构（如 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; B 树索引或双向链表）都必须是正确的。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 隔离性<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态，要么是另一并发事务修改它之前的状态，要么是另一事务修改它之后的状态，事务不会查看中间状态的数据。这称为可串行性，因为它能够重新装载起始数据，并且重播一系列事务，以使数据结束时的状态与原始事务执行的状态相同。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 持久性<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事务完成之后，它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3.&nbsp;&nbsp; 游标的作用？如何知道游标已经到了最后？<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 游标用于定位结果集的行，通过判断全局变量@@FETCH_STATUS可以判断是否到了最后，通常此变量不等于0表示出错或到了最后。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4.&nbsp;&nbsp; 触发器分为事前触发和事后触发，这两种触发有和区别。语句级触发和行级触发有何区别。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事前触发器运行于触发事件发生之前，而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 语句级触发器可以在语句执行前或后执行，而行级触发在触发器所影响的每一行触发一次。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>JAVA面试题集(一) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 基础知识： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1.C++或Java中的异常处理机制的简单原理和应用。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 当JAVA程序违反了JAVA的语义规则时，JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发NullPointerException。另一种情况就是JAVA允许程序员扩展这种语义检查，程序员可以创建自己的异常，并自由选择在何时用throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2. Java的接口和C++的虚类的相同和不同处。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 由于Java不支持多继承，而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性，现有的单继承机制就不能满足要求。与继承相比，接口有更高的灵活性，因为接口中没有任何实现代码。当一个类实现了接口以后，该类要实现接口里面所有的方法和属性，并且接口里面的属性在默认状态下面都是public <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static,所有方法默认情况下是public.一个类可以实现多个接口。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3. 垃圾回收的优点和原理。并考虑2种回收机制。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Java语言中一个显著的特点就是引入了垃圾回收机制，使c++程序员最头疼的内存管理的问题迎刃而解，它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制，Java中的对象不再有"作用域"的概念，只有对象的引用才有"作用域"。垃圾回收可以有效的防止内存泄露，有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行，不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收，程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收，增量垃圾回收。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4. 请说出你所知道的线程同步的方法。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; wait():使一个线程处于等待状态，并且释放所持有的对象的lock。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sleep():使一个正在运行的线程处于睡眠状态，是一个静态方法，调用此方法要捕捉InterruptedException异常。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; notify():唤醒一个处于等待状态的线程，注意的是在调用此方法的时候，并不能确切的唤醒某一个等待状态的线程，而是由JVM确定唤醒哪个线程，而且不是按优先级。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Allnotity():唤醒所有处入等待状态的线程，注意并不是给所有唤醒线程一个对象的锁，而是让它们竞争。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5. 请讲一讲析构函数和虚函数的用法和作用。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6. Error与Exception有什么区别？ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Error表示系统级的错误和程序不必处理的异常， <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exception表示需要捕捉或者需要程序进行处理的异常。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 7. 在java中一个类被声明为final类型，表示了什么意思？ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 表示该类不能被继承，是顶级类。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8. 描述一下你最常用的编程风格。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 9. heap和stack有什么区别。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 栈是一种线形集合，其添加和删除元素的操作应在同一段完成。栈按照后进先出的方式进行处理。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 堆是栈的一个组成元素 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10. 如果系统要使用超大整数（超过long长度范围），请你设计一个数据结构来存储这种超大型数字以及设计一种算法来实现超大整数加法运算）。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public class BigInt() <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int[] ArrOne = new ArrOne[1000]; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String intString=""; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int[] Arr(String s) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; intString = s; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for(int i=0;i&lt;ArrOne.leght;i++) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 11. 如果要设计一个图形系统，请你设计基本的图形元件(Point,Line,Rectangle,Triangle)的简单实现 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 12，谈谈final, finally, finalize的区别。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　final?修饰符（关键字）如果一个类被声明为final，意味着它不能再派生出新的子类，不能作为父类被继承。因此一个类不能既被声明为 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; abstract的，又被声明为final的。将变量或方法声明为final，可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值，而在以后的引用中只能读取，不可修改。被声明为final的方法也同样只能使用，不能重载。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　finally?再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常，那么相匹配的 catch <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 子句就会执行，然后控制就会进入 finally 块（如果有的话）。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　finalize?方法名。Java 技术允许使用 finalize() <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Object 类中定义的，因此所有的类都继承了它。子类覆盖 finalize() <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方法以整理系统资源或者执行其他清理工作。finalize() 方法是在垃圾收集器删除对象之前对这个对象调用的。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13，Anonymous Inner Class (匿名内部类) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是否可以extends(继承)其它类，是否可以implements(实现)interface(接口)? </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　匿名的内部类是没有名字的内部类。不能extends(继承) 其它类，但一个内部类可以作为一个接口，由另一个内部类实现。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 14，Static Nested Class 和 Inner Class的不同，说得越多越好(面试题有的很笼统)。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Nested Class （一般是C++的说法），Inner Class <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (一般是JAVA的说法)。Java内部类与C++嵌套类最大的不同就在于是否有指向外部的引用上。具体可见http: <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //www.frontfree.net/articles/services/view.asp?id=704&amp;page=1 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　注： 静态内部类（Inner <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Class）意味着1创建一个static内部类的对象，不需要一个外部类对象，2不能从一个static内部类的一个对象访问一个外部类对象 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第四，&amp;和&amp;&amp;的区别。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　&amp;是位运算符。&amp;&amp;是布尔逻辑运算符。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15，HashMap和Hashtable的区别。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　都属于Map接口的类，实现了将惟一键映射到特定的值上。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Hashtable 类似于 HashMap，但是不允许 null 键和 null 值。它也比 HashMap 慢，因为它是同步的。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 16，Collection 和 Collections的区别。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Collections是个java.util下的类，它包含有各种有关集合操作的静态方法。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Collection是个java.util下的接口，它是各种集合结构的父接口。 </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 17，什么时候用assert。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　断言是一个包含布尔表达式的语句，在执行这个语句时假定该表达式为 true。如果表达式计算为 false，那么系统会报告一个 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assertionerror。它用于调试目的： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert(a &gt; 0); // throws an Assertionerror if a &lt;= 0 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 断言可以有两种形式： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert Expression1 ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; assert Expression1 : Expression2 ; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Expression1 应该总是产生一个布尔值。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Expression2 可以是得出一个值的任意表达式。这个值用于生成显示更多调试信息的 String 消息。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　断言在默认情况下是禁用的。要在编译时启用断言，需要使用 source 1.4 标记： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　javac -source 1.4 Test.java <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　要在运行时启用断言，可使用 -enableassertions 或者 -ea 标记。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　要在运行时选择禁用断言，可使用 -da 或者 -disableassertions 标记。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　要系统类中启用断言，可使用 -esa 或者 -dsa 标记。还可以在包的基础上启用或者禁用断言。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　可以在预计正常情况下不会到达的任何位置上放置断言。断言可以用于验证传递给私有方法的参数。不过，断言不应该用于验证传递给公有方法的参数，因为不管是否启用了断言，公有方法都必须检查其参数。不过，既可以在公有方法中，也可以在非公有方法中利用断言测试后置条件。另外，断言不应该以任何方式改变程序的状态。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18，GC是什么? 为什么要有GC? (基础)。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　GC是垃圾收集器。Java 程序员不用担心内存管理，因为垃圾收集器会自动进行管理。要请求垃圾收集，可以调用下面的方法之一： <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.gc() <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Runtime.getRuntime().gc() <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 19，String s = new String("xyz");创建了几个String Object? <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　两个对象，一个是"xyx",一个是指向"xyx"的引用对象s。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 20，Math.round(11.5)等於多少? Math.round(-11.5)等於多少? <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Math.round(11.5)返回（long）12，Math.round(-11.5)返回（long）-11; <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 21，short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错? <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　short s1 = 1; s1 = s1 + <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1;有错，s1是short型，s1+1是int型,不能显式转化为short型。可修改为s1 =(short)(s1 + 1) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 。short s1 = 1; s1 += 1正确。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22，sleep() 和 wait() 有什么区别? 搞线程的最爱 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　sleep()方法是使线程停止一段时间的方法。在sleep <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 时间间隔期满后，线程不一定立即恢复执行。这是因为在那个时刻，其它线程可能正在运行而且没有被调度为放弃执行，除非(a)"醒来"的线程具有更高的优先级 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (b)正在运行的线程因为其它原因而阻塞。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　wait()是线程交互时，如果线程对一个同步对象x <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 发出一个wait()调用，该线程会暂停执行，被调对象进入等待状态，直到被唤醒或等待时间到。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 23，Java有没有goto? <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Goto?java中的保留字，现在没有在java中使用。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 24，数组有没有length()这个方法? String有没有length()这个方法？ <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　数组没有length()这个方法，有length的属性。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　String有有length()这个方法。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 25，Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型? <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现，重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数，我们说该方法被重写 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Overriding)。子类的对象使用这个方法时，将调用子类中的定义，对它而言，父类中的定义如同被"屏蔽"了。如果在一个类中定义了多个同名的方法，它们或有不同的参数个数或有不同的参数类型，则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 26，Set里的元素是不能重复的，那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别? <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　Set里的元素是不能重复的，那么用iterator()方法来区分重复与否。equals()是判读两个Set是否相等。 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 　　equals()和==方法决定引用值是否指向同一对象equals()在类中被覆盖，为的是当两个分离的对象的内容和类型相配的话，返回真值。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br></font></p>
<img src ="http://www.blogjava.net/huanghr/aggbug/125779.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-22 11:13 <a href="http://www.blogjava.net/huanghr/articles/125779.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[介绍篇]oracle大表分区.</title><link>http://www.blogjava.net/huanghr/articles/125778.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Fri, 22 Jun 2007 03:11:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/articles/125778.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125778.html</wfw:comment><comments>http://www.blogjava.net/huanghr/articles/125778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125778.html</trackback:ping><description><![CDATA[<p>oracle大表分区的一点点心得</p>
<p>创建：2005-10-27 22:04:48<br>作者：Unlinux<br>来自: <a href="http://www.unlinux.com/">http://www.Unlinux.com</a></p>
<p>最近在做一个客户关系管理系统，项目做的到不是非常成功，可还是学到了不少的知识，由于数据量很大，没有专门的oracle数据库人员支持，对数据库优化管理等也只有我这个约懂一点的人上了。在对数据库优化上有一点点心得写出来希望能同大家一起学习和交流。</p>
<p>数据库大表的优化：采用蔟表（clustered tables）及蔟索引（Clustered Index）<br>蔟表和蔟索引是oracle所提供的一种技术，其基本思想是将几张具有相同数据项、并且经常性一起使用的表通过共享数据块（data block）的模式存放在一起。各表间的共同字段作为蔟键值（cluster key），数据库在访问数据时，首先找到蔟键值，以此同时获得若干张表的相关数据。蔟表所能带来的好处是可以减少I/O和减少存储空间，其中我更看重前者。采用表分区（partition）<br>表分区技术是在超大型数据库(VLDB)中将大表及其索引通过分区（patition）的形式分割为若干较小、可管理的小块，并且每一分区可进一步划分为更小的子分区（sub partition）。而这种分区对于应用来说是透明的。通过对表进行分区，可以获得以下的好处：<br>1）减少数据损坏的可能性。<br>2）各分区可以独立备份和恢复，增强了数据库的可管理性。<br>3）可以控制分区在硬盘上的分布，以均衡IO，改善了数据库的性能。<br>蔟表与表分区技术的侧重点各有不同，前者侧重于改进关联表间查询的效率，而表分区侧重于大表的可管理性及局部查询的性能。而这两项对于我的系统来说都是极为重要。由于本人技术限制，目前尚不确定两者是否可以同时实现，有那位在这方面有经验的给点指导将不胜感激。 <br>在两者无法同时实现的情况下，应依照需实现的功能有所取舍。综合两种模式的优缺点，我认为采用表分区技术较为适用于我们的应用。<br>Oracle的表分区有以下几种类型：<br>1）范围分区：将表按某一字段或若干个字段的取值范围分区。<br>2）hash分区：将表按某一字段的值均匀地分布到若干个指定的分区。<br>3）复合分区：结合了前面两种分区类型的优点，首先通过值范围将表进行分区，然后以hash模式将数据进一步均匀分配至物理存储位置。<br>综合考虑各项因素，以第三种类型最为优越。（本人实在技术有限仅采用了第1种范围分区，因为比较简单，便于管理）<br>优化的具体步骤：<br>1．确定需要优化分区的表：<br>经过对系统数据库表结构和字段，应用程序的分析，现在确定那些大表需要进行分区：<br>如帐户交易明细表acct_detail.<br>2．确定表分区的方法和分区键：<br>分区类型：采用范围分区。<br>分 区 键：<br>按trans_date（交易时间）字段进行范围分区.<br>3．确定分区键的分区范围，及打算分多少分区：<br>如：帐户交易明细表acct_detail.<br>根据字段（trans_date）分成一下分区：<br>1）．分区1：09/01/2003 <br>2）．分区2：10/01/2003 <br>3）．分区3：11/01/2003 <br>4）．分区4：12/01/2003 <br>5）．分区5：01/01/2004 <br>6）．分区6：02/01/2004 <br>该表明显需要在以后增加分区。<br>4．建立分区表空间和分区索引空间<br>1)．建立表的各个分区的表空间： <br>1．分区1：crm_detail_200309<br>CREATE TABLESPACE crm_detail_200309 DATAFILE <br>&#8216;/u1/oradata/orcl/crm_detail_20030901.dbf&#8217; <br>SIZE 2000M EXTENT MANAGEMENT LOCAL UNIFORM size 16M;<br>其它月份以后同以上（我在此采用oracle的表空间本地管理的方法）。</p>
<p>2）. 建立分区索引表空间<br>1．分区1：index_detail_200309<br>CREATE TABLESPACE index_detail_200309 DATAFILE <br>&#8216;/u3/oradata/orcl/index_detail_20030901.dbf&#8217; <br>SIZE 2000M EXTENT MANAGEMENT LOCAL UNIFORM size 16M;<br>5．建立基于分区的表：<br>create table table name<br>(<br>........</p>
<p>enable row movment --此语句是能修改行分区键值，也就是如不添加该 句不能修改记录的分区键值，不能使记录分区迁移<br>PARTITION BY RANGE (TRANS_DATE)<br>(<br>PARTITION crm_detail_200309 VALUES LESS THAN <br>(TO_DATE (&#8216;09/01/2003&#8217;,&#8217;mm/dd/yyyy&#8217; <br>TABLESPACE crm_detail_200309,<br>其他分区.....<br>;<br>6．建立基于分区的索引：<br>create index index_name on table_name (分区键+&#8230;)<br>global --这里是全局分区索引，也可以建本地索引<br>PARTITION BY RANGE (TRANS_DATE)<br>(<br>PARTITION index_detail_200309 VALUES LESS THAN <br>(TO_DATE ('09/01/2003','mm/dd/yyyy' ) <br>TABLESPACE index_detail_200309,<br>其他索引分区...<br>;</p>
<p>对表的分区就这样完成了，第一次主要确定表分区的分区策约是最重要的，可我觉得对表分区难在以后对表分区的管理上面，因为随着数据量的增加，表分区必然存在删除，扩容，增加等。在这些过程中还牵涉到全局等索引，因为对分区表进行ddl操作为破坏全局索引，故全局索引必须在ddl后要重 rebuild.</p>
<p>以上写的很乱也很差，希望大家多多谅解和指点。</p>
<img src ="http://www.blogjava.net/huanghr/aggbug/125778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-22 11:11 <a href="http://www.blogjava.net/huanghr/articles/125778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[操作篇]对一个大表进行分区操作 </title><link>http://www.blogjava.net/huanghr/articles/125776.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Fri, 22 Jun 2007 03:09:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/articles/125776.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125776.html</wfw:comment><comments>http://www.blogjava.net/huanghr/articles/125776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125776.html</trackback:ping><description><![CDATA[<p>对一个大表进行分区操作 <br>=========================================================== <br>作者: 西门吹牛(<a href="http://.itpub.net/">http://.itpub.net</a>)<br>发表于: 2004.09.06 17:23<br>分类: 数据库优化 <br>出处: <a href="http://.itpub.net/post/306/1471">http://.itpub.net/post/306/1471</a><br>--------------------------------------------------------------- </p>
<p>对一个大表进行分区操作</p>
<p>一：使用分区表的前提</p>
<p>以system身份登陆数据库，查看 v$option 视图，如果其中 Partitioning 为TRUE，则支持分区功能；<br>select value&nbsp; from v$option where parameter='Partitioning';<br>否则不支持。</p>
<p>二：使用分区表的背景<br>目前有一个大表 T_MPN_OUTDATE表，有记录 8千万 条，查询速度比较慢，为了优化想做成一个分区表，按照范围分区，这个表的happen_time字段最合适，因为它是按照时间来区分的，目前的数据是从今年5月份到现在（9月份）。不过这个字段虽然是8位的，但是里面的记录可能有的是6位的到月的记录。</p>
<p>这个表的结构和索引情况如下<br>CREATE TABLE sms.t_mpn_outdate<br>(<br>&nbsp;&nbsp;&nbsp; mobile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (11)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; , happen_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (8)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; , prov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; , state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>)<br>ORGANIZATION&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HEAP<br>NOMONITORING<br>PARALLEL<br>(<br>&nbsp; DEGREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; INSTANCES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>)<br>NOCACHE<br>PCTUSED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40<br>PCTFREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>INITRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>MAXTRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255<br>STORAGE<br>(<br>&nbsp; INITIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; NEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; MINEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; MAXEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unlimited<br>&nbsp; PCTINCREASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>&nbsp; FREELISTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; FREELIST GROUPS&nbsp;&nbsp; 1<br>&nbsp; BUFFER_POOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default<br>)<br>LOGGING<br>TABLESPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; users<br>;</p>
<p><br>CREATE INDEX sms.idx_t_mpn_outdate ON sms.t_mpn_outdate<br>(<br>&nbsp;&nbsp;&nbsp; mobile<br>)<br>PARALLEL<br>(<br>&nbsp; DEGREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; INSTANCES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>)<br>PCTFREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>INITRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>MAXTRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255<br>STORAGE<br>(<br>&nbsp; INITIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; NEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; MINEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; MAXEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unlimited<br>&nbsp; PCTINCREASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>&nbsp; FREELISTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; FREELIST GROUPS&nbsp;&nbsp; 1<br>&nbsp; BUFFER_POOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default<br>)<br>LOGGING<br>TABLESPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; users<br>;</p>
<p><br>三：步骤</p>
<p>1、查看本地硬盘的空间还有多少，USERS表空间容量是多少，查看需要分区的表的占用空间是多少</p>
<p>查看users表空间的容量<br>select <br>b.tablespace_name ,<br>(b.bytes)/(1024*1024) content ,<br>(b.bytes-sum(nvl(a.bytes,0)))/(1024*1024) used,<br>sum(nvl(a.bytes,0))/(1024*1024)&nbsp;&nbsp; remain<br>from dba_free_space a,dba_data_files b <br>where a.file_id=b.file_id and b.tablespace_name = 'USERS'<br>group by b.tablespace_name,b.file_id,b.bytes <br>order by b.file_id;</p>
<p>TABLESPACE_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CONTENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; USED&nbsp;&nbsp;&nbsp;&nbsp; REMAIN<br>------------------------------ ---------- ---------- ----------<br>USERS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 22.5 21.5078125&nbsp;&nbsp; .9921875</p>
<p><br>查看本地 t_mpn_outdate 表占用空间的大小<br>select segment_name,bytes/(1024*1024) as content from user_segments where segment_name='T_MPN_OUTDATE';</p>
<p>SEGMENT_NAME&nbsp;&nbsp; CONTENT<br>----------------------------------------------------<br>T_MPN_OUTDATE&nbsp;&nbsp;&nbsp; .125</p>
<p>查看索引占用的空间大小<br>select segment_name,bytes/(1024*1024) as content from user_segments where segment_name='IDX_T_MPN_OUTDATE';</p>
<p>SEGMENT_NAME&nbsp;&nbsp; CONTENT<br>----------------------------------------------------<br>IDX_T_MPN_OUTDATE&nbsp;&nbsp; .125</p>
<p><br>查看本地硬盘下面是否足够容纳表和表索引的大小<br>(略)</p>
<p><br>然后以system 身份创建独立的表空间(大小可以根据数据量的多少而定，路径根据实际情况而定)，我做实验的例子是同一个表空间，没有使用独立的表空间。建立表空间的相关的语法是</p>
<p>create tablespace happen_time_200405 datafile '/home/oradata/oradata/test/happen_time_200405.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0);</p>
<p>create tablespace happen_time_200406 datafile '/home/oradata/oradata/test/happen_time_200406.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0);</p>
<p>create tablespace happen_time_200407 datafile '/home/oradata/oradata/test/happen_time_200407.dbf' size 50M default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0);</p>
<p>=====================================================</p>
<p>方案一<br>2、基于旧表创建一个新表(这一步对原来的表可能会有影响，最好放在晚上做)<br>set timing on<br>set time on</p>
<p>CREATE TABLE T_MPN_OUTDATE2<br>PARTITION BY RANGE (happen_time) <br>( PARTITION happen_time_200405 <br>VALUES LESS THAN ('200406') <br>TABLESPACE users, <br>PARTITION happen_time_200406 <br>VALUES LESS THAN ('200407') <br>TABLESPACE users ,<br>PARTITION happen_time_200407 <br>VALUES LESS THAN ('200408') <br>TABLESPACE users ,<br>PARTITION happen_time_200408 <br>VALUES LESS THAN ('200409') <br>TABLESPACE users ,<br>PARTITION happen_time_200409<br>VALUES LESS THAN ('200410') <br>TABLESPACE users<br>)<br>PCTUSED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40<br>PCTFREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>INITRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>MAXTRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255<br>STORAGE<br>(<br>&nbsp; INITIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; NEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; MINEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; MAXEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unlimited<br>&nbsp; PCTINCREASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>&nbsp; FREELISTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br>&nbsp; FREELIST GROUPS&nbsp;&nbsp; 1<br>&nbsp; BUFFER_POOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default<br>)<br>LOGGING<br>AS SELECT * FROM T_MPN_OUTDATE; </p>
<p>注意：freelists 参数我修改为3，因为这个表有很多insert操作，加大这个参数对性能有优化作用。</p>
<p><br>看看插入记录是否成功<br>select * from T_MPN_OUTDATE2 where rownum &lt; 90;</p>
<p>选择其中的一个分区<br>select * from T_MPN_OUTDATE2 partition (happen_time_200409) where rownum &lt; 90;</p>
<p><br>3、新旧两个表改名称（时间需要测试一下）</p>
<p>先测试改一个表的名称需要多少时间，把这个时间加倍就是系统对前端程序没有反应的时间。<br>set timing on<br>set time on<br>RENAME T_MPN_OUTDATE2 TO T_MPN_OUTDATE3; </p>
<p><br>然后再正式修改后面两个表，这时间就是系统对前端程序没有反应的时间。<br>RENAME T_MPN_OUTDATE TO T_MPN_OUTDATE2; <br>RENAME T_MPN_OUTDATE3 TO T_MPN_OUTDATE; </p>
<p>方案一结束，下面继续步骤4</p>
<p>=====================================================</p>
<p>方案二<br>2 、用EXPORT工具把旧数据备份在 T_MPN_OUTDATE.DMP中；用户名密码和保存路径需要按照实际情况修改一下<br>exp sms/sms file=c:aaT_MPN_OUTDATE.DMP tables=T_MPN_OUTDATE </p>
<p><br>原来的旧表改名，从这个时候起，数据库就对前端程序没有反应了<br>alter table t_mpn_outdate rename to t_mpn_outdate_old2 nowait;</p>
<p><br>以 sms 身份创建分区的表</p>
<p>CREATE TABLE sms.t_mpn_outdate<br>(<br>&nbsp;&nbsp;&nbsp; mobile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (11)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; , happen_time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (8)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; , prov&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARCHAR2 (5)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>&nbsp; , state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NUMBER )<br>&nbsp; PARTITION BY RANGE (happen_time) <br>( PARTITION happen_time_200405 <br>VALUES LESS THAN ('200406') <br>TABLESPACE users, <br>PARTITION happen_time_200406 <br>VALUES LESS THAN ('200407') <br>TABLESPACE users ,<br>PARTITION happen_time_200407 <br>VALUES LESS THAN ('200408') <br>TABLESPACE users ,<br>PARTITION happen_time_200408 <br>VALUES LESS THAN ('200409') <br>TABLESPACE users ,<br>PARTITION happen_time_200409<br>VALUES LESS THAN ('200410')&nbsp; <br>)<br>PCTUSED&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 40<br>PCTFREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>INITRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>MAXTRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255<br>STORAGE<br>(<br>&nbsp; INITIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; NEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; MINEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; MAXEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unlimited<br>&nbsp; PCTINCREASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>&nbsp; FREELISTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br>&nbsp; FREELIST GROUPS&nbsp;&nbsp; 1<br>&nbsp; BUFFER_POOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default<br>)<br>LOGGING<br>TABLESPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; users<br>;</p>
<p><br>IMPORT导入数据，参数ignore=y<br>%imp sms/sms file=c:aaT_MPN_OUTDATE.DMP tables=(t_mpn_outdate) commit=y buffer=10240000 ignore=y </p>
<p><br>方案二结束，下面继续步骤4</p>
<p>=====================================================<br>注意：系统修改表名的时候必需没有其他的事务对表进行操作，否则修改表名称的时候如果有未提交的事务，报告<br>ERROR 位于第 1 行:<br>ORA-00054: 资源正忙，要求指定 NOWAIT</p>
<p>如果加上了nowait选项，又会报错<br>ERROR 位于第 1 行:<br>ORA-14048: 分区维护操作不可以与其它操作组合</p>
<p>最好是关闭数据库重新启动的时候进入restrict过程。<br>=====================================================</p>
<p><br>4、写SQL语句把第三步中遗漏的数据补充到新表中。<br>这一步的原理是重新把最近的一个月的记录插入到分区表中，然后再删除重复的记录，所以建议创建分区表的时候最好在某个月的月初做，按照本例，最好是在9月上旬做分区，这样记录数还不是很多。</p>
<p>先建立一个临时表把9月份所有的记录都包括<br>create table T_MPN_OUTDATE_TMP as select * from T_MPN_OUTDATE2 where happen_time like '200409%' ;</p>
<p>把这个表的记录插入到分区表<br>insert into T_MPN_OUTDATE select * from T_MPN_OUTDATE_TMP;</p>
<p>删除临时表<br>drop table T_MPN_OUTDATE_TMP ;</p>
<p>把分区表中9月份相同的记录删掉。<br>DELETE FROM&nbsp; T_MPN_OUTDATE partition (happen_time_200409) E <br>WHERE E.ROWID &gt; (SELECT MIN(X.ROWID) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FROM T_MPN_OUTDATE&nbsp; partition (happen_time_200409) x<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WHERE X.mobile = E.mobile<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and&nbsp;&nbsp; X.happen_time = E.happen_time<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and&nbsp;&nbsp; X.prov = E.prov<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; and&nbsp;&nbsp; X.state = E.state<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; );</p>
<p>5、建立索引<br>CREATE INDEX sms.idx_t_mpn_outdate_partition2 ON sms.t_mpn_outdate<br>(<br>&nbsp;&nbsp;&nbsp; mobile<br>)<br>PARALLEL<br>(<br>&nbsp; DEGREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; INSTANCES&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>)<br>PCTFREE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10<br>INITRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2<br>MAXTRANS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 255<br>STORAGE<br>(<br>&nbsp; INITIAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; NEXT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 131072<br>&nbsp; MINEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1<br>&nbsp; MAXEXTENTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unlimited<br>&nbsp; PCTINCREASE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0<br>&nbsp; FREELISTS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3<br>&nbsp; FREELIST GROUPS&nbsp;&nbsp; 1<br>&nbsp; BUFFER_POOL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; default<br>)<br>LOGGING<br>LOCAL<br>TABLESPACE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; users<br>;</p>
<p>备注：索引加local选项，否则truncate分区，索引将失效，所有用到索引的查询都无法进行。<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另外 freelists 参数我修改为3，因为这个表有很多insert操作，加大这个参数对性能有优化作用。</p>
<p>6、分区表的相关维护操作<br>1)分区表的扩容：</p>
<p>到了2004 年10月份，建立新的表空间：(或者仍然用原来的USER表空间,这一步就不需要了)<br>create tablespace happen_time_200405 datafile '/home/oradata/oradata/test/happen_time_200405.dbf' size 50m default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);</p>
<p>为表添加新分区和表空间：</p>
<p>alter table T_MPN_OUTDATE add partition happen_time_200410<br>VALUES LESS THAN ('200411') <br>tablespace users<br>storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0);</p>
<p>2)删除不必要的分区</p>
<p>将2004年05月的数据备份（备份方法见 3)EXPORT 分区），将2004年05月的分区删除。<br>alter table T_MPN_OUTDATE drop PARTITION happen_time_200405;</p>
<p>删除物理文件<br>%rm /home/oradata/oradata/test/happen_time_200405.dbf</p>
<p>3)EXPORT 分区：</p>
<p>% exp sms/sms tables=T_MPN_OUTDATE:happen_time_200405 rows=Y file=c:aahappen_time_200405.dmp</p>
<p>4)IMPORT分区：</p>
<p>例如用户要查看2004年05月的数据，先创建表空间</p>
<p>create tablespace happen_time_200405 datafile '/home/oradata/oradata/test/happen_time_200405.dbf' size 50m default storage (initial 100k next 100k minextents 1 maxextents unlimited pctincrease 1);</p>
<p>再导入数据<br>%imp sms/sms file=c:aahappen_time_200405.dmp tables=(T_MPN_OUTDATE:happen_time_200405) ignore=y</p>
<p>(说明：如果不指明导入的分区，imp会自动按分区定义的范围装载数据)</p>
<p>5)查看分区信息： <br>DBA要查看表的分区信息，可查看数据字典USER_EXTENTS,操作如下： <br>SELECT * FROM user_extents WHERE SEGMENT_NAME='T_MPN_OUTDATE'; 　&nbsp; </p>
<p>&nbsp;</p>
<p>感谢yangtingkun版主、pingshx、 ZALBB、Fenng等网友的支持</p>
<p>&nbsp;</p>
<p><br>备注：如果是9iR2版本就可以使用 在线表格重定义 技术实现这个功能。不用常规方法（8i以前的方法）了。</p>
<p><br>&nbsp;</p>
<img src ="http://www.blogjava.net/huanghr/aggbug/125776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-22 11:09 <a href="http://www.blogjava.net/huanghr/articles/125776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>20070618-做移动BI的一点有感而发</title><link>http://www.blogjava.net/huanghr/archive/2007/06/18/125016.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Mon, 18 Jun 2007 15:23:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/archive/2007/06/18/125016.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/125016.html</wfw:comment><comments>http://www.blogjava.net/huanghr/archive/2007/06/18/125016.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/125016.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/125016.html</trackback:ping><description><![CDATA[06年11月开始接触BI，也称为经营分析，类似于数据挖掘，大半年过去了，第一个项目也接近尾声，发点感受，或者说是牢骚。做BI，总结一个字：累。系统不算庞大，但超级乱，接口数据结构不规范，N个BOSS系统的大杂烩，每个厂家提供的接口表千变万化，千差万别。尽管有文档做依据，分析用的口径变化无常，几天一变，接口变了，汇总，应用跟着要变，360变，像老孙的金箍棒，越变越烂，真不明白，中国移动每个省都花几百万到几千万搞这个经营分析到底值不值，听说是为了洗钱的，呵呵，商业机密，不便透露。
<img src ="http://www.blogjava.net/huanghr/aggbug/125016.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-18 23:23 <a href="http://www.blogjava.net/huanghr/archive/2007/06/18/125016.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]java面试题</title><link>http://www.blogjava.net/huanghr/articles/124904.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Mon, 18 Jun 2007 03:12:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/articles/124904.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/124904.html</wfw:comment><comments>http://www.blogjava.net/huanghr/articles/124904.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/124904.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/124904.html</trackback:ping><description><![CDATA[<p>昨天去了个公司面谈，几十个人的小公司，做java的web开发，职位是java高级软工，一些问题我总结了一下，感兴趣的可以研究研究。</p>
<p>1，spring代理如何实现？spring的监听如何实现？spring与jms的使用。</p>
<p>2，OSCACHE、ENCACHE的配置使用</p>
<p>3，MYSQL相关技巧</p>
<p>4，HQL查询，返回结果是什么？举例一个HQL查询语句</p>
<p>5，hibernate的filter如何使用</p>
<p>6，公司里两台电脑的SVN连接不上主机，可能是什么原因</p>
<p>7，SPRING使用过哪些技术，简单谈谈</p>
<p>8，开发思想和经验的总结体会</p>
<p>9，smartupload文件上传，服务器卡死的原因</p>
<p>10，SOCKET的XML大文件通讯性能的了解</p>
<p>11，AJAX用过哪些技术，简单实现流程</p>
<p>12，java与c++之间的socket通讯字节流如何处理</p>
<p>13，对数据库设计流程图的理解</p>
<p>14，谈谈以前如何使用UML设计</p>
<p>15，谈谈关于权限设计及算法</p>
<img src ="http://www.blogjava.net/huanghr/aggbug/124904.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-18 11:12 <a href="http://www.blogjava.net/huanghr/articles/124904.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>[转]一个朋友的面试经历一</title><link>http://www.blogjava.net/huanghr/articles/124900.html</link><dc:creator>大黄</dc:creator><author>大黄</author><pubDate>Mon, 18 Jun 2007 03:05:00 GMT</pubDate><guid>http://www.blogjava.net/huanghr/articles/124900.html</guid><wfw:comment>http://www.blogjava.net/huanghr/comments/124900.html</wfw:comment><comments>http://www.blogjava.net/huanghr/articles/124900.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/huanghr/comments/commentRss/124900.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/huanghr/services/trackbacks/124900.html</trackback:ping><description><![CDATA[这个星期的几天都在面试，一共面试了三家，昨天面试了一家叫做《深圳网信联动技术有限<br>公司》的公司，在技术上被打击得不行。做了一份试题，那试题也没有什么，只是比较基础<br>的理论知识，但是，就是那些不太常用也不太常注意的一些知识点。做得那个真是叫做一踏<br>糊涂啊，结果找了一个技术人员来问我问题，问的那些问题也是比较简单的，但是就是不太<br>注意的一些，结果搞得那个搞技术的直摇头啊。<br>今天又面试了两家，上午的一这是叫《A8音乐集团》的，进去也是先做试题。这个试题就是<br>比较深了，主要是针对数据仓库的。有两个是我根本就不太知道的问题：1、数据仓库存储与<br>传统的不同存储点是什么？2、星形纬度与雪花型结构的不同点。3、元数据管理及方法。4、<br>常见数据挖掘模型，特点及适用范围。5、半累加性行为。总共才9个题目，结果就有5个没有<br>答出来，还有几个是答非所问。唉，现在是无地自容了啊。<br>下午去了《桑菲通信公司》面试，这次是技术上的东西没有问了，一填完简历，就来了一个<br>经理跟我谈话，还没有聊上几句，就来了一句'can you introduce yourself in English?'<br>我晕了，就来了一句中文&#8220;我的口语不行，但可以读写&#8221;，结果就让我写下来。我没有办法，<br>只能硬着头皮上了，随便写了几句上去，我以为没有半点希望，结果没想到还是搞来了一个<br>技术人员。跟他一聊，结果是对技术不是太重好，但是要English。最后是人事部的给我说了<br>一下现状。我也没有抱太大希望了。<br>看来我现在迫切需要解决的问题主要有：1、在English上，要能进够进行正常的对话。2、在<br>技术方面，要有一个进一步的深入学习。
<img src ="http://www.blogjava.net/huanghr/aggbug/124900.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/huanghr/" target="_blank">大黄</a> 2007-06-18 11:05 <a href="http://www.blogjava.net/huanghr/articles/124900.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>