我在 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) 我需要在我的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) 对于这段代码:
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 == 0是true,这样的变量isPrime成为false循环将无法继续.
所以当循环返回时
for (i = 2; i < number && isPrime; i++)
Run Code Online (Sandbox Code Playgroud)
它不会增加 …
我一直在尝试按照本教程(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仍然包含空字节,那么究竟是什么在这里实现的?
请注意,在我花了大部分时间试图理解这一点后,我作为最后的手段来到这里,所以请放轻松我:)