java用啥编译器

以下是为您整理出来关于【java用啥编译器】合集内容,如果觉得还不错,请帮忙转发推荐。

【java用啥编译器】技术教程文章

java – 编译器说缺少return语句但我已经有3【代码】

这很奇怪.我的编译器说我错过了一个return语句,但我已经有3个.这是我的代码:public int tortoiseMoves() {int i = tGen();if (i >= 1 && i <= 5){int fastplod = 3;return fastplod;}if (i >= 6 && i <= 8){int slowplod = 1;return slowplod;}if (i >= 9 && i <= 10){int slip = -6;return slip;} }解决方法:您必须确保始终返回一个值.如果你的所有条件都失败了,你就不会退货. 修复将链接你的if语句,因为它们是独占的,并使用else...

如何以编程方式将-X选项传递给java编译器【代码】

JavaCompiler – 如何以编程方式将-X选项传递给JavaCompiler类?解决方法:您链接到的JavaCompiler页面有一些很好的例子.他们使用以下代码行调用编译器:compiler.getTask(null, fileManager, null, null, null, compilationUnits1).call();getTask方法的第四个参数是一个选项字符串列表(实际上是Iterable< String>但是列表就足够了).所以你可以这样做:compiler.getTask(null, fileManager, null,Arrays.asList("-Xlint:all"),nul...

为什么Java编译器不能解决这个问题呢?【代码】

为什么编译器无法在以下示例中从Collections.emptySet()推断出结果的正确类型?import java.util.*; import java.io.*;public class Test {public interface Option<A> {public <B> B option(B b, F<A,B> f);}public interface F<A,B> {public B f(A a);}public Collection<String> getColl() {Option<Integer> iopt = null;return iopt.option(Collections.emptySet(), new F<Integer, Collection<String>>() {public Collection<...

如何告诉Java编译器不要抱怨某些异常没有被捕获或抛出?【代码】

有没有办法告诉Java编译器如果我100%确定永远不会发生异常,就不会抱怨某个异常没有被捕获或抛出?解决方法:假设您的意思是检查异常,则不能.通常我会捕获异常,但会将其传播到RuntimeException,例如try {// Do something which could, but won't, throw SomeCheckedException } catch (SomeCheckedException e) {throw new WorldHasGoneMadException(e); }您可能非常希望为这种情况创建一个特定的例外 – 虽然我不建议使用真实名称的...

Java编译器是否会预先计算文字的总和?【代码】

int i = 10 + 20;是否真的编译器将处理此代码,添加10 20,字节代码与此代码行相同?int i = 30;我在哪里可以阅读它?解决方法:是的,您甚至可以自己验证它.拿一个小的Java文件,例如:public class Main {public Main() {int i = 10 + 20;} }用javac Main.java编译它,然后运行javap -c Main来反汇编它:Compiled from "Main.java" public class Main extends java.lang.Object{ public Main();Code:0: aload_01: invokespecial ...

Java编译器抱怨未报告的IOException【代码】

我正在尝试编写一个列出目录中所有非隐藏文件的方法.但是,当我添加条件!Files.isHidden(filePath)时,我的代码将无法编译,并且编译器返回以下错误:java.lang.RuntimeException: Uncompilable source code - unreported exception java.io.IOException; must be caught or declared to be thrown我试图捕获IOException,但编译器仍然拒绝编译我的代码.有什么明显的东西让我失踪吗?代码如下.try { Files.walk(Paths.get(root))....

Java编译器对象代码(字节代码?)

典型的C程序将被编译,组装,链接和加载.我知道Java可以与JVM一起使用并生成字节代码.是否可以使用链接器连接两个“目标文件”?例如,通过使用链接器并链接两个目标文件,可以一起使用C程序和C程序. 可以在C和Java之间完成相同的操作吗?解决方法:您不能直接将已编译的C代码与已编译的Java代码链接. 您可以使用Java Native Interface (JNI)从Java调用已编译的C或C代码:The Java Native Interface (JNI) enables the integration of c...

java(编译器或jvm)是否以不同方式处理类的静态最终成员?如果是的话【代码】

围绕静态最终常量进行一些优化似乎是合乎逻辑的(例如用文字等替换变量)以提高性能解决方法:对于无法使用的常量(字符串,数字),编译器的行为方式不同,是的. 当编译器发现一个常量表达式时,它会将该常量表达式的结果嵌入到使用它的代码中,而不是每次都计算它.所以如果你有:public static final int FOO = 10; public static final int BAR = 5;... System.out.println(FOO * BAR);那么常数值50将直接嵌入代码中. 请注意,这有与之关联...

Java编译器通常预先计算最终字段的哈希码吗?【代码】

我有一个HashMap密集型Java程序,其中几个类具有从最终字段计算的哈希码.例如:public class Foo {private final int bar;private final String zot;@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + bar;result = prime * result + zot.hashCode();return result;} }编译器可以观察到在对象初始化之后哈希码不能改变,并将其预先计算到另外的私有final字段中.当前的Java编译器是否像...

为什么Java编译器生成奇怪的本地变量和堆栈映射帧?如何使用它们可靠地确定变量类型?【代码】

我在ASM框架的帮助下创建Java字节码检测工具,需要确定并可能更改方法的局部变量类型.很快我遇到了一个简单的情况,其中变量和堆栈映射节点看起来有些奇怪,并且没有给我足够的有关正在使用的变量的信息:public static void test() {List l = new ArrayList();for (Object i : l) {int a = (int)i;} }给出以下字节码(来自Idea):public static test()VL0LINENUMBER 42 L0NEW java/util/ArrayListDUPINVOKESPECIAL java/util/ArrayLis...