小编Nat*_*han的帖子

Log4j2自定义布局

我正在使用Log4j2 PatternLayout.是否有可能编写自己的Layout扩展AbstractStringLayout,以便我可以自定义输出消息?

我已经阅读了文档,但我只看到了布局的变化 - 没有自定义的.

https://logging.apache.org/log4j/2.x/manual/layouts.html

java log4j2

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

如何优化Java堆中未使用的空间

不要相信我的话。我只是重复我从不同来源拼凑出来的东西。HotSpot JVM 使用线程本地分配缓冲区 (TLAB)。TLAB 可以同步也可以不同步。大多数时间 TLAB 不同步,因此线程可以非常快速地分配。有大量的这些 TLAB,以便活动线程获得它们自己的 TLAB。不太活跃的线程共享一个同步的 TLAB。当一个线程耗尽其 TLAB 时,它会从池中获取另一个 TLAB。当池用完 TLAB 时,就会触发或需要 Young GC。

当池用完 TLAB 时,仍然会有剩余空间的 TLAB。这个“未使用的空间”加起来很重要。可以看到这个空间是因为在达到保留堆大小或最大堆大小之前触发了 GC。因此,堆实际上小了 10-30%。至少这是我通过查看堆使用图得出的猜测。

如何调整 JVM 以减少未使用的空间?

java optimization garbage-collection heap-memory

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

Java FileChannel.size() 与 File.length() - 在 FileChannel.truncate() 之后

我在考虑把这个问题改成我的情况。然后我决定我的情况需要自己的问题并希望得到答案。在调用FileChannel.truncate()以减小文件大小后,我调用FileChannel.size(),关闭FileChannel然后调用File.length(). 该文件存在于整个操作过程中。 FileChannel.size()总是准确的。在极少数情况下,File.length()将返回之前的文件大小truncate()

这是显示情况的代码。

public static void truncate(File file, long size) throws IOException
{
   FileChannel channel;
   Path path;
   long channelSize, fileLengthOpen, fileLengthClosed;

   path    = file.toPath();
   channel = FileChannel.open(path, StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE);

   try
   {
      channel.truncate(size);

      channelSize    = channel.size();
      fileLengthOpen = file.length();
   }
   finally
   {
      channel.close();
   }

   fileLengthClosed = file.length();

   if ((channelSize != size) || (fileLengthOpen != size) || (fileLengthClosed != size))
      throw new IOException("The channel size …
Run Code Online (Sandbox Code Playgroud)

java filesize

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

Maven - 替换Jar中的文件

我想在执行Maven构建时替换现有jar/zip文件中的文件.实现这一目标的最简单方法是什么?

maven-2 maven-plugin maven

4
推荐指数
2
解决办法
9377
查看次数

获取元素的表父

我在表中动态创建了一个带有类x的div.我怎样才能用JavaScript捕获这个div的表父类并给它一个特定的类?

通过tr和td父节点没有工作.有任何想法吗?

javascript

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

如何使用Epsilon的assertEquals在JUnit中断言两个双精度?

不推荐使用双精度的assertEquals.我发现应该使用Epsilon的表格.这是因为不可能100%严格的双打.但无论如何我需要比较两个双打(预期和实际结果),但我不知道该怎么做.

目前我的测试看起来像:

@Test
public void testCalcPossibleDistancePercentageCount() {
    int percentage = 100;
    assertEquals("Wrong max possible value for %" + percentage, 110.42, processor.calcPossibleValue(percentage));
    percentage = 75;
    /*corresponding assertions*/
}
Run Code Online (Sandbox Code Playgroud)

以下是我收到的3个双值,我想用JUnit检查:110.42,2760.5和10931.58.JUnit测试应该如何使用断言?我在一个方法中计算得到它们:

processor.calcPossibleValue(allowed_percentage){return /*Some weird formulae here*/;}
Run Code Online (Sandbox Code Playgroud)

java junit

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

在Apache HttpClient中禁用保持活动状态

对于某些我们无法解决的问题,我想在Apache HttpClient 3.1上禁用保持活动状态。但是,我在Internet上找不到任何资源。你知道怎么做吗?

java apache keep-alive apache-commons-httpclient

4
推荐指数
1
解决办法
7697
查看次数

URL编码应该使用什么字符集?

我需要对 URL 组件进行编码。URL组件可以包含“?、#、=”等特殊字符,也可以包含中文字符。

我应该使用哪种字符集:UTF-8、UTF-16 还是 UTF-32?为什么?

java urlencode

4
推荐指数
1
解决办法
6182
查看次数

如何在Java SWT中为TableViewer单元格添加工具提示

我有一个表,每行代表不同的值.字符串有点长,我希望当我将鼠标悬停在特定单元格上时,工具提示应该弹出来自单元格的信息.

我编写了这段代码,但工具提示没有被替换,TableViewer方法永远不会执行:

columnMessage.setLabelProvider(new ColumnLabelProvider()
{
    @Override
    public void update(ViewerCell cell)
    {
       // ... as now
    }

    @Override
    public String getToolTipText(Object element)
    {
       return getText(element);
    }
});
Run Code Online (Sandbox Code Playgroud)

java swt jface

4
推荐指数
1
解决办法
4545
查看次数

Java 8超级类流,父文件,组件父项,链表等

我想将以下for语句转换为Java 8流(即Stream<Class<?>>).理想的解决方案将是很简单的,我可以很容易地适应它的各种遍历一个链表的情况(例如File.getParentFile(),Component.getParent()).

  Class<?> clazz;
  Object value;

  value = ...;

  for (clazz = value.getClass(); clazz != null; clazz = clazz.getSuperclass())
     ...
Run Code Online (Sandbox Code Playgroud)

我意识到创建流的几行代码不会比单个for语句简单.但是,流使for循环体更简单,因此需要流.

java java-stream spliterator

4
推荐指数
1
解决办法
384
查看次数