Tag: 标识符

main是一个有效的Java标识符吗?

我的一个孩子正在高中学习Java,并在他的一个测试中得到了这个: 以下哪项是Java中的有效标识符? 一个。 123java 湾 main C。 java1234 d。 {abce 即 )whoot 他回答了b并弄错了。 我查看了这个问题并认为main 是一个有效的标识符,它应该是正确的。 我们看了一下标准的Java 规范 ,并强调了这一点。 我们还编写了一个示例程序,它有一个名为main的变量,以及一个方法。 他创建了一个书面反驳,包括Java文档参考,测试程序和老师忽略它,并说答案仍然是错误的。 main是有效的标识符吗?

在Java编译器中,哪种类型可以定义为标识符(ID)或关键字(保留字)?

我有一个简单的问题: 在Java Compiler中,哪种类型的方法或变量可以定义为标识符(ID)或关键字(保留字)? 对于以下示例,ID应为: add , main , a , b , c , Test1 ,如何print ,是print ID还是关键字? 例: public class Test1 { public static int add(int a, int b) { return a + b; } public static void main() { int c; int a = 5; c = add(a, 10); if (c > 10) […]

为什么JVM允许我们命名以字节码中的数字开头的函数?

标识符由Java语言规范,Java SE 7 Edition (§3.8)很好地定义 An identifier is an unlimited-length sequence of Java letters and Java digits, the first of which must be a Java letter. 据我所知,由于方法名称是标识符,因此不可能在java中命名以数字开头的方法,而javac遵守此规则。 那么,为什么Java虚拟机似乎不遵守这个规则,允许我们在Bytecode中命名一个以数字开头的函数? 这个简单的代码片段实际上会打印f99()方法名称及其参数的值。 public class Test { public static void main(String[] args) { Test t = new Test(); System.out.println(t.f99(100)); } public int f99(int i){ System.out.println(Thread.currentThread().getStackTrace()[1].getMethodName()); return i; } } […]

如何使用Hibernate实现自定义字符串序列标识符生成器

我正在使用spring,h2和liquibase的hibernate,我试图通过这个博客文章的示例为我的实体创建一个自定义的String id生成器,但是我收到一个错误: Caused by: org.hibernate.id.IdentifierGenerationException: Unknown integral data type for ids : java.lang.String 这是我的SequenceStyleGenerator代码: public class CTCIDGenerator extends SequenceStyleGenerator { @Override public Serializable generate(SessionImplementor session, Object obj) { if (obj instanceof Identifiable) { Identifiable identifiable = (Identifiable) obj; Serializable id = identifiable.getId(); if (id != null) { return id; } } return “CTC”+super.generate(session, obj); } […]

将unicode符号用作Java标识符是一个好主意吗?

我有一段代码如下: double Δt = lastPollTime – pollTime; double α = 1 – Math.exp(-Δt / τ); average += α * (x – average); 在Java标识符中使用unicode字符的想法有多糟糕? 或者这完全可以接受?