我实现了这段代码:
class A {
//some code
}
class B extends A {
// some code
}
class C {
public static void main(String []args)
{
B b1 = (B) new A();
A a1 = (B) new A();
}
}
Run Code Online (Sandbox Code Playgroud)
这两行在单独编译时编译正常,但是给出了运行时错误java.lang.ClassException: A cannot be cast into B
.
为什么他们编译好,但给出运行时错误?
我最近检查了甜蜜的小代码,使用XOR
函数交换两个变量.我为此使用了JavaScript.
设x和y为两个变量并让x = 4, y = 6
.
x = x ^ y;
y = y ^ x;
x = x ^ y;
它可以很好地交换变量.请注意,我保持x
和y
不同,以防止可由于首先发生混淆XOR
.
然后,观察声明,我写道:
x = x ^ (y = y ^ (x = x ^ y ));
这交换变量y
正确,但x
总是0
.
而且,x ^= y ^= x ^= y;
似乎也是等效表达式产生与第二种情况相同的不正确结果.
但是,所有这些语句都在Java上等效运行,并且始终如一地生成相同的结果.
我还使用JavaScript的严格模式.
这三个陈述在某种程度上不等同于JavaScript或我错过了一些关键的东西吗?
为什么Java中的switch case语句只采用整数,短整数,字节和字符而不采用其他数据类型?有什么好处?请详细解释.
我正在尝试使用mongodb
NodeJS驱动程序编写脚本以将管理员用户和通用用户添加到MongoDB数据库- 版本3.0.1
我可以创建管理员用户,但不能创建数据库的普通用户.我总是得到MongoError: there are no users authenticated
.通过文档,验证用户的唯一方法是通过URL.我已经从指定的路径完全删除了数据库,尝试了多次,仍然,我被卡住了.
这是我到目前为止所得到的,
const MongoClient = require('mongodb').MongoClient;
const format = require('util').format;
const config = require("./config.json");
var adminUser = process.argv[2],
adminPassword = process.argv[3],
url = `mongodb://${config.database.location}:${config.database.port}`,
authURL = `mongodb://%s:%s@${config.database.location}:${config.database.port}/?authMechanism=SCRAM-SHA-1&authSource=admin`;
if (!adminUser || !adminPassword) {
throw new Error("Please enter administrator username and password!\nUsage:\tnode init.js <adminUserName> <adminPassword>\n\n");
}
MongoClient.connect(url, function (err, client) {
if (err) throw err;
console.log("Connected successfully to server");
const db = client.db(config.database.name);
var adminDb = db.admin();
adminDb.addUser(adminUser, adminPassword, { …
Run Code Online (Sandbox Code Playgroud) 我使用Java实现了这个代码.它给了我一个错误说" java.lang.ArrayIndexOutOfBoundsException
"我不知道为什么?另外,我将我声明的整数(int op = 0;)更改为double而没有更改.该程序适用于+,/和 - .但不是*.为什么会这样?这是代码:
class test {
public static void main(String [] mySpace) {
double op=0;
if (mySpace[0].equals("*")) {
op=Integer.parseInt(mySpace[1])*Integer.parseInt(mySpace[2]);
}
System.out.println("Heya! "+ op);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我在命令提示符中使用了这些命令:
javac test.java //用于编译名为test.java的源文件
java test*10 20 //执行
如果要检查的条件满足和不满足的情况,8085 中的任何跳转语句都需要哪些机器周期?
编辑:我知道号码。我想知道那些机器周期是什么。第一个是 Opcode Fetch,但其余的呢?