public class Main2 {
public static void main(String[] args) {
new Test2().start();
new Test2().start();
}
}
class Test2 extends Thread {
@Override
synchronized public void run() {
try {
System.out.println("begin wait");
wait();
} catch (Exception ex) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
作为运行测试的实际结果:从两个线程开始等待,开始等待,两次.与预期结果相比:开始等待,从两个线程之一只有一次,因为在synchronized run()方法中调用了wait().为什么可以调用Object的wait()中断线程同步?
吃了很多!
public class Main3 {
public static void main(String[] args) {
Test3 t = new Test3();
new Thread(t).start();
new Thread(t).start();
}
}
class Test3 implements Runnable {
synchronized public void run() {
try {
System.out.println("begin wait");
wait();
} …Run Code Online (Sandbox Code Playgroud) 它可以与File传递给的对象一起使用AudioSystem#getAudioFileFormat,但是为什么InputStream下面的对象不能通过呢?有什么建议吗?
import java.io.*;
import javax.sound.sampled.*;
public class Test {
public static void main(String[] args) throws Exception {
AudioSystem.getAudioFileFormat(new File(
"myaudio.wav"));
AudioSystem.getAudioFileFormat(new FileInputStream(
"myaudio.wav"));
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
Exception in thread "main" java.io.IOException: mark/reset not supported
at java.io.InputStream.reset(InputStream.java:330)
at com.sun.media.sound.WaveFileReader.getAudioFileFormat(WaveFileReader.java:88)
at javax.sound.sampled.AudioSystem.getAudioFileFormat(AudioSystem.java:985)
at Test.main(Test.java:10)
Run Code Online (Sandbox Code Playgroud)
@编辑
据答案@René Jeschke,@Phil Freihofner并且@Andrew Thompson,无论mark/reset被要求作为强制性protocal为Java Sound API与互动IO stream,恕我直言,类型buffered流,而不是raw一个应该被专门定义为参数的签名传递。这样做将使收窄到更理想的结果,而不是任意接受IO stream然后诉诸IOException为不利指标。
在选择"项目资源管理器 - >视图菜单 - >顶级元素 - >工作集"之后,Eclipse不会将视图切换projects为working sets打开project explorer.如果package explorer使用if ,转换工作正常.为什么?
默认情况下使用GWT UIBinder时,会在同一目录下创建一对java源和UI模板文件.
将它们保存在不同的目录中需要什么.例如client/MyApp.java和client/ui/xml/MyApp.ui.xml?
@编辑
下面是基于@jonasr答案的,但注释应该使用file pathUI模板而不是包前缀进行评估.
@UiTemplate("ui/xml/MyApp.ui.xml")
interface MyAppUiBinder extends UiBinder<Widget, MyApp>
{}
Run Code Online (Sandbox Code Playgroud) 我试着在下面观察JPA2/Hibernate4代理行为,
//延迟加载的循环实体:
@Entity
public class Employee {
@Id@Generated
int id;
String name;
@OneToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
Employee boss;
public String toString() {
return id + "|" + name + "|" + boss;
}
//getters and setters ...
}
Run Code Online (Sandbox Code Playgroud)
//坚持实体:
// Outer entity:
Employee employee = new Employee();
employee.setName("engineer");
// Inner entity:
Employee boss = new Employee();
boss.setName("manager");
employee.setBoss(boss);
entityTransaction.begin();
entityManager.persist(employee);
entityTransaction.commit();
System.out.println(employee);
Run Code Online (Sandbox Code Playgroud)
//输出:
Hibernate: insert into Employee (id, boss_id, name) values (default, ?, ?)
Hibernate: insert into Employee …Run Code Online (Sandbox Code Playgroud) 下面fn2编译失败,
def fn(x: Int)(y: Int) = x + y
def fn2(f: ((Int)(Int)) => Int) = f
fn2(fn)(1)(2) // expected = 3
Run Code Online (Sandbox Code Playgroud)
如何定义fn2接受fn?
f x y z = [n | n <- z, n > x + y]
f 1 2 [3,4]
Run Code Online (Sandbox Code Playgroud)
将x + y要在第一只执行一次,这样连续的通话费由所取代value 3呢?GHCHaskell 是否优化了这项工作,FP为我们带来了参考透明度的优点?
如何追踪证明呢?
Learn some Erlang或IEx如何为 REPL shell 着色?是谢尔稳定的直接替代?
Reactunidirectional data flow与two-way data binding其他框架形成对比的概念,例如Vue.js.
我已经制作了以下片段来感知本质区别,然后似乎unidirectional要求应用程序传播任何状态转换,而two-way传统上为你做.
希望我可能在这里误解了这个要点,你能帮助澄清两人之间根本不同的东西吗?
var MyComponent = React.createClass({
getInitialState: function () {
return {
one: 'Hello',
two: 'world',
three: ''
}
},
handleValueOneChange: function (e) {
this.setState({one: e.target.value})
},
handleValueTwoChange: function (e) {
this.setState({two: e.target.value})
},
render: function () {
return (
<div>
<h1>
{this.state.one + ' ' + this.state.two}
</h1>
<input value={this.state.one}
onChange={this.handleValueOneChange} />
<input value={this.state.two}
onChange={this.handleValueTwoChange} />
</div>
)
}
})
ReactDOM.render(
<MyComponent />, document.getElementById('app') …Run Code Online (Sandbox Code Playgroud)A = map(lambda x: x * 2, [1, 2])
z = reduce(lambda x, y: x + y, A)
print(z, list(A))
# outputs: 6 []
Run Code Online (Sandbox Code Playgroud)
如此混乱以至于规范的map reduceFP操作导致了破坏性的结果。表面之下发生了什么?