小编Scr*_*ers的帖子

OQL查询以查找从会话引用的给定类的所有实例和子实例

我正在尝试使用jhat / OQL来跟踪Tomcat容器中的内存泄漏。我想问的问题是:

“向我展示可以从javax.servlet.http.HttpSession访问的foo.bar.Cacheable类的所有实例(和子实例)”

我设法提出了以下内容,但这并未显示foo.bar.Cacheable的子类(这很重要,因为这实际上是一个接口)。

select filter(reachables(s), "/foo.bar.Cacheable/(classof(it).name)") from javax.servlet.http.HttpSession s
Run Code Online (Sandbox Code Playgroud)

我尝试了以下概念的各种排列,但始终会出错(未定义“ foo”)。

select filter(reachables(s), classof(it) instanceof foo.bar.Cacheable) from javax.servlet.http.HttpSession s
Run Code Online (Sandbox Code Playgroud)

谁能通过OQL帮我解决我做错的事情吗?

java heap memory-leaks jhat oql

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

从Enum中获取值仅在运行时获知

我需要从枚举中获取所有值,其类型仅在运行时才知道.我想出了以下内容,但想知道是否有人知道更好的方法:

enum TestEnum  {
  FOO,
  BAR
}

Enum[] getValuesForEnum(Class type) {
  try {
    Method m = type.getMethod("values");
    return (Enum[])m.invoke(null);
  } catch (Exception e) {
    throw new RuntimeException(e);
  }
}

Class testEnum = Class.forName("TestEnum");
getValuesForEnum(testEnum);
Run Code Online (Sandbox Code Playgroud)

谢谢!

java reflection enums

4
推荐指数
3
解决办法
6051
查看次数

Python垂直阵列切片

任何人都可以告诉我如何切片下面的结构:

[[1, A], [2, B], [3,C]]
Run Code Online (Sandbox Code Playgroud)

分成两个单独的列表:

[1, 2, 3]
[A, B, C]
Run Code Online (Sandbox Code Playgroud)

我显然可以使用代码执行此操作,但是想知道Python是否能够本机执行此操作?

python

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

Servlet测试

我正在使用Jetty提供的ServletTester类来测试我的一个servlet.

servlet使用InputStream.read()读取请求的主体,以构造一个byte [],它由servlet解码并执行.

ServletTest类提供了getResponses(ByteArrayBuffer)方法,但我不确定如何以正确的格式创建其中一个,因为它还需要包含诸如头之类的东西(例如"Content-Type:application/octet-stream").

任何人都可以向我展示一种简单的方法来构建它,最好使用现有的库,以便我可以以类似于HttpTester类的方式使用它.

如果有一种"更好"的方法来测试servlet(理想情况下使用本地连接器而不是通过tcp堆栈),我也想听一听.

非常感谢,

java testing servlets jetty

3
推荐指数
1
解决办法
3339
查看次数

在同一个类的线程之间共享记录器

如果我在实现Runnable的类中有一个log4j记录器:

MyTask implements Runnable {
  private static final Logger log = Logger.getLogger(MyTask.class);
  ...
}
Run Code Online (Sandbox Code Playgroud)

如果我创建了许多这样的实例Runnable并将它们提交到ExecutorService多核机器并且它们并行运行,并且它们都写入静态Logger,那么这似乎存在争用的风险.一个更好的模式似乎是:

MyTask implements Runnable {
  private final Logger log;
  MyTask(String name) {
    log = Logger.getLogger(name);
  }
  ...
}   
Run Code Online (Sandbox Code Playgroud)

所以我的问题......这是你用过或发现必要的模式,因为我现在纯粹是假设吗?

谢谢

java concurrency logging multithreading

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

Mac OS X上Std Lib的来源

我最近开始在Mac OS X上编程C(10.7.4).我在/ usr/include中有stdlib的各种头文件,但希望得到源代码.这主要是我自己学习所需要的,但我也希望生成Ctags以便在Vim中轻松导航.

有可能从某个地方获得这个,如果是这样的话吗?

提前致谢!

c vi macos std ctags

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

标签 统计

java ×4

c ×1

concurrency ×1

ctags ×1

enums ×1

heap ×1

jetty ×1

jhat ×1

logging ×1

macos ×1

memory-leaks ×1

multithreading ×1

oql ×1

python ×1

reflection ×1

servlets ×1

std ×1

testing ×1

vi ×1