可以请任何人解释JPanel.repaint()方法和JFrame.repaint()方法之间的区别,我想两者都调用paintComponent()JPanel中的方法.
请澄清一下,谢谢
我很困惑为什么我需要将清理代码放在一个finally块中关闭流.
我已经读过finally块中的代码无论如何都会运行(是否存在异常); 并且在finally块运行之后,该方法的其余部分继续.
我的问题是:如果方法的其余部分必须继续,那么为什么我不在函数中的try/catch块之后放入清理代码?
我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) 根据 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 的范围是如何计算的。它是在某个地方硬编码还是在这个范围内有更多的技术性?
任何建议,将不胜感激。
我正在通过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.
有什么建议?
得到一个不寻常的错误: - 这里不允许''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) 这是场景: -
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在选择运行哪种方法时一定不会有任何困惑,这意味着哪种方法会被覆盖.但无论如何我很困惑.为什么这个程序会编译?