预览模式: 普通 | 列表
07-06
14

多线程编程题

设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
以下程序使用内部类实现线程,对j增减的时候没有考虑顺序问题。
package xmltest;

public class ThreadTest1 {
    private int j;
    public static void main(String args[]) {
        ThreadTest1 tt = new ThreadTest1();
        Inc inc = tt.new Inc();

查看更多...

Tags: 面试题

分类:Java&Jsp | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 869
07-06
13

从数据库里取值方法,写出步骤

从数据库里取值方法,比如说select * from table where id=101。
以下分别用JBDC直连与数据源两种方式来实现。并写出了详细步骤
private void TestDb() {
        String sql = "select * from table where id=101";
        //JBDC直连
        try {
            /**
             Class.forName("org.gjt.mm.mysql.Driver").newInstance();//装载驱动
                         Connection conn=
             java.sql.DriverManager.getConnection("jdbc:mysql://127.0.0.1","root","");
             Statement stmt=conn.createStatement();//创建Statement,用于执行SQL
             ResultSet rs=stmt.executeQuery(sql);//调用executeQuery()取得结果集
                         while(rs.next())

查看更多...

Tags: 面试题

分类:Java&Jsp | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 676
07-06
13

关键字new和newInstance方法区别

在初始化一个类,生成一个实例的时候,newInstance()方法和new关键字除了一个是方法,一个是关键字外,最主要有什么区别?它们的区别在于创建对象的方式不一样,前者是使用类加载机制,后者是创建一个新类。那么为什么会有两种创建对象方式?这主要考虑到软件的可伸缩、可扩展和可重用等软件设计思想。

Java中工厂模式经常使用newInstance()方法来创建对象,因此从为什么要使用工厂模式上可以找到具体答案。 例如:
class c = Class.forName(“Example”);
factory = (ExampleInterface)c.newInstance();

其中ExampleInterface是Example的接口,可以写成如下形式:
String className = "Example";
class c = Class.forName(className);

查看更多...

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 463
07-06
12

XML的读写操作样例

创建并写入XML:
package xmltest;

import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;

public class CreateXML {
    public void Create() {
        try {
            Document doc = new Document();
            ProcessingInstruction pi = new ProcessingInstruction(
                    "xml-stylesheet", "type='text/xsl' href='test.xsl'");
            doc.addContent(pi);

            Element root = new Element("user");
            doc.setRootElement(root);
            Element el1 = new Element("name");

            //Text text1 = new Text("blurxx");
            Element em = new Element("name_last").addContent("blurxx");

            el1.addContent(em);

            Element el2 = new Element("passwd").addContent("1234");

            root.addContent(el1);
            root.addContent(el2);

            //缩进四个空格,自动换行,gb2312编码

查看更多...

Tags: XML

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 654
07-06
12

JDom使用详解

  JDom是不错的API,算得上简单高效,最重要是已经成为jcp的一部分,这个咱得弄弄。不www.jdom.org上写文档的人实在太懒,文档出奇的少,流传得最广的恐怕是IBM上面的一篇《JDom让java XML变得容易》,不过这篇文章只涉及基本的读写操作,远不能胜任实际工作。花了两天时间,把JDom的基本操作整理出来了,涵盖了大部分的操作:元素、属性、命名空间、PI、DTD、Schema,应付一般的应用没什么问题。反正我没有在网上见到更加详尽的版本,你见过的话,请留下连接。暂时来不及编写详细的说明,先帖几段程序,对有经验的Java开发者来说,已经足够了。程序都已经经过了实际的测试,我使用的JDom是0.9版。

1、创建XML文档:
import java.io.*;
import org.jdom.*;
import org.jdom.input.*;
import org.jdom.output.*;

public class CreateXML

查看更多...

Tags: JDom

分类:学习 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 491
07-06
12

<controller>元素详解

      <controller>主要用于扩展RequestProcessor(请求处理器类),实现预处理功能所用。在Struts1.0版本时,只有5个元素,并不<controller>时,程序员通过扩展其ActionServlet来实现预处理功能。自从1.1版本以后,Struts提供了实现预处理的机制。我们先看一下关系样例:
引用内容 引用内容
ActionServlet->RequestProcessor->MyRequestProcessor->Action

       MyRequestProcessor就是我们需要扩展的类,在其中重构父类process()方法中的第六个方法。processProcessor()方法。
      下面的controller元素中我写入了三个比较有用的参数,并一一解释:
引用内容 引用内容
  <controller contentType="text/html;charset=UTF-8" processorClass="order.MyProRequestProcessor" nocache="true" />

       1.contentType属性,指定响应结果的内容类型和字符编码。当ActionServlet判断此属性存在时,由RequestProcessor类中的第四个方法实现。详见书101页
       2.processorClass指定扩展的类。
       3.nocache属性,页面不缓存。在RequestProcessor类中以代码的形式实现如下:
引用内容 引用内容
response.setHeader("Pragma","No-cache");

查看更多...

Tags: 预处理

分类:Struts | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 557