小编ak1*_*652的帖子

toString() 方法可以在 Java 中接受一个参数吗?

我在 eclipse 中对此进行了测试,它没有给我任何例外。但是我无法指定值 x。toString() 可以接受一个参数吗(我知道我下面的例子不是最好的)?

测试.java

public class Test {

    public String toString(int x){
        return "Hey "+ x;
    }

}
Run Code Online (Sandbox Code Playgroud)

主程序

public class Main {
      public static void main(String[] args){

          System.out.println(new Test());


      }
}
Run Code Online (Sandbox Code Playgroud)

java

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

JScrollPane,JTextArea和JPanel的问题

我需要在我的JPanel中添加一个垂直滚动条.当长串文本没有正确包装等时出现问题.所以我在网上执行了步骤并将其放在文本区域中并且工作正常(没有滚动窗格).

然而,在添加JScrollpane(它应该只是垂直的,并且请假设它是必需的,即不能设置最小尺寸)到JPanel时,当我水平调整它时,它会完全混乱.它不会在调整大小时进行包装,而其他组件的位置会变得混乱.

可能看起来很奇怪,我在这里有不必要的面板,但是我作为一个更大的程序的一部分工作并且是必需的(for循环仅用于测试目的).

总而言之:在水平调整窗口大小时,它的行为不符合预期.

会很感激一些指导.

import java.awt.BorderLayout;
import java.awt.GridLayout;

import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;

public class Main {

    public static void main(String[] args) {

        String s = "Hello my name is test. I am a test. Hello my name is test. I am a test. Hello my name is test. I am a test. Hello my name is test. I am a test. ";
        JFrame jf = new JFrame("Test"); …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel jscrollpane jtextarea

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

关于循环终止时计数器变量的混淆

对于这段代码:

int number = 25;
int i;

boolean isPrime = true;
for (i = 2; i < number && isPrime; i++) {
  if (number % i == 0) {
    isPrime = false;
  }
}

System.out.println("i is " + i + " isPrime is " + isPrime);
Run Code Online (Sandbox Code Playgroud)

我的印象是,输出会是下:"i is 5 isPrime is false",从何时起i=5,number % i == 0true,这样的变量isPrime成为false循环将无法继续.

所以当循环返回时

for (i = 2; i < number && isPrime; i++)
Run Code Online (Sandbox Code Playgroud)

它不会增加 …

java for-loop

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

XOR如何防止shellcode中的NULL字节

我一直在尝试按照本教程(https://paraschetal.in/writing-your-own-shellcode)来编写自己的shellcode.其中99%对我有意义,但我心中只有两个疑惑 - 这与编写shellcode有关

首先,我想我明白为什么我们要避免空字节但是如何使用以下避免空字节?

xor eax, eax
Run Code Online (Sandbox Code Playgroud)

eax现在不包含完全空字节?或者它包含0?当我们对自己进行异或时,它会返回False,对吗?

其次,教程说:

最后,我们将把系统调用号(11或0xb)加载到eax寄存器.但是,如果我们在指令中使用eax,生成的shellcode将包含一些NULL(\ x00)字节,我们不希望这样.我们的eax寄存器已经是NULL.因此,我们只需将系统调用号加载到al寄存器而不是整个eax寄存器.

mov byte  al, 0x0b
Run Code Online (Sandbox Code Playgroud)

现在我明白了这里发生了什么,数字11(for execve)被加载到eax寄存器的前8位(即al).但其余的eax仍然包含空字节,那么究竟是什么在这里实现的?

请注意,在我花了大部分时间试图理解这一点后,我作为最后的手段来到这里,所以请放轻松我:)

c assembly execve shellcode

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

标签 统计

java ×3

assembly ×1

c ×1

execve ×1

for-loop ×1

jpanel ×1

jscrollpane ×1

jtextarea ×1

shellcode ×1

swing ×1