小编chr*_*tek的帖子

Java中是否存在不产生垃圾的HashMap实现?

我注意到,java.util.HashMap当我在高性能系统上使用GC时会产生垃圾,它基本上是从网络读取的选择器.是否有替代java.util.HashMap(即,甚至不需要实现java.util.Map,换句话说,它可以有自己的API),我可以使用,不会留下任何垃圾?


GARBAGE =超出范围的对象,必须由GC收集.


对于@ durron597:

public static void main(String[] args) {

    Map<String, String> map = new HashMap<String, String>();

    while(true) {

        map.put("foo1", "bah1");
        map.put("foo2", "bah2");

        map.remove("foo1");

        Iterator<String> iter = map.keySet().iterator();

        while(iter.hasNext()) {
            iter.next();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在使用-verbose:gc运行它,看看会发生什么...... :)

java collections hashtable real-time hashmap

11
推荐指数
2
解决办法
2079
查看次数

可以将回溯尾递归算法转换为迭代吗?

让我们来看看Knight Tour问题吧.可以转换为迭代吗?困扰我的是回溯部分.如何在循环中回溯?当我从递归到迭代时,是否必须使用堆栈数据结构来实现回溯?


我在这里以更好的方式问了这个问题:有人能通过代码描述一个回溯迭代而不是递归的实际例子吗?

algorithm recursion tail-recursion data-structures

10
推荐指数
2
解决办法
4511
查看次数

有没有办法在不使用外部JAVA_TOOL_OPTIONS的情况下使用UTF-8构建maven构建类文件?

我不想依赖外部环境变量来强制maven使用UTF-8构建我的类.在Mac上,我在使用maven构建时遇到了各种各样的问题.只有下面的选项才能解决问题:

export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
mvn clean install
Run Code Online (Sandbox Code Playgroud)

但是,我正在分发我的项目,依靠用户设置此环境变量来正确构建项目是没有意义的.

尝试了这里描述的所有内容:为clojure源文件启用UTF-8编码

任何人都对这个令人敬畏的Maven问题有所了解?

java maven-2 character-encoding maven

9
推荐指数
1
解决办法
2万
查看次数

加入多播组或仅加入IP时是否需要PORT?

我想一劳永逸地学习.连接多播套接字的步骤是什么?我知道你有绑定到一个本地接口(你需要的IP和端口是什么?),那么我知道你要加入一个组(你需要IP:再次端口要加入的地址和网络接口! !! ??)然后最后你可以离开小组.

有经验的人可以澄清这些地址的全部内容吗?我将在下面列出:

  • BindAddress(IP:PORT)
  • 网络地址(IP:PORT)
  • MulticastAddress(IP:PORT)

这里的组播在哪里以及是什么?

sockets linux networking udp multicast

8
推荐指数
1
解决办法
1万
查看次数

如何捕获IOException"通过peer重置连接"?

解析字符串消息似乎很糟糕.或者这个例外是不是意味着被抓住了?

java.io.IOException: Connection reset by peer
    at sun.nio.ch.FileDispatcher.read0(Native Method)
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
Run Code Online (Sandbox Code Playgroud)

java sockets networking tcp

8
推荐指数
1
解决办法
4262
查看次数

Java中的非阻塞套接字写入与阻塞套接字写入相比

为什么有人更喜欢阻止写入非阻塞写入?我的理解是,如果你想确保另一方在写入方法返回后获得TCP数据包,你只想要阻塞写入,但我甚至不确定是否可能.你必须刷新和刷新必须刷新底层操作系统写入套接字缓冲区.那么非阻塞套接字写入有什么缺点吗?有一个大的底层写入套接字缓冲在性能方面是一个坏主意吗?我的理解是,底层套接字写缓冲区越小,你就越有可能遇到慢/错误的客户端,并且在底层套接字缓冲区已满且isWritable()返回false时,必须在应用程序级别中丢弃/排队数据包.

java sockets networking nio tcp

6
推荐指数
1
解决办法
5040
查看次数

支持快速删除任何节点的Java链表?

java.util.LinkedList不允许您快速删除列表中的给定对象.remove(object)方法执行线性搜索以查找列表中的对象,以便可以将其删除.由于这是一个双链表,因此只需更新指针(node.prev和node.next)即可.

这个问题的Java标准解决方案是什么?

注1:迭代时我不想删除.我知道这很快,但我不是首先在我的元素中迭代.

注意2:为简单起见:给定一个对象O,我知道它在双链表中,我想快速从该列表中删除O(通过更新指针),而不必在列表中对其进行线性搜索,如java.util.LinkedList呢.

java collections data-structures

6
推荐指数
1
解决办法
4383
查看次数

如果端口对多播组无关紧要,为什么DatagramSocket.joinGroup()方法采用SocketAddress?

我只是好奇.这是一个API错误吗?加入组播组时,不要使用端口,只使用组播组(IP)作为组播组,对吗?

这是一个令人烦恼的情况,是否会使用PORT?

java sockets networking network-programming multicast

6
推荐指数
1
解决办法
895
查看次数

使maven在构建jar中复制其他文件(不是资源,而是任何包内的任何文件)?

我有一个带有一些ruby文件(*.rb)的org.myapp.mypackage包,我需要将它们与java类文件一起包含在同一个包中生成的构建jar .我怎么告诉我的朋友Maven这样做?

OBS:不,我不能复制到其他任何地方,但感谢您的建议.:)

java maven-2 build maven

6
推荐指数
1
解决办法
1万
查看次数

在Java中使用内核绕过联网

有没有人想出如何在Java中进行内核绕过?任何问候世界或者这是火箭科学吗?

java sockets networking tcp real-time

6
推荐指数
2
解决办法
2667
查看次数