小编Joe*_*ney的帖子

如何在不首先将其分配给局部变量的情况下索引函数返回的MATLAB数组?

例如,如果我想从中读取中间值magic(5),我可以这样做:

M = magic(5);
value = M(3,3);
Run Code Online (Sandbox Code Playgroud)

得到value == 13.我希望能够做到这样的事情之一:

value = magic(5)(3,3);
value = (magic(5))(3,3);
Run Code Online (Sandbox Code Playgroud)

免除中间变量.然而,MATLAB抱怨Unbalanced or unexpected parenthesis or bracket在第一个括号之前3.

是否可以在不首先将其分配给变量的情况下从数组/矩阵中读取值?

indexing matlab matrix return-value variable-assignment

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

java PrintCompilation输出:"make not entrant"和"made zombie"是什么意思

运行Java 1.6(1.6.0_03-b05)应用程序时,我添加了-XX:+PrintCompilation标志.在某些方法的输出中,特别是我知道的一些方法被大量调用,我看到了文本made not entrantmade zombie.

这些是什么意思?最好的猜测是,在重新编译该方法或具有更高优化的依赖项之前,它是一个反编译步骤.真的吗?为什么"僵尸"和"参赛者"?

例如,其中一些行之间有相当长的时间:

[... near the beginning]
42       jsr166y.LinkedTransferQueue::xfer (294 bytes)

[... much later]
42    made not entrant  jsr166y.LinkedTransferQueue::xfer (294 bytes)
---   n   sun.misc.Unsafe::compareAndSwapObject
170       jsr166y.LinkedTransferQueue::xfer (294 bytes)
170   made not entrant  jsr166y.LinkedTransferQueue::xfer (294 bytes)
  4%      jsr166y.LinkedTransferQueue::xfer @ 29 (294 bytes)
171       jsr166y.LinkedTransferQueue::xfer (294 bytes)

[... even later]
42    made zombie  jsr166y.LinkedTransferQueue::xfer (294 bytes)
170   made zombie  jsr166y.LinkedTransferQueue::xfer (294 bytes)
171   made not entrant  jsr166y.LinkedTransferQueue::xfer (294 bytes)
172       jsr166y.LinkedTransferQueue::xfer (294 …
Run Code Online (Sandbox Code Playgroud)

java jit jvm-hotspot

40
推荐指数
3
解决办法
7704
查看次数

intellij是否支持启动配置中的变量?

在eclipse中,我可以在启动配置中包含vm args或program args中的以下内容:

-Dsome.system.property=${string.prompt:explanation:default}
Run Code Online (Sandbox Code Playgroud)

当你运行它时,你会在一个小弹出窗口中显示一个字符串提示,显示解释文本并准备好默认值,它允许你轻松地注入属性并运行应用程序.

我经常使用它来指定我是否需要应用程序的开发或测试实例.您还${env_var:ENVIRONMENT_VARIABLE_NAME}可以选择特定于机器的配置,这对于在开发人员之间共享这些启动配置非常有用.

IntelliJ Idea支持这个或类似的东西吗?是否有提供此功能的插件?

java eclipse configuration intellij-idea environment-variables

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

SQL Server如何知道锁定视图对象?

在SQL Server 2008中我有一个观点V在表AB看起来大致是

create view V as
    select * from A
    union all
    select * from B
Run Code Online (Sandbox Code Playgroud)

读取V会导致查询在基表上获取意图共享锁,但也会在视图对象本身获取意图共享锁.

很清楚为什么我们需要表上的IS锁,我们可以看到视图上的IS锁阻止了对视图底层表的并发修改.没关系.

查询计划不包含视图.它已完全编译出来,在这种情况下生成的计划是两个基表中的行的简单连接.实际上,查询计划XML中唯一提到的视图是在语句文本中.

如果U在表上添加第二个视图,则读取V不会导致任何锁定U.这排除了发动机只需要对所有意见IS锁了AB.

数据库引擎如何知道对视图进行锁定?

  • 语句文本是否再次被解析?
  • 查询规划器和底层执行之间是否还有其他信息通道来传递此信息?

有关详细信息,请参阅相应的问题dba.stackexchange.

sql sql-server view sql-server-2008 database-locking

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

visualvm可以通过JMX自动连接到远程进程吗?

我有一个在远程计算机上运行的Java进程,该进程设置了一些mbeans.我也在jstatd该机器上以与Java进程相同的用户身份运行.(可以通过编程或使用-Dcom.sun.management.jmxremote...等方式设置mbeans ,这似乎没有区别).

VisualVM能够jstatd连接到它自动发现的进程,但这意味着我无法访问mbeans,例如CPU历史记录图表.或者我可以创建一个显式的JMX连接,它给了我通常的有用工具,但是我希望应用程序在启动时被分配一个随机的JMX端口,这个配置不能是静态的.

有没有办法让VisualVM通过JMX自动连接到我的进程?这需要它自动发现JMX端口,但我原以为jstatd可以做到这一点.有没有人知道visualvm的任何插件自动化这个?

java jmx visualvm jvisualvm

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

wget无法从maven repo下载jar文件

我正在尝试从下面的URL从maven存储库下载单个jar文件.

http://repo1.maven.org/maven2/com/google/guava/guava-testlib/10.0/guava-testlib-10.0.jar

  • 在浏览器中下载工作正常,我按预期获取文件.

  • 'wget'下载了一些东西,但我得到的文件似乎没有效果.在下载的文件上运行'jar -tf'会出现'ZipException:打开zip文件时出错'.

  • 以编程方式从Java下载文件('InputStream'从URL写入'FileOutputStream')下载并创建文件.用WinZip/7-Zip打开它,它似乎包含一个名为'guava-testlib-10.0'的文件,它看起来像我希望得到的jar存档.

  • wget另一个jar至少有时会按预期工作(使用-U用户代理字符串)

这是wget/maven或Java/maven之间的一些狡猾的互动吗?它是一个格式错误的jar文件,我的浏览器能够正确理解和下载吗?这些对我来说似乎有点不可信.

java jar wget maven guava

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

如何从TCP读取并写入stdout?

我没有得到一个简单的scalaz-stream示例运行,从TCP读取并写入std out.

val src = tcp.reads(1024)
val addr = new InetSocketAddress(12345)
val p = tcp.server(addr, concurrentRequests = 1) {
  src ++ tcp.lift(io.stdOutLines)
}
p.run.run
Run Code Online (Sandbox Code Playgroud)

它只是坐在那里,而不是打印任何东西.

我也试过各种安排使用to,总是用tcp.lift咒语得到一个Process[Connection, A],包括

tcp.server(addr, concurrentRequests = 1)(src) map (_ to tcp.lift(io.stdOutLines))
Run Code Online (Sandbox Code Playgroud)

甚至没有编译.

我是否需要wye将源和打印流一起使用?我就发现了一个例子原来拉请求tcp更换nio似乎表明这一点,但wye似乎不再上存在Process,因此混乱统治不幸.


编辑结果表明,除了Paul解释的类型问题之外,您还需要"手动"运行内部流程,例如通过执行p.map(_.run.run).run.run.我不认为这是执行此操作的惯用方法,但它确实有效.

scala scalaz-stream

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

没有连接的AMQP/RabbitMQ通道何时死亡?

我有一个简单的RabbitMQ测试程序随机排队消息,另一个读取它们,都使用Spring-AMQP.如果消费者死亡(例如,在没有机会关闭其连接或通道的情况下终止进程),则任何未确认的消息似乎永远不会被确认.

我已经看到了许多引用(例如这个问题),它说当通道在没有连接时死亡,并且将重新传送剩余的未包装的消息.这不是我看到的行为 - 相反,我得到了一个越​​来越多的标记为IDLE的频道列表,以及越来越多的标记正在运行但没有活动的连接列表.

一旦进程被杀死,是否需要一些配置才能注意到连接已经死亡?

编辑: 我在VirtualBox VM中运行rabbitmq服务器,显然无法通过NAT正确管理死入站连接.这对于直接在物理主机上运行的mq服务器来说效果很好.

java message-queue amqp rabbitmq spring-amqp

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

使java编译器输出类型推断信息

是否有可能获得javac有关它为方法调用推断的类型的输出信息?

例如,我想知道T调用时推断出正式类型是什么bar.

private static <T> void bar() { ... }
public void foo() {
  bar();
}
Run Code Online (Sandbox Code Playgroud)

我正在探索javac -Xprint和朋友,但找不到任何暴露这种细节水平的东西.


编辑示例.我最初不想这么说,因为它会使答案复杂化.我主要是想从中获取调试信息javac.无论如何,这是激励的例子:

public class Scratch {
  private static <T extends Throwable> void sneakyThrow(Throwable t) throws T {
    throw (T) t; // Warning: Type safety: Unchecked cast from Throwable to T
  }
  public void foo() {
    sneakyThrow(new Exception());
  }
}
Run Code Online (Sandbox Code Playgroud)

这是编译,但任何合理的决定T应该产生的实际类型Throwable,并要求foo() throws Throwable.Eclipse似乎认为它是RuntimeException.我想知道 …

java generics type-inference javac

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

根据参数值和函数参数类型推断出一个常见的超类型

是否应编译以下内容而不需要明确的类型定义this

def prepList[B >: A](prefix: PlayList[B]) : PlayList[B] =
  prefix.foldr(this: PlayList[B])((node, suffix) => suffix.prepNode(node))
Run Code Online (Sandbox Code Playgroud)

在我看来,这种类型应该能够推断出来.这仅仅是Scala编译器的一个限制,还是存在类型理论上无法做到这一点的原因?我还没有真正意识到Scala类型推理器可以处理的内容.

通过该方法:

  • B >: A 根据定义
  • this具有类型PlayList[A],这是的一个子类型PlayList[B],因为B >: A和播放列表在协变A.
  • node有类型B,参数类型prefix.
  • 函数参数fin的第二个参数与第一个参数的foldr类型(声明B)相同foldr.
  • 因此suffix具有相同的类型this,因此特别是它PlayList[A].从那以后B >: A,suffix.prepNode()拿一个B.

我希望编译器看到suffix.prepNode(node)合法的node类型B.它似乎只有在我在该调用foldr的引用或引用上显式指定类型时才能执行此操作this.

有趣的是,如果我在函数参数上指定显式类型(node: B, suffix: PlayList[B]) …

scala type-inference scala-2.8

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