小编Am_*_*ful的帖子

为什么我们有两个版本的Java?

为什么我们有两个版本的Java?

  1. 来自Oracle的jdk和来自OpenJDK的jdk.
  2. 为什么OpenJDK仅适用于Linux?
  3. 在维基百科上,我发现Java是开源的.但是,我发现Oracles JDK中的版权信息说一切都受到限制???

java

5
推荐指数
1
解决办法
274
查看次数

Java:在跳过中间继承的超类时调用基超类方法

假设我有三个类:

class A
{
    public void method()
    { /* Code specific to A */ }
}

class B extends A
{
    @Override
    public void method()
    { 
       /*Code specific to B*/
       super.method(); 
    }
}

class C extends B
{
    @Override
    public void method()
    { /* I want to use the code specific to A without using B */ }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,目标是使用 A 中的代码而不使用 B 中的代码。我认为有一种方法可以通过调用 super 方法来实现,但这也引入了 B 中的代码。

有没有办法做到这一点?

java methods inheritance

5
推荐指数
1
解决办法
1467
查看次数

LAN 上的点对点发现

所以,正如标题可能暗示我在我的 Java 项目中遇到了一些麻烦。我想做的是这样的:

  • 我有两台运行应用程序 X 的计算机
  • 还有另外三台计算机运行应用程序 Y

我需要做的是在 X 和 Y 之间建立连接。 例如,有人使用运行 X 的计算机,在发现过程后,他们将返回运行 Y 应用程序的计算机列表及其 IP,反之亦然。

我已经使用 UDP 广播完成了此操作,但有时会失败。电脑通过WiFi连接,所以基本上是通过路由器。在很多情况下,任何 X 计算机都可以通过我的 UDP 发现方法看到 Y 计算机,但有时不能,除非我手动指向 IP,有时甚至不会。

这是用于发现侦听特定端口的服务器的代码:

public static ArrayList<InetAddress> searchComputer() {
    ArrayList<InetAddress> targets = new ArrayList<InetAddress>();
    try {
        c = new DatagramSocket();
        c.setBroadcast(true);

        byte[] sendData = "DISCOVER_PC_SERVER_REQUEST".getBytes();
        try {
            DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, InetAddress.getByName("255.255.255.255"), 2005);
            c.send(sendPacket);
        } catch (Exception e) {}
        Enumeration interfaces = NetworkInterface.getNetworkInterfaces();

        while (interfaces.hasMoreElements()) {
            NetworkInterface networkInterface = (NetworkInterface) interfaces.nextElement();

            if …
Run Code Online (Sandbox Code Playgroud)

java networking lan udp network-programming

5
推荐指数
1
解决办法
1746
查看次数

如何在列表中存储客户端

我正在运行一个服务器,我有一个类型为Client的arraylist当客户端通过ServerSocket.accept()连接时,我将新的Socket传递给arraylists构造函数.这是构造函数中的所有内容

this.add(new Client(Socket client));
Run Code Online (Sandbox Code Playgroud)

我的问题是当客户端断开连接时,它会关闭Socket,但它不会删除它在arraylist中的位置,并将所有内容都移到一个位置.所以arraylist不断变大.

我可以做什么/用来解决这个问题?

有时我会运行将在所有客户端上执行的命令,这就是我将客户端存储在arraylist中的原因.

是否有更好的替代方法在服务器中存储客户端?

更新1

课程处于起步阶段.很少实施.到目前为止,答案中建议的HashMap选项最适合我.谢谢您的回复

java sockets networking network-programming arraylist

5
推荐指数
1
解决办法
4020
查看次数

在 makefile 中运行脚本

我想在像这样的 makefile 中运行脚本

    all: a b
    a:
        cd ~/trials; \
        . ./sx.sh
    b:
        echo $(bn)
Run Code Online (Sandbox Code Playgroud)

sx.sh 这样做

    export bn=1
Run Code Online (Sandbox Code Playgroud)

发出 make 命令时,我在终端中看不到该变量。我的目标是在针对这些脚本特定设置编译我的项目之前运行脚本。

shell scripting makefile

5
推荐指数
1
解决办法
5539
查看次数

如何在下载之前检查URL中的重复文件

我的计算机上的文件夹中有数千个图像,我试图找出如何检查来自给定URL的文件是否已经下载.有可能吗?

这只给我文件的大小.

URL url = new URL("http://test.com/test.jpg");
url.openConnection().getContentLength();
Run Code Online (Sandbox Code Playgroud)

对于我使用的重复文件

FileUtils.contentEquals(file1, file2)
Run Code Online (Sandbox Code Playgroud)

谢谢您的回答!

java url file download duplicates

5
推荐指数
1
解决办法
708
查看次数

Kruskal与堆或排序算法

我试图尽可能高效地实施Kruskal.

对于运行时效率,使用堆或排序算法对边进行排序是否有区别?

还有哪些其他技术可以使Kruskal算法更有效地工作?

java algorithm time graph-theory kruskals-algorithm

5
推荐指数
1
解决办法
993
查看次数

PC 与负载或链接地址有什么关系?

链接地址是程序执行发生的地址,而加载地址是程序实际放置在内存中的地址。

现在我很困惑程序计数器的值是什么?是加载地址还是链接地址?

linker operating-system loader computer-architecture program-counter

5
推荐指数
1
解决办法
1216
查看次数

Linux 中可用于删除文件的系统调用

Linux 上可以使用哪些系统调用来删除文件?我指的不仅仅是 libc-wrapper 使用的系统调用(它又由命令行工具使用)。

除了unlink以及unlinkat哪些系统调用可用于删除 Linux 计算机上的文件?

linux system-calls file-handling unlink delete-file

5
推荐指数
1
解决办法
5029
查看次数

在Java中停止阻止套接字

我有一个调用服务器的Java套接字。但是,我不知道我可以在哪个地址访问服务器,因此我在多个线程中放置了几个套接字,它们尝试在一个地址上分别访问服务器。我的探究是我不想等待超时,但不知道如何正确停止套接字及其线程。

码:

socket = new Socket();
socket.connect(endpoint, timeout); // **Blocking method**
OutputStream out = socket.getOutputStream();
//Write Data here
Run Code Online (Sandbox Code Playgroud)

如何中断操作?我认为Thread.stop()样式不好,而且也无法正常工作。.NET Tcp端点具有一种非阻塞pending方法,该方法允许uinsg布尔标志,但是我找不到类似的东西

java sockets multithreading network-programming timeout

5
推荐指数
1
解决办法
458
查看次数