小编pde*_*eva的帖子

听众作为弱点的利弊

将听众保持为WeakReferences的利弊是什么.

当然,最大的'专业'是:

将侦听器添加为WeakReference意味着侦听器不需要打扰"删除"自身.

更新

对于那些担心只有对象引用的侦听器,为什么有2个方法,addListener()和addWeakRefListener()?

那些不关心去除的人可以使用后者.

java design-patterns weak-references observer-pattern

70
推荐指数
5
解决办法
2万
查看次数

在kotlin中检查无效的最佳方法?

我应该使用双倍=还是三倍=

if(a === null)  {
//do something
}
Run Code Online (Sandbox Code Playgroud)

要么

if(a == null)  {
//do something
}
Run Code Online (Sandbox Code Playgroud)

同样地,'不等于':

if(a !== null)  {
//do something
}
Run Code Online (Sandbox Code Playgroud)

要么

if(a != null)  {
//do something
}
Run Code Online (Sandbox Code Playgroud)

kotlin kotlin-null-safety

67
推荐指数
5
解决办法
4万
查看次数

整数序列的最佳压缩算法

我有一个大数组,其中包含大多数连续的整数,例如1-100,110-160等.所有整数都是正数.压缩它的最佳算法是什么?

我尝试了deflate算法,但这只给我50%的压缩.请注意,算法不能有损.

所有数字都是独一无二的并逐渐增加.

另外,如果你能指出我的这种算法的java实现会很棒.

compression algorithm

50
推荐指数
7
解决办法
5万
查看次数

如何使用Java 8流映射到多个元素?

我有一个这样的课:

class MultiDataPoint {
  private DateTime timestamp;
  private Map<String, Number> keyToData;
}
Run Code Online (Sandbox Code Playgroud)

我想为每个MultiDataPoint生成

class DataSet {
        public String key;    
        List<DataPoint> dataPoints;
}

class DataPoint{
  DateTime timeStamp;
  Number data;
}
Run Code Online (Sandbox Code Playgroud)

当然,在多个MultiDataPoints中,"key"可以是相同的.

所以给定一个List<MultiDataPoint>,我如何使用Java 8流转换为List<DataSet>

这就是我目前在没有流的情况下进行转换的方式:

Collection<DataSet> convertMultiDataPointToDataSet(List<MultiDataPoint> multiDataPoints)
{

    Map<String, DataSet> setMap = new HashMap<>();

    multiDataPoints.forEach(pt -> {
        Map<String, Number> data = pt.getData();
        data.entrySet().forEach(e -> {
            String seriesKey = e.getKey();
            DataSet dataSet = setMap.get(seriesKey);
            if (dataSet == null)
            {
                dataSet = new DataSet(seriesKey);
                setMap.put(seriesKey, dataSet);
            }
            dataSet.dataPoints.add(new DataPoint(pt.getTimestamp(), …
Run Code Online (Sandbox Code Playgroud)

java lambda closures java-8 java-stream

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

易失性变量"读取"和正常读取一样快吗?

我知道写入volatile变量会将其从所有cpus的内存中刷新,但是我想知道对volatile变量的读取是否和正常读取一样快?

volatile变量永远被放置在CPU缓存或者它总是从主存储器中获取?

java performance multithreading volatile

39
推荐指数
3
解决办法
6386
查看次数

Java并发和并行GC

本文在这里建议使用-XX:+UseParNewGC"为了使与并发GC并行年轻一代的GC".

我的困惑是,为了启用并行和并发GC,我应该

  • -XX:+UseParNewGC
  • 使用-XX:+UseParNewGC -XX:+UseConcMarkSweepGC

PS

我正在使用JVM 6.

java concurrency garbage-collection

36
推荐指数
4
解决办法
9万
查看次数

启动java应用程序时使用-noverify

我已经看到许多应用程序采用仪器类,并-javaagent在加载时将其作为参数放入-noverify命令行.

Java doc说,-noverify关闭了类验证.

然而,为什么有人想要关闭验证,即使他们正在检测课程?

java command-line-arguments

35
推荐指数
4
解决办法
4万
查看次数

什么是稀疏的体素八叉树?

我已经阅读了很多关于稀疏体素八叉树在未来图形引擎中的潜在用途.

但是我无法找到有关它们的技术信息.

我理解体素是什么,但是我不知道稀疏的体素八叉树是什么,或者它们如何比现在使用的多边形技术更有效.

有人可以向我解释或指出对此的解释吗?

graphics voxels

33
推荐指数
3
解决办法
3万
查看次数

'退出'(ctrl + c)来自控制台的进程 - Eclipse vs Intellij

似乎在Eclipse中,如果你想将ctrl + c发送给你不能进行的进程.控制台上的终止按钮只会在不运行关闭挂钩的情况下终止正在运行的进程.我知道java本身不允许向另一个进程发送信号.

然而,似乎intellij idea的'stop'按钮旁边有一个'exit'按钮,它允许关闭钩子运行.

谁能告诉我intellij怎么做?

我需要从程序中将ctrl + c发送到另一个java进程.

eclipse intellij-idea kill-process

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

将war应用程序名称与war文件名分隔开

目前,如果我在名为say的tomcat上部署war文件myapp.war,我可以通过http:// localhost/myapp/MyServlet访问其URL .

但是我想要的是在war文件名中部署一个版本号的war,并且仍然具有相同的url.例如,我想部署myapp-1.1.0.war并仍然将URL设置为http:// localhost/myapp/MyServlet

当然我需要不断更新战争,版本号会不断变化,所以我不能在任何地方硬编码war文件名.web.xml我可以使用任何设置来保持应用程序的相同网址,无论战争文件名是什么?

java tomcat war java-ee

27
推荐指数
2
解决办法
3万
查看次数