我正面临着java设置的问题.
我JAVA_HOME的C:\Program Files\Java\jdk1.7.0_09
PATH是C:\Program Files\Java\jdk1.7.0_09\bin.
当我尝试运行该命令时java -version,它抛出一个错误:
Error occurred during initialization of VM
java/lang/NoClassDefFoundError: java/lang/Object
Run Code Online (Sandbox Code Playgroud) 我在争论是否要转向基于GCD的多线程访问器模式.多年来我一直在访问器中使用基于锁的自定义同步,但我发现了一些信息(GCD简介),并且似乎有基于GCD的方法的优点.我希望在这里开始一个对话,以帮助自己和其他人权衡决定.
模式看起来像:
- (id)something
{
__block id localSomething;
dispatch_sync(queue, ^{
localSomething = [something retain];
});
return [localSomething autorelease];
}
- (void)setSomething:(id)newSomething
{
dispatch_async(queue, ^{
if(newSomething != something)
{
[something release];
something = [newSomething retain];
[self updateSomethingCaches];
}
});
}
Run Code Online (Sandbox Code Playgroud)
在专业方面:您可以获得非阻塞写访问的好处; 比锁更低的开销(可能?); 从关键代码部分返回之前忘记解锁的安全性; 其他?
缺点:异常处理不存在,因此您必须将其编码到您可能需要它的每个块中.
这种模式是否可能是编写多线程访问器的推荐方法?
是否有为此目的创建调度队列的标准方法?换句话说,用于权衡粒度的最佳实践?例如,使用锁定,锁定每个属性比锁定整个对象更精细.使用调度队列,我可以想象为所有对象创建单个队列会产生性能瓶颈,因此每个对象队列是否合适?显然,答案很大程度上取决于具体的应用,但是有一些已知的性能权衡来帮助衡量该方法的可行性.
任何信息/见解将不胜感激.
我总是在错误的背景下看到Throwable/Exception.但是我可以想到扩展一个Throwablejust来打破一堆递归方法调用会非常好的情况.比如说,您试图通过递归搜索的方式在树中查找并返回一些对象.一旦你发现它粘在一些Carrier extends Throwable并抛出它,并在调用递归方法的方法中捕获它.
正面:您不必担心递归调用的返回逻辑; 既然你找到了你需要的东西,为什么还要担心如何将这个引用备份到方法堆栈中.
否定:您有一个不需要的堆栈跟踪.该try/catch块也变得违反直觉.
这是一个愚蠢的简单用法:
public class ThrowableDriver {
public static void main(String[] args) {
ThrowableTester tt = new ThrowableTester();
try {
tt.rec();
} catch (TestThrowable e) {
System.out.print("All good\n");
}
}
}
public class TestThrowable extends Throwable {
}
public class ThrowableTester {
int i=0;
void rec() throws TestThrowable {
if(i == 10) throw new TestThrowable();
i++;
rec();
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,是否有更好的方法来达到同样的目的?另外,以这种方式做事有什么不妥之处吗?
我的调查中有超过 90 个问题。每个问题有 5 个选择。问题是根据数据库信息构建的。
我需要检查是否所有问题都已得到解答,如果其中一个问题没有得到解答,那么应该对此发出警报。
它们都分为单选按钮组,我想使用 jQuery 来检查。
if 语句不起作用,唯一收到警报的想法是:“未检查!”
<div class='aQuestion' id='div1'>
<STRONG>1. </STRONG>
<STRONG>Question</STRONG></br>
<INPUT TYPE='radio' NAME='grp1' VALUE='0'>answer 1</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='1'>answer 2</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='2'>answer 3</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='3'>answer 4</br>
<INPUT TYPE='radio' NAME='grp1' VALUE='4'>answer 5
</div>
<div class='aQuestion' id='div2'>
<STRONG>2. </STRONG>
<STRONG>Question</STRONG></br>
<INPUT TYPE='radio' NAME='grp2' VALUE='0'>answer 1</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='1'>answer 2</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='2'>answer 3</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='3'>answer 4</br>
<INPUT TYPE='radio' NAME='grp2' VALUE='4'>answer 5
</div>
Run Code Online (Sandbox Code Playgroud)
(上面还有8个问题)
<script>
jQuery('#submit').click(function(event)
{
event.preventDefault(); …Run Code Online (Sandbox Code Playgroud) java ×2
classpath ×1
if-statement ×1
input ×1
javascript ×1
jquery ×1
locking ×1
objective-c ×1
radio-button ×1
stack ×1
throw ×1
throwable ×1