小编Jos*_*h M的帖子

为什么方法1和方法2在字节码级别相同?

我编写了这个简单的Test类来了解Java如何boolean在字节码级别评估代数:

public class Test {

    private static boolean a, b;

    public static boolean method1(){
        return !(a || b);
    }

    public static boolean method2(){
        return !a && !b;
    }
}
Run Code Online (Sandbox Code Playgroud)

如果你简化method1()使用DeMorgan的法则,你应该得到method2().在查看字节码(使用javap -c Test.class)后,它看起来像:

Compiled from "Test.java"
public class Test {
    public Test();
    Code:
            0: aload_0
    1: invokespecial #1                  // Method java/lang/Object."<init>":
            ()V
    4: return

    public static boolean method1();
    Code:
            0: getstatic     #2                  // Field a:Z
            3: ifne          16
            6: getstatic     #3 …
Run Code Online (Sandbox Code Playgroud)

java bytecode

21
推荐指数
4
解决办法
987
查看次数

Java - 滚动到JTextArea中的特定文本

我正在尝试在我正在编写的当前程序中实现一个功能,我想学习如何向下滚动到JTextArea中的特定文本.例如,假设我有以下内容:

JTextArea area = new JTextArea(someReallyLongString);
Run Code Online (Sandbox Code Playgroud)

someReallyLongString表示一个段落,或一段非常大的文本(其中垂直滚动条可见).所以我要做的是向下滚动到该文本区域内的特定文本.例如,假设someReallyLongString在滚动条的中间附近包含单词"the"(意味着这个单词不可见),我将如何向下滚动到该特定文本?

谢谢,任何帮助都会非常感激.

java swing text caret jtextarea

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

BufferedImage生成黑色背景

好吧,所以我正在制作游戏,我正在尝试通过在其上添加文本来修改原始命中标记图像,并且我使用以下代码:

import javax.swing.ImageIcon;
import javax.swing.Timer;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
public class HitMarker {

    public static final Image rangeHitMarker = new ImageIcon(HitMarker.class.getResource("rangeHitMarker.png")).getImage();
    public static final Image magicHitMarker = new ImageIcon(HitMarker.class.getResource("magicHitMarker.png")).getImage();
    public static final Image monsterHitMarker = new ImageIcon(HitMarker.class.getResource("monsterHitMarker.png")).getImage();

    public static final Font font = new Font("Tahoma", Font.PLAIN, 10);

    public static final Color t = new Color(0,0,0,0);

    public Image hitMarker;
    public BufferedImage image;
    public String hit;

    public int attackStyle;

    public boolean rangeAttack; …
Run Code Online (Sandbox Code Playgroud)

java transparency bufferedimage background image

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

JLayer - 暂停和恢复歌曲

我注意到很多话题都是关于暂停/恢复MP3的使用JLayer,所以为了帮助每个人,我已经完成了整个课程的设计!请参阅下面的答案.

注意:这仅供我个人使用,因此可能不像某些人希望的那样强大.但由于其简单性,进行简单的修改并不困难.

java resume playback jlayer

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

Gradle本地项目依赖性

我有2个Gradle项目都在同一目录中。目录结构如下:

ParentDirectory\
    GradleProjectA\
        build.gradle
    GradleProjectB\
        settings.gradle
        build.gradle
Run Code Online (Sandbox Code Playgroud)

我想添加GradleProjectA为的依赖项GradleProjectB。在settings.gradlefor中GradleProjectB,我尝试添加include 'GradleProjectA',然后在build.gradle:中,compile project(':GradleProjectA')但这没有用。

任何帮助将不胜感激。谢谢。

java gradle

7
推荐指数
3
解决办法
9669
查看次数

了解如何使用visitFrame

我正在从一个JAR文件中读取一堆类,我计划在Java中注入一个简单的方法(然后转储新的jar),它将一些数据发布到PHP文件:

public static void post(final String n, final String o){
    try{
        final URL url = new URL("http://urltophpfile.com/phpfile.php");
        final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setReadTimeout(60000);
        connection.setConnectTimeout(60000);
        connection.setDoInput(true);
        connection.setDoOutput(true);
        connection.setRequestMethod("POST");
        connection.addRequestProperty("User-Agent", "useragent");
        final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(connection.getOutputStream()));
        writer.write(String.format("n=%s&p=%s", n, o));
        writer.flush();
        writer.close();
        connection.getInputStream().read();
    }catch(IOException ex){
        ex.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我使用Intellij Bytecode Viewer查看了它的字节码,它生成:

    public static post(Ljava/lang/String;Ljava/lang/String;)V
    TRYCATCHBLOCK L0 L1 L2 java/io/IOException
            L0
    LINENUMBER 11 L0
    NEW java/net/URL
            DUP
    LDC "http://urltophpfile.com/phpfile.phpp"
    INVOKESPECIAL java/net/URL.<init> (Ljava/lang/String;)V
    ASTORE 2
    L3
    LINENUMBER 12 L3
    ALOAD 2
    INVOKEVIRTUAL …
Run Code Online (Sandbox Code Playgroud)

java bytecode java-bytecode-asm

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