在命令行中运行.jar文件可以正常工作,但我无法通过双击Windows 7(64)来运行任何.jar文件.双击后似乎没有任何反应.
我尝试了"ftype"提示,没有成功.ftype jarfile ="C:\ Program Files\Java\jre7\bin\javaw.exe"-jar"%1"%*
我重新安装了JDK 7 64位,没有成功.
任何的想法?
int a = 1L;
Run Code Online (Sandbox Code Playgroud)
这不编译(当然). 不兼容的类型:从long到int的可能有损转换
int b = 0;
b += Long.MAX_VALUE;
Run Code Online (Sandbox Code Playgroud)
这确实编译了!
但为什么允许这样做呢?
我正在与我的同事的下一个谜语挣扎:
public class App1 {
public static void main(String[] args) {
String s1 = "Ja".concat("va"); // seems to be interned?!
String s2 = s1.intern();
System.out.println(s1 == s2); // true
}
}
Run Code Online (Sandbox Code Playgroud)
这输出是真的.我有点惊讶,因为它看起来像s1被拘禁.但这不是常数表达,不是吗?
但后来我更加惊讶为什么以下打印错误.
public class App2 {
public static void main(String[] args) {
String s1 = "Ja".concat("va"); // seems not to be interned?!
String s3 = new String("Java"); // this changes output
String s2 = s1.intern();
System.out.println(s1 == s2); // false
} …Run Code Online (Sandbox Code Playgroud) 以下是客户端和服务器的源代码.客户端只是(并发地)连接到服务器并立即关闭连接.完成所有线程后,它会等待2分钟并再次连接.我很困惑,有时一个简单的连接需要大约3秒!大多数情况下,连接需要大约0-32ms.
这是客户端的典型输出:
...
Connect 23 [ms]: 16
Connect 22 [ms]: 32
Connect 21 [ms]: 32
Connect 15 [ms]: 32
Connect 14 [ms]: 16
Connect 13 [ms]: 16
Connect 11 [ms]: 32
Connect 25 [ms]: 3016
Run Code Online (Sandbox Code Playgroud)
如果客户端和服务器位于不同的主机上,这似乎只会发生.Windows和Linux的可比行为Java 1.6.23
启动服务器2需要参数:[port] [线程池大小]
启动客户端需要3个参数:[host] [port] [线程池大小]
例如,我为服务器使用了150个线程池大小,为客户端使用了25个线程池大小.
任何人都可以解释这种行为吗?
-----服务器-----
package de.test.server;
import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
public class ServerApp {
public static void main(String[] args) throws IOException {
System.out.println("server running...");
final int port = Integer.parseInt(args[0]);
final int …Run Code Online (Sandbox Code Playgroud) 以下星座:
public class AccessModifierTest {
private static class Super {
private int n = 3;
private Super() {}
private void setN(int n) {
this.n = n;
}
}
private static class Sub extends Super {
private Sub() {
super(); // invoking private ctor is permitted
// setN(5); but invoking private method is not permitted, why?
// super.setN(5); this is fine too
}
}
public static void main(String[] args) {
Super superInstance = new Sub();
}
}
Run Code Online (Sandbox Code Playgroud)
Sub 的私有 ctor 可以调用 …