例如,如果我想从中读取中间值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.
是否可以在不首先将其分配给变量的情况下从数组/矩阵中读取值?
运行Java 1.6(1.6.0_03-b05)应用程序时,我添加了-XX:+PrintCompilation标志.在某些方法的输出中,特别是我知道的一些方法被大量调用,我看到了文本made not entrant和made 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) 在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
在SQL Server 2008中我有一个观点V在表A和B看起来大致是
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锁了A和B.
数据库引擎如何知道对视图进行锁定?
有关详细信息,请参阅相应的问题dba.stackexchange.
我有一个在远程计算机上运行的Java进程,该进程设置了一些mbeans.我也在jstatd该机器上以与Java进程相同的用户身份运行.(可以通过编程或使用-Dcom.sun.management.jmxremote...等方式设置mbeans ,这似乎没有区别).
VisualVM能够jstatd连接到它自动发现的进程,但这意味着我无法访问mbeans,例如CPU历史记录图表.或者我可以创建一个显式的JMX连接,它给了我通常的有用工具,但是我希望应用程序在启动时被分配一个随机的JMX端口,这个配置不能是静态的.
有没有办法让VisualVM通过JMX自动连接到我的进程?这需要它自动发现JMX端口,但我原以为jstatd可以做到这一点.有没有人知道visualvm的任何插件自动化这个?
我正在尝试从下面的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文件,我的浏览器能够正确理解和下载吗?这些对我来说似乎有点不可信.
我没有得到一个简单的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.我不认为这是执行此操作的惯用方法,但它确实有效.
我有一个简单的RabbitMQ测试程序随机排队消息,另一个读取它们,都使用Spring-AMQP.如果消费者死亡(例如,在没有机会关闭其连接或通道的情况下终止进程),则任何未确认的消息似乎永远不会被确认.
我已经看到了许多引用(例如这个问题),它说当通道在没有连接时死亡,并且将重新传送剩余的未包装的消息.这不是我看到的行为 - 相反,我得到了一个越来越多的标记为IDLE的频道列表,以及越来越多的标记正在运行但没有活动的连接列表.
一旦进程被杀死,是否需要一些配置才能注意到连接已经死亡?
编辑: 我在VirtualBox VM中运行rabbitmq服务器,显然无法通过NAT正确管理死入站连接.这对于直接在物理主机上运行的mq服务器来说效果很好.
是否有可能获得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.我想知道 …
是否应编译以下内容而不需要明确的类型定义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]) …