用户操作
[即时聊天] [发私信] [加为好友]
曾巧ID:numenZQ
42206次访问,排名2821,好友0人,关注者0人。
numenZQ的文章
原创 29 篇
翻译 16 篇
转载 2 篇
评论 16 篇
最近评论
xh:不推荐修改web.xml,设置java_options更好
numenZQ:补充说明一点,使用java.util.zip包时,是以UTF-8编码格式读取的文件名,因此在中文windows操作系统(Windows操作系统默认字符集为:GBK)中使用时会导致文件名解析错误,因此需要使用org.apache.tools.zip.ZipEntry和 org.apache.tools.zip.ZipOutputStream类来解决这一问题。
numenZQ:这个是需要明确知道字符串的成分,该方法只是为了满足读取不同字符集相应字符串,还是以“多哈亚运会”为例:如果字符集为GBK,截取前6个字节,结果为:“多哈亚”;当字符集为UTF-8时,截取前6个字节,结果则为:“多哈”,这是因为GBK是双字节编码,而UTF-8是三字节变长编码,如果不分字符集来读取对应长度的字串,则会出现字串内容与预期不符,长度错误等问题。
lyazure:仔细看了你的代码,作用是从一个字符串中获取指定字节数的字符,不知道你要这么做的最终目的是用来做什么。除非明确知道字符串的成分,否则这种做法很难做到完美,比如你的代码中,假如出现要从“多哈亚运会”这样的字符串中截取7个字节,最终会截得3个字符。
Alexandre:ab8e44bc75204d49bf0c9fe68a2b2176 matura foto amatoriale
收藏
    相册
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 swt与awt/swing比较收藏

    新一篇: JSR-184里封装照相机的look-at方法 | 旧一篇: J2ME优化——静态变量与get/set方法比较

        自IBM公司提供的跨平台GUI开发包SWT以来,越来越多受到广大程序员的亲睐,已经有不少程序员用它开发出美观、高效、实用的桌面应用程序。这让我们更有理由去探索SWT给我们带来的惊奇。

            SWT在外观和性能上都超过了awt/swing,为什么这样说呢?下面简单的测试程序会让你一目了然。废话也不多说,让我们看程序。

        下面让我们写一个简单的程序来测试一下,程序只做一件事,就是用Label显示”Hello World!”,我的测试环境是JDK1.5.0+Eclipse3.1。看看在AWTSWINGSWT下分别实现该效果所需要的时间和内存消耗。

    AWT_CODE:

    import java.awt.Frame;

    import java.awt.Label;

    import java.awt.event.WindowAdapter;

    import java.awt.event.WindowEvent;

    public class awtTest {

           public static void main(String[] args) {

                  long memory = 0L;

                  long time = 0L;

                  memory = Runtime.getRuntime().freeMemory();

                  time = System.currentTimeMillis();

                  Frame frame = new Frame();

                  Label label = new Label();

                  label.setText("Hello World!");

                  frame.add(label);

                  frame.setVisible(true);

                  frame.addWindowListener(new WindowAdapter() {

                         public void windowClosing(WindowEvent we) {

                                System.exit(0);

                         }

                  });

                  frame.pack();

                  System.out.println(System.currentTimeMillis() - time);

                  System.out.println(memory - Runtime.getRuntime().freeMemory());

           }

    }

    运行效果及所用的时间和内存值:

    图片无法显示 

    SWING_CODE:

    import javax.swing.JFrame;

    import javax.swing.JLabel;

    import java.awt.event.WindowAdapter;

    import java.awt.event.WindowEvent;

    public class swingTest {

           public static void main(String[] args) {

                  long memory = 0L;

                  long time = 0L;

                  memory = Runtime.getRuntime().freeMemory();

                  time = System.currentTimeMillis();

                  JFrame frame = new JFrame();

                  JLabel label = new JLabel();

                  label.setText("Hello World!");

                  frame.add(label);

                  frame.setVisible(true);

                  frame.addWindowListener(new WindowAdapter() {

                         public void windowClosing(WindowEvent we) {

                                System.exit(0);

                         }

                  });

                  frame.pack();

                  System.out.print("Time:");

                  System.out.println(System.currentTimeMillis() - time);

                  System.out.print("Memory:");

                  System.out.println(memory - Runtime.getRuntime().freeMemory());

           }

    }

    运行效果及所用的时间和内存值:

    图片无法显示

    SWT_CODE:

    import org.eclipse.swt.widgets.Display;

    import org.eclipse.swt.widgets.Shell;

    import org.eclipse.swt.widgets.Label;

    import org.eclipse.swt.SWT;

    public class swtTest {

           public static void main(String[] args) {

                  long memory = 0L;

                  long time = 0L;

                  memory = Runtime.getRuntime().freeMemory();

                  time = System.currentTimeMillis();

                  Display display = new Display();

                  Shell shell = new Shell(display);

                  Label label = new Label(shell, SWT.NONE);

                  label.setText("Hello World!");

                  shell.pack();

                  label.pack();

                  shell.open();

                  System.out.print("Time:");

                  System.out.println(System.currentTimeMillis() - time);

                  System.out.print("Memory:");

                  System.out.println(Runtime.getRuntime().freeMemory() - memory);

                  while(!shell.isDisposed()) {

                         if(!display.readAndDispatch()) {

                                display.sleep();

                         }

                  }

                  display.dispose();

                  label.dispose();

           }

    }

    运行效果及所用的时间和内存值:

    图片无法显示

    如果你仔细看代码,你会发现在SWT的代码中,我注解为’***’代码处,与前两者有所不同,这也我疑惑的地方,在整个程序运行中,运行后的剩余内存居然比运行前的剩余内存值大。接着,我在调试该程序的时候,我发现在Shell shell = new Shell(display)语句执行后,内存值有明显的增加,如果你知道SWT底层是如何操作的,知道这是什么原因引起的,请你联系我并告诉我这是为什么,我好做出修正。

    如果你是初学者,不知道怎么运行SWT程序,其实很简单的,只需要在你的工程的Libraries添加一个名为org.eclipse.swt.win32.win32.x86_3.1.0.jar包,该包的位置在你的Eclipse的安装目录下的\plugins\文件夹里。

    发表于 @ 2005年09月09日 22:17:00|评论(loading...)|编辑

    新一篇: JSR-184里封装照相机的look-at方法 | 旧一篇: J2ME优化——静态变量与get/set方法比较

    评论:没有评论。

    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © numenzq