??xml version="1.0" encoding="utf-8" standalone="yes"?>国产亚洲精品a在线观看app,亚洲精品无码久久久久去q,久久久久亚洲精品无码网址色欲http://www.tkk7.com/fengliangjun/category/1649.htmlzh-cnFri, 15 Jan 2016 06:07:08 GMTFri, 15 Jan 2016 06:07:08 GMT60M-SYS 文档驱动软g设计Ҏhttp://www.tkk7.com/fengliangjun/articles/429009.htmlmorcble的blogmorcble的blogTue, 12 Jan 2016 07:26:00 GMThttp://www.tkk7.com/fengliangjun/articles/429009.htmlhttp://www.tkk7.com/fengliangjun/comments/429009.htmlhttp://www.tkk7.com/fengliangjun/articles/429009.html#Feedback0http://www.tkk7.com/fengliangjun/comments/commentRss/429009.htmlhttp://www.tkk7.com/fengliangjun/services/trackbacks/429009.html问题Q?/strong>
在我们的软g立项阶段Q我们通常会预估Y件开发周期,成本预算Qh员配|,版本q代旉节点.
但是大量的Y件研发在实际的操作上都不可能按我们计划顺利实施?/div>
因ؓ有很多综合的因素是hZ可控的,
1,不断变更的需?/div>
最有可能导致Y件研发失败的因素。客hw不一定是软g专业人士Q大多是用一堆可能互不相q的松散的功能点来讲诉他们所设想的Y件。他?/div>
需要什么样的Y件和他们所能描q的可能差距很大。在研发的过E中Q甚至交付阶D,客户也会不断的提出新需求和变更需求?/div>
2,业务模型设计有误
需求调研不明确或者涉及到需求大的变更都会媄响业务模型,直接D数据库大q度增删数据表及字段
3,pȝ~程l构J琐
多模块及分布式远E调用系l与研发环境紧耦合。在研发中需要调用多个远E服?不包括第三方pȝ)Q测试一个子功能设计到库打包到maven库再q程包含Q极大增加了~程试的步骤与隑ֺ?/div>
4,前端和后端研发的旉?/div>
后端研发比前端慢Q前端需要的模拟数据需要等待后端的服务Q或者前端根据业务写模拟数据
5,研发人员差异
人员的素质参差不齐,~程风格不统一Q逻辑思维不够严密常常引发很多BUG?/div>
改变Q?/span>
文驱动的模板系l设?/div>
֐思义Q以需求文档ؓ驱动Q模板ؓ材料Q以架构为核心,通过模式映射软gl装我们的Y件系l,M-SYS?/div>
M-SYS的必d含的模块Q?/div>
    前端面Q前端JS框架Q后端服务模块,后端数据库操作模块,~存模块Q日志模块,权限pȝQSession子系l?/div>
    针对Ud服务Q需要增加后端数据加密系l,后端服务pȝ?/div>
    针对分布式系l,需要增加分布式q程调用模块,服务发现子系l,分布式消息子pȝQ分布式~存pȝ?/div>
M-SYS的几个必要特征:
    1Q简单逻辑的代码自动化Q根据文生成增删查改看的前端和后端代码。当需求导致文变更时Q也可简单的重新生成代码?/div>
    2Q功能模块插件模式:Ҏ需求自由搭配不同需求文组装成新的pȝ?/div>
    3Q简化研发和试Q把pȝ设计Q细节,Ҏ犯错的地方与研发人员高度隔离QY件开发h员仅仅专注于业务逻辑的实玎ͼ便捷的测试环境和步骤?/div>
模板Q模块,特征及子pȝ的设计此文章不做详q。以下以单的实现做ؓ说明Q?br />
需求文档以Excel?br />


利用模式映射软g在几十毫U生成以下所有的模块










在M-SYSTEM体系下,一个不会编E的人都能非常方便的~写Z个庞大的软g及分布式pȝ。M-SYSTEM每个独立的轻服务模块Q在名空间管理下Q利用已有的各种服务可以像搭U木一L成一个复杂的界面Q?/div>

morcble的blog 2016-01-12 15:26 发表评论
]]>JAVA 转码http://www.tkk7.com/fengliangjun/articles/285064.htmlmorcble的blogmorcble的blogThu, 02 Jul 2009 01:24:00 GMThttp://www.tkk7.com/fengliangjun/articles/285064.htmlhttp://www.tkk7.com/fengliangjun/comments/285064.htmlhttp://www.tkk7.com/fengliangjun/articles/285064.html#Feedback0http://www.tkk7.com/fengliangjun/comments/commentRss/285064.htmlhttp://www.tkk7.com/fengliangjun/services/trackbacks/285064.html   HashMap<String,Method> setMethodMap = new HashMap<String,Method>();
  HashMap<String,Method> getMethodMap = new HashMap<String,Method>();
  List<String> propertyList= new ArrayList<String>();
  Method[] methods = obj.getClass().getDeclaredMethods();
  for(Method method:methods){
   String methodName = method.getName();
   if( methodName.indexOf("get")!=-1){
    if(method.getReturnType().equals(String.class)){
     getMethodMap.put(methodName.substring(3),method);
     propertyList.add(methodName.substring(3));
    }
   }
   else if( methodName.indexOf("set")!=-1){
    if(method.getParameterTypes()[0].equals(String.class)){
     setMethodMap.put(methodName.substring(3),method);
    }
   }
  }
  String tempvalue = null;
  String propertyName = null;
  for(int i = 0;i <propertyList.size();i++){
   try {
    propertyName = propertyList.get(i);    
    tempvalue = (String) getMethodMap.get(propertyName).invoke(obj, new Object[0]);
    if(tempvalue!=null&&!tempvalue.equals(""))
     tempvalue = new String(tempvalue.getBytes(fromEncode),toEncode);
    setMethodMap.get(propertyName).invoke(obj, tempvalue);
   } catch (IllegalArgumentException e) {
    e.printStackTrace();
   } catch (IllegalAccessException e) {
    e.printStackTrace();
   } catch (InvocationTargetException e) {
    e.printStackTrace();
   } catch (UnsupportedEncodingException e) {
    e.printStackTrace();
   }
  }
  
 }



test eg  paseCode(new Object(),"GB2312","latin1")

morcble的blog 2009-07-02 09:24 发表评论
]]>
java 分割合ƈ文ghttp://www.tkk7.com/fengliangjun/articles/259038.htmlmorcble的blogmorcble的blogWed, 11 Mar 2009 03:04:00 GMThttp://www.tkk7.com/fengliangjun/articles/259038.htmlhttp://www.tkk7.com/fengliangjun/comments/259038.htmlhttp://www.tkk7.com/fengliangjun/articles/259038.html#Feedback0http://www.tkk7.com/fengliangjun/comments/commentRss/259038.htmlhttp://www.tkk7.com/fengliangjun/services/trackbacks/259038.html import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileReadAndWrite{
 public static void main(String[] args) {
  FileReadAndWrite fileReadAndWrite = new FileReadAndWrite();
  //fileReadAndWrite.splitFile("c:/1.doc");
  fileReadAndWrite.mergeFile("c:/1.doc1","c:/1.doc2");
 }
 
 public void splitFile(String filePath){
  try {
   FileInputStream is = new FileInputStream(filePath);
   int file1Size = is.available()/2;
   int buffersize = 512;
   file1Size = (file1Size/buffersize)*buffersize;
   //int file2Size = is.available() - file1Size;
   
   byte buffer[] = new byte[buffersize];
   
   int i = 0;
   FileOutputStream os1 = new FileOutputStream(filePath+"1");//file 1
   FileOutputStream os2 = new FileOutputStream(filePath+"2");//file 2
   while ((is.read(buffer, 0, buffersize) != -1) && (buffersize > 0)) {
       if((i<file1Size/buffersize)){
        os1.write(buffer);
       }
       else{
        os2.write(buffer);
       }
       i++;
   }
   os1.close();
   os2.close();
   is.close();
   
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
 
 public void mergeFile(String filePath1,String filePath2){
  try {
   FileInputStream is1 = new FileInputStream(filePath1);
   FileInputStream is2 = new FileInputStream(filePath2);
   
   FileOutputStream os1 = new FileOutputStream(filePath1.substring(0,filePath1.length()-1));
   int buffersize = 512;
   byte buffer[] = new byte[buffersize];
   
   while ((is1.read(buffer, 0, buffersize) != -1) && (buffersize > 0)) {
        os1.write(buffer);   
   }
   while ((is2.read(buffer, 0, buffersize) != -1) && (buffersize > 0)) {
       os1.write(buffer);   
  }
   is1.close();
   is2.close();
   os1.close();
   
  } catch (FileNotFoundException e) {
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

morcble的blog 2009-03-11 11:04 发表评论
]]>
关于JAVA的泛cd?/title><link>http://www.tkk7.com/fengliangjun/articles/26542.html</link><dc:creator>morcble的blog</dc:creator><author>morcble的blog</author><pubDate>Wed, 04 Jan 2006 05:40:00 GMT</pubDate><guid>http://www.tkk7.com/fengliangjun/articles/26542.html</guid><wfw:comment>http://www.tkk7.com/fengliangjun/comments/26542.html</wfw:comment><comments>http://www.tkk7.com/fengliangjun/articles/26542.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/fengliangjun/comments/commentRss/26542.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/fengliangjun/services/trackbacks/26542.html</trackback:ping><description><![CDATA[<P><FONT size=2>JAVA的泛cd,cMc++中的模板template,从JDK1.5开始支持编写泛cd了?BR>列如Q?BR>①jdk1.5以前的代?BR>import java.util.Hashtable;<BR>class Test {<BR>  public static void main(String[] args) {<BR>    Hashtable h = new Hashtable();<BR>    h.put(new Integer(0), "value");<BR>    String s = (String)h.get(new Integer(0));<BR>    System.out.println(s);<BR>  }<BR>}<BR>里面有强制的数据cd转化?/FONT></P> <P><BR><FONT size=2>而在javaQjdk1.5Q的源代码中则没有了数据的强制{?/FONT></P> <P><FONT size=2>class Hashtable<Key, Value> {<BR>  ...<BR>  Value put(Key k, Value v) {...}<BR>  Value get(Key k) {...}<BR>}<BR>import java.util.Hashtable;<BR>class Test {<BR>  public static void main(String[] args) {<BR>    Hashtable<Integer, String> h = new Hashtable<Integer, String>();<BR>    h.put(new Integer(0), "value");<BR>    String s = h.get(new Integer(0));    System.out.println(s);      }<BR>} </FONT></P> <P><BR><FONT size=2>②泛型的多?/FONT></P> <P><FONT size=2>class Utilities {<BR>   <T extends Object> public static List<T> make(T first) {<BR>     return new List<T>(first);<BR>   }<BR>}</FONT></P> <P><FONT size=2>强制 make 构造新实例<BR>Utilities.make(Integer(0))<BR> </FONT></P> <P><FONT size=2>?受限泛型</FONT></P> <P><FONT size=2>有时我们想限制可能出现的泛型cȝcd实例化。在上面q个CZ中,c?Hashtable 的类型参数可以用我们想用的Q何类型参数进行实例化Q但是对于其它某些类Q我们或许想可能的cd参数集限定ؓl定cd 范围内的子类型?</FONT></P> <P><FONT size=2>例如Q我们可能想定义泛型 ScrollPane c,它引用普通的带有滚动条功能的 Pane 。被包含?Pane 的运行时cd通常会是c?Pane 的子cdQ但是静态类型就只是 Pane ?</FONT></P> <P><FONT size=2>有时我们想用 getter 索被包含?Pane Q但是希?getter 的返回类型尽可能具体些。我们可能想类型参?MyPane d?ScrollPane 中,该类型参数可以用 Pane 的Q何子c进行实例化。然后可以用q种形式的子句: extends Bound 来说?MyPane 的声明,从而来讑֮ MyPane 的范_ </FONT></P> <P><BR><FONT size=2>清单 7. ?extends 子句来说?MyPane 声明<BR>class ScrollPane<MyPane extends Pane> { ... }<BR> </FONT></P> <P><FONT size=2>?BR>其它泛型的例?BR>class C<T> {<BR>  static T member;</FONT></P> <P><FONT size=2>  C(T t) { member = t; }</FONT></P> <P><FONT size=2>  T getMember() { return member; }</FONT></P> <P><FONT size=2>  public static void main(String[] args) {<BR>    C<String> c = new C<String>("test");<BR>    System.out.println(c.getMember().toString());<BR>    new C<Integer>(new Integer(1));<BR>    System.out.println(c.getMember().toString());<BR>  }<BR>}</FONT></P> <P><FONT size=2></FONT> </P> <P><FONT size=2>import java.util.Hashtable;<BR>interface Registry {<BR>  public void register(Object o);<BR>}<BR>class C<T> implements Registry {<BR>  int counter = 0;<BR>  Hashtable<Integer, T> values;</FONT></P> <P><FONT size=2>  public C() {<BR>    values = new Hashtable<Integer, T>();<BR>  }</FONT></P> <P><FONT size=2>  public void register(Object o) {<BR>    values.put(new Integer(counter), (T)o);<BR>    counter++;<BR>  }<BR>}</FONT></P> <P><FONT size=2>?/FONT></P> <P><FONT size=2>L掌握 Java 泛型Q第 3 部分<BR>克服 JSR-14 原型~译器中泛型的限?BR>  </FONT></P> <P><FONT size=2>U别: 初</FONT></P> <P><FONT size=2>Eric E. Allen, 博士研究? Java ~程语言团队QRice 大学</FONT></P> <P><BR><FONT size=2>2003 q?6 ?09 ?/FONT></P> <P><FONT size=2>Java 开发h员和研究?Eric Allen l箋讨论 JSR-14 ?Tiger 中的泛型cdQƈ着g在泛型类型中d naked cd参数?new 操作支持q一分支?BR>q一pd主要讨论?Java ~程中添加泛型类型,本文是其中的一,研I还未讨的有关用泛型的两个限制之一Q即d对裸cd参数?new 操作的支持(如类 C<T> 中的 new T() Q?</FONT></P> <P><FONT size=2>正如?上个月所提到的那PTiger ?JSR-14 通过使用“类型消除(type erasureQ”对 Java 语言实现泛型cd。用类型消除(type erasureQ,泛型cd仅用于类型检查;然后Q用它们的上界替换它们。由此定义可知:消除与?new T() 之类的表辑ּ冲突?</FONT></P> <P><FONT size=2>如果假定 T 的界限是 Object Q那么这一表达式将被消除ؓ new Object() Qƈ且不对 T 如何实例化( String ?List ?URLClassLoader {等Q, new 操作生一个新?Object 实例。显Ӟq不是我们想要的?</FONT></P> <P><FONT size=2>要添加对表达式(?new T() Q的支持Q以及添加对我们上次讨论q的其它与类型相关的操作Q如数据cd转换?instanceof 表达式)的支持,我们必须采用某种实现{略而不是类型消除(如对于每个泛型实例化Q用独立的c)。但对于 new 操作Q需要处理其它问题?</FONT></P> <P><FONT size=2>其是,Z实现?Java 语言dq种支持Q必d许多基本的语a设计问题作出军_?</FONT></P> <P><FONT size=2>有效的构造函数调?/FONT></P> <P><FONT size=2>首先Qؓ了对cd参数构造合法的 new 表达式(?new T() Q,必须保我们调用的构造函数对?T 的每个实例化都有效。但׃我们只知?T 是其已声明界限的子类型,所以我们不知道 T 的某一实例化将有什么构造函数。要解决q一问题Q可以用下述三种Ҏ之一Q?</FONT></P> <P><FONT size=2>要求cd参数的所有实例化都包括不带参数的QzeroaryQ构造函数?<BR>只要泛型cȝq行时实例化没有包括所需的构造函敎ͼ抛出异常?<BR>修改语言的语法以包括更详的cd参数界限?<BR>W?1 U方法:需要不带参数的构造函?/FONT></P> <P><FONT size=2>只要求类型参数的所有实例化都包括不带参数的构造函数。该解决Ҏ的优Ҏ非常单。用这U方法也有先例?/FONT></P> <P><FONT size=2>处理cM问题的现?Java 技术(?JavaBean 技术)是通过要求一个不带参数的构造函数来解决问题的。然而,该方法的一个主要缺ҎQ对于许多类Q没有合理的不带参数的构造函数?/FONT></P> <P><FONT size=2>例如Q表C非I容器的Mcd构造函C必然使用表示其元素的参数。包括不带参数的构造函数将q我们先创建实例,然后再进行本来可以在构造函数调用中完成的初始化。但该实践会D问题的生(您可能想要阅?2002 q?4 月发表的本专栏文章“The Run-on Initializer bug pattern”,以获取详l信息;请参?参考资料。) </FONT></P> <P><FONT size=2>W?2 U方法:当缺所需构造函数时Q抛出异?/FONT></P> <P><FONT size=2>处理该问题的另一U方法是Q只要泛型类的运行时实例化没有包括所需构造函敎ͼ抛出异常。请注意Q必dq行时抛出异常。因?Java 语言的递增式编译模型,所以我们无法静态地定所有将在运行时发生的泛型类的实例化。例如,假设我们有如下一l泛型类Q?/FONT></P> <P><BR><FONT size=2>清单 1.“裸”类型参数的 New 操作</FONT></P> <P><FONT size=2>class C<T> {<BR>  T makeT() {<BR>    return new T();<BR>  }<BR>}</FONT></P> <P><FONT size=2>class D<S> {<BR>  C<S> makeC() {<BR>    return new C<S>();<BR>  }<BR>}<BR> </FONT></P> <P><BR><FONT size=2>现在Q在c?D<S> 中,构造了c?C<S> 的实例。然后,在类 C 的主体中Q将调用 S 的不带参数的构造函数。这U不带参数的构造函数存在吗Q答案当然取决于 S 的实例化Q?</FONT></P> <P><FONT size=2>比方_如果 S 被实例化?String Q那么答案是“存在”。如果它被实例化?Integer Q那么答案是“不存在”。但是,当编译类 D ?C Ӟ我们不知道其它类会构造什么样?D<S> 实例化。即使我们有可用于分析的整个E序Q我们几乎从来没有这L Java E序Q,我们q是必须q行代h相当高的分析来定潜在的构造函数问题可能会出现在哪里?</FONT></P> <P><FONT size=2>此外Q这一技术所产生的错误种cd于程序员来说很难诊断和修复。例如,假设E序员只熟悉c?D 的头。他知道 D 的类型参数的界限是缺省界限( Object Q。如果得到那L信息Q他没有理由怿满声明cd界限Q如 D<Integer> Q的 D 的实例化会D错误。事实上Q它在相当长的时间里都不会引起错误,直到最后有用方?makeC 以及Q最l)?C 的实例化调用Ҏ makeT 。然后,我们得C个报告的错误Q但q将在实际问题发生很久以??c?D 的糟p实例化?</FONT></P> <P><FONT size=2>q有Q对所报告错误的堆栈跟t甚臛_能不包括M对这个糟p的 D 实例的方法调用!现在Q让我们假设E序员无权访问类 C 的源代码。他寚w题是什么或如何修正代码毫无头l,除非他设法联pȝ C 的维护者ƈ获得U烦?</FONT></P> <P><FONT size=2>W?3 U方法:修改语法以获得更详尽的界?/FONT></P> <P><FONT size=2>另一U可能性是修改语言语法以包括更详尽的类型参数界限。这些界限可以指定一l可用的构造函敎ͼ它们必须出现在参数的每一个实例化中。因而,在泛型类定义内部Q唯一可调用的构造函数是那些在界限中声明的构造函数?</FONT></P> <P><FONT size=2>同样Q实例化泛型cȝ客户机类必须使用满Ҏ造函数存在所声明的约束的cLq样做。参数声明将充当cM其客h之间的契U,q样我们可以静态地查这两者是否遵守契U?</FONT></P> <P><FONT size=2>与另外两U方法相比,该方法有许多优点Q它允许我们保持W二U方法的可表达性以及与W一U方法中相同的静态检查程度。但它也有需要克服的问题?/FONT></P> <P><FONT size=2>首先Q类型参数声明很Ҏ变得冗长。我们或讔R要某UŞ式的语法上的甜头Qɘq些扩充的参数声明还q得厅R另外,如果?Tiger 以后的版本中d扩充的参数声明,那么我们必须保q些扩充的声明将与现有的已编译泛型类兼容?</FONT></P> <P><FONT size=2>如果对泛型cd的与cd相关的操作的支持d?Java ~程中,那么它采用何UŞ式还不清楚。但是,从哪U方法将?Java 代码可能地保持健壮Q以及在它遭到破坏时尽可能ҎC正)的观点看Q第三个选项无疑是最适合的?</FONT></P> <P><FONT size=2>然而, new 表达式有另一个更严重的问题?</FONT></P> <P><BR><FONT size=2> </FONT></P> <P><FONT size=2> 回页?<BR> </FONT></P> <P><FONT size=2></FONT> </P> <P><FONT size=2>多态递归</FONT></P> <P><FONT size=2>更严重的问题是类定义中可能存?多态递归。当泛型cd其自qM中实例化其本w时Q发生多态递归。例如,考虑下面的错误示例: </FONT></P> <P><BR><FONT size=2>清单 2. 自引用的泛型c?/FONT></P> <P><FONT size=2>class C<T> {<BR>  public Object nest(int n) {<BR>    if (n == 0) return this;<BR>    else return new C<C<T>>().nest(n - 1);<BR>  }<BR>}<BR> </FONT></P> <P><BR><FONT size=2>假设客户机类创徏新的 C<Object> 实例Qƈ调用Q比方说Q?nest(1000) 。然后,在执行方?nest() 的过E中Q将构造新的实例化 C<C<Object>> Qƈ且对它调?nest(999) 。然后,构造实例化 C<C<C<Object>>> Q以此类推,直到构?1000 个独立的c?C 的实例化。当Ӟ我随侉K择数字 1000Q通常Q我们无法知道在q行时哪些整数将被传递到Ҏ nest 。事实上Q可以将它们作ؓ用户输入传入?</FONT></P> <P><FONT size=2>Z么这成ؓ问题呢?因ؓ如果我们通过为每个实例化构造独立类来支持泛型类型的与类型相关的操作Q那么,在程序运行以前,我们无法知道我们需要构造哪些类。但是,如果c装入器为它所装入的每个类查找现有cLӞ那么它会如何工作呢?</FONT></P> <P><FONT size=2>同样Q这里有几种可能的解军_法: </FONT></P> <P><FONT size=2>对程序可以生的泛型cȝ实例化数目设|上限?<BR>静态禁止多态递归?<BR>在程序运行时随需构造新的实例化cR?<BR>W?1 U:对实例化数设|上?/FONT></P> <P><FONT size=2>我们对程序可以生的泛型cȝ实例化数目设|上限。然后,在编译期_我们可以对一l合法的实例化确定有限界限,q且仅ؓ该界限中的所有实例化生成cL件?</FONT></P> <P><FONT size=2>该方法类g?C++ 标准模板库中完成的事情(q我们有理由担心它不是一个好ҎQ。该Ҏ的问题是Q和为错误的构造函数调用报告错误一PE序员将无法预知其程序的某一ơ运行将崩溃。例如,假设实例化数的界限ؓ 42Qƈ且用用h供的参数调用先前提到?nest() Ҏ。那么,只要用户输入于 42 的数Q一切都正常。当用户输入 43 Ӟq一计划不周的设计就会失败。现在,设想一下可怜的代码l护者,他所面对的Q务是重新l合代码q试囑ּ清楚qL 42 有什么特D之处?</FONT></P> <P><FONT size=2>W?2 U:静态禁止多态递归</FONT></P> <P><FONT size=2>Z么我们不向编译器发出cM“静态禁止多态递归”这L命o呢?Q唉Q要是那么简单就好了。)当然Q包括我在内的许多程序员都会反对q种{略Q它抑制了许多重要设计模式的使用?</FONT></P> <P><FONT size=2>例如Q在泛型c?List<T> 中,您真的想要防?List<List<T>> 的构造吗Q从Ҏq回q种列表对于构徏许多很常用的数据l构很有用。事实证明我们无法防止多态递归Q即使我们想要那P也是如此。就象静态检糟p的泛型构造函数调用一P止多态递归会与递增式类~译发生冲突。我们先前的单示例(其中Q多态递归作ؓ一个简单直接的自引用发生)会ɘq一事实变得模糊。但是,自引用对于在不同旉~译的大多数cd帔R用Q意的间接U别。再提一ơ,那是因ؓ一个泛型类可以用其自己的类型参数来实例化另一个泛型类?</FONT></P> <P><FONT size=2>下面的示例涉及两个类之间的多态递归Q?/FONT></P> <P><BR><FONT size=2>清单 3. 怺递归的多态递归</FONT></P> <P><FONT size=2>class C<T> {<BR>  public Object potentialNest(int n) {<BR>    if (n == 0) return this;<BR>    else return new D<T>().nest(n - 1);<BR>  }<BR>}</FONT></P> <P><FONT size=2>class D<S> {<BR>  public Object nest(int n) {<BR>    return new C<C<S>>().nest(n);<BR>  }<BR>}<BR> </FONT></P> <P><BR><FONT size=2>在类 C ?D 中显然没有多态递归Q但?new D<C<Object>>().nest(1000) 之类的表辑ּ引L C ?1000 ơ实例化?</FONT></P> <P><FONT size=2>或许Q我们可以将新属性添加到cL件中Q以表明cM所有不同泛型类型实例化Q然后在~译其它cL分析q些实例化,以进行递归。但是,我们q是必须向程序员提供奇怪的和不直观的错误消息?/FONT></P> <P><FONT size=2>在上面的代码中,我们在哪里报告错误呢Q在c?D 的编译过E中q是在包含不相干表达?new D<C<Object>>().nest(1000) 的客hcȝ~译q程中呢Q无论是哪一U,除非E序员有权访问类 C 的源代码Q否则他无法预知何时会发生编译错误?</FONT></P> <P><FONT size=2>W?3 U:实时构造新的实例化c?/FONT></P> <P><FONT size=2>另一U方法是在程序运行时按需构造新的实例化cRv先,q种Ҏg?Java q行时完全不兼容。但实际上,实现该策略所需的全部就是用一个修改的c装入器Q它Ҏ“模板(templateQ”类文g构造新的实例化cR?</FONT></P> <P><FONT size=2>JVM 规范已经允许E序员用修改的c装入器Q事实上Q许多流行的 Java 应用E序Q如 Ant、JUnit ?DrJavaQ都使用它们。该Ҏ的缺ҎQ修改的c装入器必须与其应用E序一起分布,以在较旧?JVM 上运行。因为类装入器往往比较,所以这个开销不会大?BR> <BR></FONT></P><img src ="http://www.tkk7.com/fengliangjun/aggbug/26542.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/fengliangjun/" target="_blank">morcble的blog</a> 2006-01-04 13:40 <a href="http://www.tkk7.com/fengliangjun/articles/26542.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>向客L写入二进制流文ghttp://www.tkk7.com/fengliangjun/articles/6882.htmlmorcble的blogmorcble的blogWed, 29 Jun 2005 07:46:00 GMThttp://www.tkk7.com/fengliangjun/articles/6882.htmlhttp://www.tkk7.com/fengliangjun/comments/6882.htmlhttp://www.tkk7.com/fengliangjun/articles/6882.html#Feedback0http://www.tkk7.com/fengliangjun/comments/commentRss/6882.htmlhttp://www.tkk7.com/fengliangjun/services/trackbacks/6882.html<%@ page contentType="text/html; charset=gb2312"%>
<%@ include file="/WEB-INF/jsp/includes.jsp" %>
<%@ include file="/WEB-INF/jsp/header1.jsp" %>
<%@ page import="java.sql.Blob,java.io.*,org.spring.lh.xiaolv.util.*,org.spring.lh.xiaolv.*,org.spring.lh.*,org.spring.lh.hibernate.*"%>
<%!
public static String getStr(String str){
        try {String temp_p=str;
            byte[] temp_t=temp_p.getBytes("ISO8859-1");
            String temp=new String(temp_t);
            return temp;
        }
        catch(Exception e){ }
        return "";
    }
%>
<%
Lhspring lhSpring=(Lhspring)request.getSession().getAttribute("lhspring");
System.out.println(lhSpring.getfindc_info("ddd").toString());
calendar a = lhSpring.loadcalendar(request.getParameter("uuid"));
System.out.println(a);
Blob blob = a.getAccessories();  

String filename = a.getAccessories_name();
String filename1=getStr(filename);
String strFileExt = filename.substring(filename.lastIndexOf(".") + 1);
String mine=request.getSession().getServletContext().getMimeType(filename);
if(mine==null)
mine="application/octet-stream";
response.setContentType(mine);

response.setHeader(
         "Content-disposition",
         "attachment;filename=\""+filename+"\"");
       
InputStream is= null;        
OutputStream os= null;
  try {
        is = blob.getBinaryStream();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
       
        os = new BufferedOutputStream(response.getOutputStream());
        byte[] buffer = new byte[4*1024];
        int read = 0;
       
        while((read = is.read(buffer))!=-1){
         baos.write(buffer,0,read);
        }
        os.write(baos.toByteArray());
  }
  catch(Exception e){
   System.out.println("d附g出错");
  }
  finally{
   
    os.close();
    is.close();  
  }
  

%>



morcble的blog 2005-06-29 15:46 发表评论
]]>
实现Serializable 接口的对象可以进行二q制传输http://www.tkk7.com/fengliangjun/articles/6881.htmlmorcble的blogmorcble的blogWed, 29 Jun 2005 07:43:00 GMThttp://www.tkk7.com/fengliangjun/articles/6881.htmlhttp://www.tkk7.com/fengliangjun/comments/6881.htmlhttp://www.tkk7.com/fengliangjun/articles/6881.html#Feedback0http://www.tkk7.com/fengliangjun/comments/commentRss/6881.htmlhttp://www.tkk7.com/fengliangjun/services/trackbacks/6881.html
import java.io.*;

public class SerializationDemo {
 public static void main(String args[]) {

  //Object serialization
  try {
   MyClass object1 = new MyClass("Hello", -7, 2.7e10);
   System.out.println("object1:" + object1);
   FileOutputStream fos = new FileOutputStream("serial");
   ObjectOutputStream oos = new ObjectOutputStream(fos);
   oos.writeObject(object1);
   oos.flush();
   oos.close();
  } catch (Exception e) {
   System.out.println("Exception during serialization:" + e);
   System.exit(0);
  }

  //Object deserialization
  try {
   MyClass object2;
   FileInputStream fis = new FileInputStream("serial");
   ObjectInputStream ois = new ObjectInputStream(fis);
   object2 = (MyClass) ois.readObject();
   ois.close();
   System.out.println("object2:" + object2);
  } catch (Exception e) {
   System.out.println("Exception during deserialization:" + e);
   System.exit(0);
  }
 }
}

class MyClass implements Serializable {
 String s;

 int i;

 double d;

 public MyClass(String s, int i, double d) {
  this.s = s;
  this.i = i;
  this.d = d;
 }

 public String toString() {
  return "s=" + s + ";i=" + i + ";d=" + d;
 }
}



morcble的blog 2005-06-29 15:43 发表评论
]]>
deleteDirectoryorFile Getpath.path() TestCmd()http://www.tkk7.com/fengliangjun/articles/6684.htmlmorcble的blogmorcble的blogFri, 24 Jun 2005 07:59:00 GMThttp://www.tkk7.com/fengliangjun/articles/6684.htmlhttp://www.tkk7.com/fengliangjun/comments/6684.htmlhttp://www.tkk7.com/fengliangjun/articles/6684.html#Feedback0http://www.tkk7.com/fengliangjun/comments/commentRss/6684.htmlhttp://www.tkk7.com/fengliangjun/services/trackbacks/6684.html//删除文g  无论a是文件还是文件夹
public class file {
 public static void deleteDirectoryorFile(java.io.File a){//全\?BR>  if (a.isFile()){
   a.delete();
  }
  else{
   java.io.File[] files = a.listFiles();
   for(int i= 0 ;i<files.length;i++){
    deleteDirectoryorFile(files[i]);
   }
   a.delete();
  }
 }
}

 

 

 

 


**
 *
 * web-inf的相对\?调用Ҏ Getpath.path();
 */
public class Getpath {
 private String path;

 private static Getpath s;//静态单例模?/P>

 public Getpath() {
  path = this.getClass().getResource("Getpath.class").getPath();
  path = path.substring(0, path.indexOf("WEB-INF"));
  path = path + "WEB-INF/";
 }

 public void setpath(String path) {
  this.path = path;
 }

 public String getpath() {
  return this.path;
 }

 public static String path() {
  if (s == null)
   s = new Getpath();
  return (s.getpath());
 }

 public static void main(String[] args) {

  System.out.println(Getpath.path());
 }
}

 

 

/**
*
* @author  Administrator
*/
public class TestCmd {
    public TestCmd(){}
    public static void main(String args[]){
        try {
          Process process = Runtime.getRuntime().exec("cmd.exe  /c  start           // Process process = Runtime.getRuntime().exec("cmd.exe  /c  start  ping 10.5.2.19");  //调用Ping命o
        }catch (Exception  e)
        {
            e.printStackTrace();
            } 
       
      }
    }



morcble的blog 2005-06-24 15:59 发表评论
]]>
String.split(String a)的错?== 正则表达式问?/title><link>http://www.tkk7.com/fengliangjun/articles/6267.html</link><dc:creator>morcble的blog</dc:creator><author>morcble的blog</author><pubDate>Fri, 17 Jun 2005 03:15:00 GMT</pubDate><guid>http://www.tkk7.com/fengliangjun/articles/6267.html</guid><wfw:comment>http://www.tkk7.com/fengliangjun/comments/6267.html</wfw:comment><comments>http://www.tkk7.com/fengliangjun/articles/6267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/fengliangjun/comments/commentRss/6267.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/fengliangjun/services/trackbacks/6267.html</trackback:ping><description><![CDATA[<P>String的静态方法split(String a)有点问题Q列?BR>String a0 = "|we|r|";<BR>String[] b0 = a0.split("|");<BR>b0不会得到预期的数l,而是{"|","w","e","r","|"}.<BR><BR>于是写了一个类代替q个Ҏ<BR>如下<BR>public class Strings {<BR> public static  Collection seperateBy(String target,String seperate) {<BR>      if (target==null||seperate==null||target.equals("")){<BR>       return new ArrayList();<BR>      }<BR>      Collection collection = new ArrayList();<BR>      int num = target.indexOf(seperate);<BR>      if (num!=-1){<BR>       if(num==0){<BR>        target = target.substring(1,target.length());<BR>            Collection here = seperateBy(target,seperate);<BR>            for(Iterator iterator1 = here.iterator();iterator1.hasNext();){<BR>             collection.add(iterator1.next());<BR>            }<BR>            return collection;<BR>         }<BR>       else if(num == target.length()-1){ <BR>        collection.add(target.substring(0,target.length()-1));<BR>        return collection;<BR>       }<BR>       else<BR>       {<BR>        collection.add(target.substring(0,num));<BR>        target = target.substring(num+1,target.length());<BR>        Collection here = seperateBy(target,seperate);<BR>           for(Iterator iterator1 = here.iterator();iterator1.hasNext();){<BR>            collection.add(iterator1.next());<BR>           }<BR>           return collection;<BR>       }<BR>      }<BR>      else collection.add(target);<BR>      return  collection;<BR>     }<BR>/*试<BR> public static  void main(String[] args) {<BR>  Collection a1 = Strings.seperateBy("|aaa|aa","|");<BR>  Collection a2 =Strings.seperateBy("|aaa|aa|","|");<BR>  Collection a3 =Strings.seperateBy("aaa|aa","|");<BR>  Collection a4 =Strings.seperateBy("aaaaa","|");<BR>  Collection a5 =Strings.seperateBy("|aaa|aa","|");<BR>  Collection a6 =Strings.seperateBy("||||","|");<BR>  Collection a7 =Strings.seperateBy("","|");<BR> }*/<BR>}<BR><BR><BR><BR>正则表达式问?BR><BR>正确写法String a0 = "|we|r|";<BR>String[] b0 = a0.split("\\|");<BR></P><img src ="http://www.tkk7.com/fengliangjun/aggbug/6267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/fengliangjun/" target="_blank">morcble的blog</a> 2005-06-17 11:15 <a href="http://www.tkk7.com/fengliangjun/articles/6267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库存取文?/title><link>http://www.tkk7.com/fengliangjun/articles/5897.html</link><dc:creator>morcble的blog</dc:creator><author>morcble的blog</author><pubDate>Fri, 10 Jun 2005 14:20:00 GMT</pubDate><guid>http://www.tkk7.com/fengliangjun/articles/5897.html</guid><wfw:comment>http://www.tkk7.com/fengliangjun/comments/5897.html</wfw:comment><comments>http://www.tkk7.com/fengliangjun/articles/5897.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/fengliangjun/comments/commentRss/5897.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/fengliangjun/services/trackbacks/5897.html</trackback:ping><description><![CDATA[数据库存文g<BR> File file = new File("c:\\2.jpg"); <BR>  int fileLength =(int) file.length(); <BR>  InputStream fin = new FileInputStream(file); <BR>  PreparedStatement pstmt = con.prepareStatement("insert into file values('2.jpg',?)"); <BR>  pstmt.setBinaryStream (1, fin, fileLength); <BR>  pstmt.executeUpdate();   <BR><BR><BR>数据库取文g<BR>  //"select * from file"<BR>  Statement pstmt = con.createStatement(); <BR>  ResultSet rs = pstmt.executeQuery("select * from file");<BR>  <BR>  while(rs.next()){<BR>   Blob blob = rs.getBlob("aaa");//aaa为blob?存储二进制文?BR>   String name = rs.getString("v");//v为文件名<BR>   <BR>   int bloblength =(int) blob.length();<BR>   byte[] bytes = blob.getBytes(1,bloblength);<BR>   OutputStream f0 = new FileOutputStream("c:\\1\\"+name);<BR>   for (int i =0;i<bytes.length;i+=1){<BR>    f0.write(bytes[i]);<BR>   }<BR>   f0.close();<BR>   <BR>   <img src ="http://www.tkk7.com/fengliangjun/aggbug/5897.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/fengliangjun/" target="_blank">morcble的blog</a> 2005-06-10 22:20 <a href="http://www.tkk7.com/fengliangjun/articles/5897.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>javamail接收邮ghttp://www.tkk7.com/fengliangjun/articles/5740.htmlmorcble的blogmorcble的blogWed, 08 Jun 2005 08:32:00 GMThttp://www.tkk7.com/fengliangjun/articles/5740.htmlhttp://www.tkk7.com/fengliangjun/comments/5740.htmlhttp://www.tkk7.com/fengliangjun/articles/5740.html#Feedback7http://www.tkk7.com/fengliangjun/comments/commentRss/5740.htmlhttp://www.tkk7.com/fengliangjun/services/trackbacks/5740.htmlimport java.util.Properties;

import javax.mail.*;
import javax.mail.internet.*;

public class receivemail {
 public static void main(String[] args) throws Exception {

  Properties props = new Properties();
  Session recesession = Session.getDefaultInstance(props, null);
  recesession.setDebug(true);

  Store store = recesession.getStore("pop3");
  String user = "****";//帐户
  String password = "*****";//密码
  store.connect("pop.163.com", user, password);

  Folder folder = store.getFolder("INBOX");
  
  folder.open(Folder.READ_ONLY);
  
  Message[] msgs = folder.getMessages();
  for (int msgNum = 0; msgNum < msgs.length; msgNum++) {
   
   System.out.println(msgs[msgNum].getSentDate());
   System.out.println(msgs[msgNum].getSubject());
   System.out.println(msgs[msgNum].getContent());
  }
  folder.close(false);
  store.close();

 }

}



morcble的blog 2005-06-08 16:32 发表评论
]]>
javamail发送邮?/title><link>http://www.tkk7.com/fengliangjun/articles/5652.html</link><dc:creator>morcble的blog</dc:creator><author>morcble的blog</author><pubDate>Tue, 07 Jun 2005 03:16:00 GMT</pubDate><guid>http://www.tkk7.com/fengliangjun/articles/5652.html</guid><wfw:comment>http://www.tkk7.com/fengliangjun/comments/5652.html</wfw:comment><comments>http://www.tkk7.com/fengliangjun/articles/5652.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/fengliangjun/comments/commentRss/5652.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/fengliangjun/services/trackbacks/5652.html</trackback:ping><description><![CDATA[<P>import java.util.Properties;</P> <P>import javax.mail.*;<BR>import javax.mail.internet.*;</P> <P>/**<BR> * @author Administrator<BR> *<BR> * TODO 要更Ҏ生成的类型注释的模板Q请转至<BR> * H口 Q?首选项 Q?Java Q?代码样式 Q?代码模板<BR> */<BR>public class mymail {<BR> public static String username = "***";//用户?/P> <P> public static String password = "***";//用户密码</P> <P> public static String smtpaddress = "smtp.163.com";//邮g服务起地址<BR> <BR> public static String from = "<A href='mailto:fengliangjun727@163.com";//'>***@163.com";//</A>发邮件的邮箱<BR> <BR> public static String to = "<A href='mailto:fengliangjun727@***";//'>****@***";//</A>攉件的邮箱<BR> <BR> public static String title = "标题";//文g标题<BR> <BR> public static String content = "neirong";//文gneirong<BR> <BR> public static void main(String[] args) throws Exception {<BR>  String[] b = { mymail.to, mymail.title, mymail.content };</P> <P>  Properties props = new Properties();<BR>  props.put("mail.smtp.host", mymail.smtpaddress); //讄smtpL</P> <P>  props.put("mail.smtp.auth", "true");//使用smtpw䆾验证</P> <P>  Session session = Session.getDefaultInstance(props,<BR>    new Authenticator() {<BR>     public PasswordAuthentication getPasswordAuthentication() {<BR>      return new PasswordAuthentication(mymail.username,<BR>        mymail.password);<BR>     }<BR>    });</P> <P>  session.setDebug(true);</P> <P>  Message msg = new MimeMessage(session);</P> <P>  InternetAddress addressFrom = new InternetAddress(<BR>    mymail.from);<BR>  msg.setFrom(addressFrom);<BR>  Address addressTo = new InternetAddress(b[0]);<BR>  msg.setRecipient(Message.RecipientType.TO, addressTo);</P> <P>  msg.setSubject(b[1]);//标题<BR>  msg.setContent(b[2], "text/plain");//内容</P> <P>?nbsp; <BR>Transport transport = session.getTransport("smtp");<BR>  System.out.println("q接邮g服务器成?);<BR>  transport.send(msg);</P> <P> }<BR>}<BR><BR><BR><BR>***************************8<BR>W二U写?BR>/*<BR> * 创徏日期 2005-6-8<BR> *<BR> * TODO 要更Ҏ生成的文件的模板Q请转至<BR> * H口 Q?首选项 Q?Java Q?代码样式 Q?代码模板<BR> */</P> <P>import java.util.Properties;</P> <P>import javax.mail.*;<BR>import javax.mail.internet.*;<BR><BR>public class sendmail {<BR> public  static String username = "***";//用户?/P> <P> public static String password = "***";//用户密码</P> <P> public static String smtpaddress = "smtp.163.com";//邮g服务?BR> <BR> public static String from = "<A href='mailto:fengliangjun727@163.com";//'>***";//</A>发邮件的邮箱<BR> <BR> public static String to = "<A href='mailto:fengliangjun727@163.com";//'>***";//</A>攉件的邮箱<BR> <BR> public static String title = "标题";//文g标题<BR> <BR> public static String content = "neirong";//文gneirong<BR> <BR> public static void main(String[] args) throws Exception {<BR>  String[] b = { sendmail.to, sendmail.title, sendmail.content };</P> <P>  Properties props = new Properties();<BR>  props.put("mail.smtp.host", sendmail.smtpaddress); //讄smtpL</P> <P>  props.put("mail.smtp.auth", "true");//使用smtpw䆾验证</P> <P>  Session session = Session.getDefaultInstance(props,<BR>    null);</P> <P>  session.setDebug(true);</P> <P>  Message msg = new MimeMessage(session);</P> <P>  InternetAddress addressFrom = new InternetAddress(<BR>    sendmail.from);<BR>  msg.setFrom(addressFrom);<BR>  Address addressTo = new InternetAddress(b[0]);<BR>  msg.setRecipient(Message.RecipientType.TO, addressTo);</P> <P>  msg.setSubject(b[1]);//标题<BR>  msg.setContent(b[2], "text/plain");//内容</P> <P>  ?BR>Transport transport = session.getTransport("smtp");<BR>  transport.connect(smtpaddress,username,password);<BR>  System.out.println("q接邮g服务器成?);<BR>  //transport.send(msg);<BR>  transport.sendMessage(msg,msg.getAllRecipients());</P> <P> }<BR>}</P> <P>*****************************<BR>如果要添加附?参考下面程序片D?nbsp; 把下面的E序片段d到①<BR>   String attachment = "c:\1.txt";//附g</P> <P>  if (!attachment.equals("")) {</P> <P>   BodyPart messageBodyPart = new MimeBodyPart();<BR>   messageBodyPart.setText(new String(content.getBytes("ISO8859_1"),<BR>     "GBK")); //</P> <P>   Multipart multipart = new MimeMultipart();<BR>   multipart.addBodyPart(messageBodyPart); //</P> <P>   messageBodyPart = new MimeBodyPart();//</P> <P>   DataSource source = new FileDataSource(attachment);</P> <P>   messageBodyPart.setDataHandler(new DataHandler(source));</P> <P>   messageBodyPart.setFileName(attachment);</P> <P>   multipart.addBodyPart(messageBodyPart);</P> <P>   message.setContent(multipart);<BR>  } <BR><BR>最后要记得在tomcat的lib目录下添加mail.jar,j2ee.jar,activation.jar?/P><img src ="http://www.tkk7.com/fengliangjun/aggbug/5652.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/fengliangjun/" target="_blank">morcble的blog</a> 2005-06-07 11:16 <a href="http://www.tkk7.com/fengliangjun/articles/5652.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://38miao.com" target="_blank">Ʒרһ </a>| <a href="http://gzltchem.com" target="_blank">Ļ</a>| <a href="http://eee94.com" target="_blank">޳AƬ߹ۿ</a>| <a href="http://zzhjnmzp.com" target="_blank">ɫ͵͵ɫݺ99</a>| <a href="http://ldcatv.com" target="_blank">Ƭѿ</a>| <a href="http://qixiresort.com" target="_blank">ձ</a>| <a href="http://074g8.com" target="_blank">Ƭ߷ѹۿ</a>| <a href="http://baoyutv777.com" target="_blank">޹Ʒһ߹ۿ</a>| <a href="http://xian66.com" target="_blank">Ʒһ</a>| <a href="http://69ct.com" target="_blank">fuli߹ۿ</a>| <a href="http://tbw77.com" target="_blank">ŮͰˬ30</a>| <a href="http://www55xx.com" target="_blank">avרҳ</a>| <a href="http://zndijgch.com" target="_blank">߻ɫַ</a>| <a href="http://1897tao.com" target="_blank">Ʒ888</a>| <a href="http://apguangyu.com" target="_blank">ձvaĻþ</a>| <a href="http://zjhmpaper.com" target="_blank">պѵӰվ</a>| <a href="http://sanyoumiaomu.com" target="_blank">޾ƷƵۿ</a>| <a href="http://taobaohuopin.com" target="_blank">ŮѹۿˬˬˬƵ</a>| <a href="http://kmyake.com" target="_blank">һػػƵĴƬ</a>| <a href="http://hetaoqpj.com" target="_blank">Ƶ</a>| <a href="http://78555yy.com" target="_blank">ɫˬ1000</a>| <a href="http://junyehome.com" target="_blank">ŷAۺһ</a>| <a href="http://hzsprfm.com" target="_blank">ܻƺ۵վ</a>| <a href="http://66qiqi.com" target="_blank">һëƬƵ</a>| <a href="http://6464k.com" target="_blank">һһƬѲ</a>| <a href="http://sewo66.com" target="_blank">ƵѲ</a>| <a href="http://vvv75.com" target="_blank">ҹ޹ϼ</a>| <a href="http://8mav950.com" target="_blank">þþþùƷ</a>| <a href="http://pumanpig.com" target="_blank">޾Ʒר</a>| <a href="http://87fulitv.com" target="_blank">Ʒһ߹ۿ</a>| <a href="http://www66susu.com" target="_blank">ɫַ</a>| <a href="http://116com.com" target="_blank">͵͵ĸ</a>| <a href="http://8xjr.com" target="_blank">avƬ߹ۿ</a>| <a href="http://www-095666.com" target="_blank">xxƵѹۿ</a>| <a href="http://54vpn.com" target="_blank">ŮƵӴȫƵѵ</a>| <a href="http://wwwdd312.com" target="_blank">ۺС˵ɫ</a>| <a href="http://hnkangshi.com" target="_blank">ѹۿëƬaƬ2008</a>| <a href="http://www-6209.com" target="_blank">һaƬɫëƬվ</a>| <a href="http://tltcn.com" target="_blank">޾Ʒþþþþþ </a>| <a href="http://sijep.com" target="_blank">޹Ʒľþþ</a>| <a href="http://vinsotec.com" target="_blank">˾ƷƵ99߹ۿ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>