小编Mor*_*dan的帖子

switch语句是在Java中实现运算符解释的最快方法

switch语句是在Java中实现运算符解释的最快方法

   public boolean accept(final int op, int x, int val) {
     switch (op) {
        case OP_EQUAL:
          return x == val;
        case OP_BIGGER:
          return x > val;
        case OP_SMALLER:
          return x < val;
        default:
          return true;
     }
   }
Run Code Online (Sandbox Code Playgroud)

在这个简单的例子中,显然是的.现在想象你有1000个运营商.它还会比类层次更快吗?当类层次结构在速度上比switch语句更有效时,是否存在阈值?(在内存中显然不是)

abstract class Op {
 abstract public boolean accept(int x, int val);
}
Run Code Online (Sandbox Code Playgroud)

然后每个操作员一个班级.

编辑:对不起,我应该通过答案的外观更具体.运营商是完全未知的,我正在使用JDk 1.4.没有选择.没有枚举.没有关闭.:(用户在许多选择中选择运算符.为简单起见,想象一下具有1000个操作的GUI列表,当用户选择一个时,选择switch语句的操作码.使用类层次结构,用户将选择一个我问这个问题是因为有人必须先测试过它.我不想创建1000个类和1000个虚假操作代码来测试它.如果没有人做过.我会测试它并报告结果,如果它们可能有任何意义.

java oop switch-statement

2
推荐指数
2
解决办法
822
查看次数

在Java中绘制Hello World的最快方法是什么

使用Java中的GUI在屏幕上绘制Hello World 的最快方法是什么:

1-使用最少的班级数.

2-执行最少字节代码

3- JVM调整

因此,当我双击Windows中的Jar文件时,Hello World会立即出现(假设尚未加载运行时).

java user-interface swing jvm

1
推荐指数
1
解决办法
785
查看次数

AWT Canvas在手动调整大小时闪烁

出于智力兴趣,你可以在手动调整大小时使Canvas不闪烁.

public class FlickerAWT extends Canvas {

public static void main(String[] args) {
 Frame f = new Frame(str);
 //this line change nothing
 //JFrame f = new JFrame(str);
 f.add(new FlickerAWT());
 f.pack();

 int frameWidth = f.getWidth();
 int frameHeight = f.getHeight();
 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
 f.setLocation(screenSize.width / 2 - frameWidth / 2, screenSize.height / 2 - frameHeight / 2);
 f.setVisible(true);

 f.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
      System.exit(0);
    }
    public void windowDeiconified(WindowEvent e) {
    }
    public void windowIconified(WindowEvent e) {
    }
 }); …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing awt

1
推荐指数
1
解决办法
3132
查看次数

标签 统计

java ×3

swing ×2

user-interface ×2

awt ×1

jvm ×1

oop ×1

switch-statement ×1