昨天我进行了一次有趣的采访,面试官问我一个经典问题:如何在不使用*
运算符的情况下将Java中的两个数字相乘.老实说,我不知道这是采访带来的压力,但我无法提出任何解决方案.
面试结束后,我回到家中,通过SO轻松寻找答案.到目前为止,我发现了以下内容:
第一种方法:使用For循环
// Using For loop
public static int multiplierLoop(int a, int b) {
int resultat = 0;
for (int i = 0; i < a; i++) {
resultat += b;
}
return resultat;
}
Run Code Online (Sandbox Code Playgroud)
第二种方法:使用递归
// using Recursion
public static int multiplier(int a, int b) {
if ((a == 0) || (b == 0))
return 0;
else
return (a + multiplier(a, b - 1));
}
Run Code Online (Sandbox Code Playgroud)
第三种方法:使用Log10
**// Using Math.Log10
public static double multiplierLog(int …
Run Code Online (Sandbox Code Playgroud) 我想将node.js服务器的ip登录到控制台,所以我添加了:
console.log( server.address().address )
Run Code Online (Sandbox Code Playgroud)
到我的服务器代码.我得到了这个回报:
::
Run Code Online (Sandbox Code Playgroud)
这是否意味着我的服务器ip没有设置?如果是这样,我该怎么设置呢?
编辑1; 这是问题的人,当我使用Node编译我的服务器文件时,我得到以下内容:
当我想看看我的应用程序在浏览器中的样子时,即使我尝试了所有这些,我也无法打开它:
我什么都没得到.这就是为什么我问你怎么可能知道哪个IP有效.
我正在尝试运行以下 Junit 测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { TestConfig.class, Account.class, AccountDao.class }, loader = AnnotationConfigContextLoader.class)
public class AccountTest{
private static final String URL_PREFIX = "http://localhost:8080/dsp2api";
private String cookie;
private RequestSpecification givenAuth() {
// return RestAssured.given().auth().form("user", "userPass", formConfig);
// if (cookie == null) {
// cookie = RestAssured.given().contentType("application/x-www-form-urlencoded").formParam("password", "userPass").formParam("username", "user").post(URL_PREFIX + "/login").getCookie("JSESSIONID");
// }
// return RestAssured.given().cookie("JSESSIONID", cookie);
return RestAssured.given()
.auth()
.basic("user", "userPass");
}
@Test
public void whenMethodArgumentMismatch_thenBadRequest() {
Response response = givenAuth().get(URL_PREFIX + "/api/foos/ccc");
ApiError error = response.as(ApiError.class);
assertEquals(HttpStatus.BAD_REQUEST, error.getCode());
assertEquals(1, …
Run Code Online (Sandbox Code Playgroud) 我有一个要包含在基于玉的应用程序中的ejs文件,但我不知道如何。
我正在尝试将软件包安装到我的OpenWrt SDK中.要做到这一点,你必须输入以下命令来使用OPKG包管理器:
opkg update
opkg install <package>
Run Code Online (Sandbox Code Playgroud)
但是,在我的情况下,OPKG没有安装,因此我无法继续.
有谁能告诉我如何安装它?谢谢.
我正在使用Kubuntu btw:
Linux ghanem-VGN-BZ31XT 3.16.0-34-generic #47-Ubuntu SMP Fri Apr 10 18:02:58 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud) 考虑这个简单的代码:
class A {}
class B extends A {}
public class TestClass {
public static void main(String args[]) {
A[] a, a1;
B[] b;
a = new A[10];
a1 = a;
b = new B[20];
a = b; // 1
b = (B[]) a; // 2
b = (B[]) a1; // 3
}
}
Run Code Online (Sandbox Code Playgroud)
仔细查看我评论1,2和3的行.在编译期间将允许第1行,因为赋值是从子类引用到超类引用完成的.
第2行中的强制转换是必需的,因为超类引用被分配给子类引用变量.这在运行时工作,因为a引用的对象实际上是B的数组(第1行).
现在,这就是我的困惑所在:第3行将抛出java.lang.ClassCastException.现在,这意味着在运行时,程序意识到实际对象不是B的数组,而是A的数组.
这正是我不明白的地方.B不延伸A吗?所以它满足条件B IS-A A,对吗?因此,第3行不应该在运行时抛出任何异常吗?
基本上,我想知道如何更改我的 server.js 代码以使其能够与 IPv6 配合使用?我在某处读到,您只需要在“listen(80)”行旁边添加您的 IPv6 地址,这将使它看起来像这样“listen (80, “IPv6”);”
然而,在我的代码中,情况比这要复杂一些。
以下是与服务器相关的代码行:
const
server = http.createServer(options, app),
.
.
.
var ss=tls.createServer(options, function (box) {
box.setEncoding('utf8');
.
.
ss.listen(8010);
.
.
var sockets = require('socket.io').listen(server).of('/el');
.
.
.
if (!module.parent) {
server.listen(port, function () {
console.log('Listening', this.address());
})
}
Run Code Online (Sandbox Code Playgroud) 如果您想立即阅读问题,请跳至最后一句.
假设我们有一个接口和三个类:
interface I{}
class A implements I{}
class B extends A {}
Run Code Online (Sandbox Code Playgroud)
以下声明:
A a = new A();
B b = new B();
Run Code Online (Sandbox Code Playgroud)
现在,有一种经典的转换方式,它允许我将类型A(父类)的引用转换为类型B的对象(子类),如下所示:
a = b; //here a is no longer pointing at object A, and is now pointing at the same object b is pointing at.
b = (B) a; // the casting is now accepted by the compiler and during runtime as well.
Run Code Online (Sandbox Code Playgroud)
这里问题就在哪里.每当我看到一行代码都有多个转换时,我就无法读取它(字面意思),因此我无法理解它的含义.
例如,假设我们有这行代码:
a = (B)(I)b;
Run Code Online (Sandbox Code Playgroud)
你怎么读这个?a
是对类型A的对象的引用,并且它被赋予类型B的对象的值(从左侧首先投射).但是等一下,b之前还有另一个演员(I).那么我们在这里有什么?它是一个被转换为(B)对象的接口吗?或者它是否被视为一个界面,也被投射为(B)?
我试图将其分解以避免混淆:
I temp = (I) …
Run Code Online (Sandbox Code Playgroud) java ×3
node.js ×3
casting ×2
inheritance ×2
javascript ×2
ejs ×1
ipv6 ×1
junit ×1
openwrt ×1
opkg ×1
pug ×1
rest ×1
spring ×1
spring-test ×1
web-services ×1