我有一个愚蠢的Java问题,这里有一个场景
Class A {}
Class AA extends A{}
AA aa = new AA()
A a = new A()
当我这样做的时候
aa = (AA) a;
我得到了一些错误,如在线程“主”java.lang.ClassCastException中的异常:A不能强制转换为AA
问题出在哪里?
我有Exception in thread "main" java.lang.NoClassDefFoundError: A (wrong name: a),我不知道这会导致什么
public class Test
{
public static void main(String[] args)
{
new B();
}
}
interface a { }
class A implements a { }
class B extends A { }
编辑:在在线编译器中,它编译
我开始学习Spring框架了。我已经看到了两种配置web应用程序的方法,一种是使用web.xml来配置servlet等。另一个使用实现WebApplicationInitializer的Java类,并且是注释驱动的。
我听说了,"XML is the old way, no new project should use XML anymore"。有人能告诉我为什么会这样吗?许多在线资源引用了"Convention over Configuration",然而,使用我可以访问的在线学习工具,绝大多数示例都是使用xml配置。我发现很难找到与Java配置相关的示例。
在我的命令行java工具中,我有一个可以正常工作的代码。
当我添加到eclipse时,相同的代码确实抛出了一些错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Cannot cast from Object to long
在线上:
long statusId = (long)json.get("status_id");
但是,使用javac和java命令时,我成功地运行了程序。
月食就是这样的!这是我的第一个日食程序,请帮帮我。
编辑
我正在尝试在Java中实现荷兰旗帜问题。为此,我编写了以下代码:
import java.util.*;
public class DutchFlag{
static void swap(int a,int b)
{
int t;
t = a;
a = b;
b = t;
}
public static void main(String []args){
int n;
Scanner sc;
System.out.print("En
我正在尝试解决一个竞争性的编码问题,当我在eclipse或命令提示符上执行它时,它工作得很好,但当我将解决方案上传到网站上时,它并没有执行,而是在我第一次接受用户输入的那一行抛出了noSuchElementException。我已经添加了导致问题的代码部分。
我尝试用java 8编译器版本在不同的在线编译器上执行它,但仍然抛出相同的错误。我也尝试过使用BufferedReader,但是由于某种原因,代码将k的值打印为-1。
import java.util.Scanner;
public class Solution {
public static void main(St
下面的代码不会编译,为什么?
System.out.println(Void.class instanceof Class);
这也不会编译
//according to oracle doc, the type of Void.TYPE is Class<Void>
System.out.println(Void.TYPE instanceof Class);
错误信息是
VoidTest.java:6: inconvertible types found : java.lang.Class<java.lang.Void> required: Class System
出于好奇,我刚刚使用 Decompiler以及使用CAVAJ ( Java为1.7 )解压缩了下面的代码,这里是正常的源代码:
byte a = 10;
a = (byte) (a +1);
byte b = 10;
b = b++;
byte c = 10;
c +=c;
System.out.printf("a=%d \t b=%d \t c=%d\n",a,b,c);
将输出显示为:a=11 b=10 c=20。
这是解压缩的一个:
byte a = 10;
a++;
byte b
从Java 5开始,volatile关键字具有发布/获取语义,以使副作用对其他线程可见(包括分配给非易失性变量!)。以这两个变量为例:
int i;
volatile int v;
请注意,i是一个常规的、非易失性变量。假设线程1执行以下语句:
i = 42;
v = 0;
在以后的某个时候,线程2执行以下语句:
int some_local_variable = v;
print(i);
根据Java内存模型,在线程1中写入v,在线程2中读取v,确保线程2看到在线程1中执行的对i的写入,因此输出值42。
我的问题是:volatile在C#中是否具有相同的发布/获取语义?
当我试图运行一个gwt项目时,它在下面出现了错误
java.lang.UnsupportedClassVersionError: com/google/appengine/tools/development/agent/AppEngineDevAgent : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.Secu
问题#1
在Java中,移位比使用单个语句以相同的数字移位更昂贵吗?
例如,是
int x = 5;
x = x << 16;
比
int x = 5;
for (int i=0; i<16; ++i) {
x = x << 1;
}
进一步说,那
int x = 5;
for (int i=0; i<16; ++i) {
x = x*2;
}
编辑:"x << 16“的精确性能是什么?它的速度和"x << 1“一样吗?
问题2
在Java中是否有在线资源可以用来确定各种按位操作的性能,这样我就不必浪费
我只是想弄清楚什么时候是静态或动态类型的编程语言,或者同时是静态类型和动态类型的语言,还是动态类型和动态类型的语言。
我感到困惑的是,如果已知一种语言是静态类型的,而变量的类型是已知的或在编译时定义的,在Java的情况下,即
//Java illustration of statically typed
int x, y; //explicit type declaration
x = 5, y = 10; //Now we use the variables
//Groovy illustration of statically typed
def x, y //explicit
我做了一个程序,要求三个整数输出类型的三角形。但是,一切都成功地运行和编译,但是,它似乎要求用户查看他们是否想再次循环它的部分,在线编译器输出错误:
线程"main“java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:838) at java.util.Scanner.next(Scanner.java:1347) at Assignment5.main中的异常(Assignment5.java:56)
import java.util.Scanner;
public cl