小编Ank*_*kit的帖子

JFrame.repaint()和JPanel.repaint()之间的区别

可以请任何人解释JPanel.repaint()方法和JFrame.repaint()方法之间的区别,我想两者都调用paintComponent()JPanel中的方法.

请澄清一下,谢谢

java swing

8
推荐指数
2
解决办法
3万
查看次数

最后块是否真的需要清理代码(如关闭流)?

我很困惑为什么我需要将清理代码放在一个finally块中关闭流.

我已经读过finally块中的代码无论如何都会运行(是否存在异常); 并且在finally块运行之后,该方法的其余部分继续.

我的问题是:如果方法的其余部分必须继续,那么为什么我不在函数中的try/catch块之后放入清理代码?

java exception-handling try-catch-finally

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

最终实例变量的意义是什么?

static final class variable和之间有一些混淆final instance variable.

以下是示例代码: -

class Foof{
final int size=3;
final int whuffie;

    Foof()
    {
        whuffie=42; 
    }

    public static void main(String [] args){
        Foof obj1 = new Foof();
        Foof obj2 = new Foof();

        obj1.size=53;    //compile time error
        System.out.println(obj1.size);
        obj2.whuffie=45; //compile time error
        System.out.println(obj2.whuffie);
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:-

ankit@stream:/home/Data/JAVA/practice/src/test.com/test-20121031_static_demystified$ javac Foof.java 
Foof.java:14: error: cannot assign a value to final variable size
obj1.size=53;    //compile time error
    ^
Foof.java:16: error: cannot assign a value to final variable …
Run Code Online (Sandbox Code Playgroud)

java static constants instance-variables class-variables

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

如何计算原始数据类型的范围?

根据 docs.oracle.com:-

byte:字节数据类型是一个 8 位有符号二进制补码整数。它的最小值为 -128,最大值为 127(含)。字节数据类型可用于在大型数组中节省内存,其中内存节省实际上很重要。它们也可以代替 int 使用它们的限制有助于澄清您的代码;变量范围有限的事实可以作为一种文档形式。

字节 - 8 位
2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0

128 64 32 16 8 4 2 1)

将所有这些数字相加,我们得到总共 255。那么 -128 到 127 的范围是如何计算的。它是在某个地方硬编码还是在这个范围内有更多的技术性?

任何建议,将不胜感激。

java range primitive-types

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

说一个方法读取一个数据字节是什么意思?

我正在通过oracle API java.io.RandomAccessFile上课.

在类中有一个名为read()的方法,它从传递给构造函数的文件中读取数据的字节:

public int read()抛出IOException

从该文件中读取一个字节的数据.该字节以0到255(0x00-0x0ff)范围内的整数形式返回.如果尚未提供输入,此方法将阻止.

尽管RandomAccessFile不是InputStream的子类,但此方法的行为方式与InputStream的InputStream.read()方法完全相同.

返回:数据的下一个字节,如果已到达文件末尾,则返回-1.抛出:IOException - 如果发生I/O错误.如果已达到文件结尾,则不会抛出.

我很困惑,这是否意味着它从传递给构造函数的文件中读取8位数据并将读取的内容转换为int.

有什么建议?

java api byte java-io

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

这里不允许'void'类型

得到一个不寻常的错误: - 这里不允许''void'类型

import javax.sound.midi.*;

 public class MiniMusicPlayer1 {
    public static void main(String[] args) {
            try {
                    Sequencer player = MidiSystem.getSequencer();
                    Sequence seq = new Sequence(Sequence.PPQ, 4);
                    Track track = seq.createTrack();
                    for (int i = 5; i < 61; i += 4) {
                            track.add(makeEvent(144, 1, i, 100, i));
                            track.add(makeEvent(128, 1, i, 100, i));
                    }

                            player.setSequence(seq);
                            player.setTempoInBPM(220);
                            player.start();



            } catch (Exception ex) {
                    System.out.println(ex.printStackTrace());
            }
    }

    public static MidiEvent makeEvent(int comd, int ch, int note, int vel,
                    int tick) {
            MidiEvent …
Run Code Online (Sandbox Code Playgroud)

java

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

通过继承和接口可以在类中存在两次相同的方法吗?

这是场景: -

class Canine{
  public void roam(){
    System.out.println("Canine-Roam");
  }
}

public interface Pet{    
  public abstract void roam();
}


class Dog extends Canine implements Pet{

  public void roam(){
    System.out.println("Dog Roam");
  }
  public static void main(String [] args){
    Dog adog = new Dog();
    adog.roam();
  }
}
Run Code Online (Sandbox Code Playgroud)

我知道JVM在选择运行哪种方法时一定不会有任何困惑,这意味着哪种方法会被覆盖.但无论如何我很困惑.为什么这个程序会编译?

java interface

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