我编写了这个简单的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) 我正在尝试在我正在编写的当前程序中实现一个功能,我想学习如何向下滚动到JTextArea中的特定文本.例如,假设我有以下内容:
JTextArea area = new JTextArea(someReallyLongString);
Run Code Online (Sandbox Code Playgroud)
someReallyLongString表示一个段落,或一段非常大的文本(其中垂直滚动条可见).所以我要做的是向下滚动到该文本区域内的特定文本.例如,假设someReallyLongString在滚动条的中间附近包含单词"the"(意味着这个单词不可见),我将如何向下滚动到该特定文本?
谢谢,任何帮助都会非常感激.
好吧,所以我正在制作游戏,我正在尝试通过在其上添加文本来修改原始命中标记图像,并且我使用以下代码:
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) 我注意到很多话题都是关于暂停/恢复MP3的使用JLayer,所以为了帮助每个人,我已经完成了整个课程的设计!请参阅下面的答案.
注意:这仅供我个人使用,因此可能不像某些人希望的那样强大.但由于其简单性,进行简单的修改并不困难.
我有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')但这没有用。
任何帮助将不胜感激。谢谢。
我正在从一个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)