我尝试用2个循环设置2D布尔数组的值,如下所示:
boolean[][] frame = new boolean[10][4];
for (boolean[] column : frame)
for (boolean b : column)
b = true;
Run Code Online (Sandbox Code Playgroud)
但这似乎没有用,所有的布尔都是假的,为什么呢?
我正在读"可维护的javascript"这本书.在书中,作者谈到了框架,需要帮助才能理解这意味着什么.
在帧之间来回传递数组是 JavaScript中最初的跨框架问题之一.开发人员很快发现,在这些情况下,instanceof Array并不总能产生适当的结果.如前所述,每个帧都有自己的Array构造函数,因此一个帧中的实例在另一个帧中无法识别.Douglas Crockford首先建议执行一些鸭子打字,测试sort()方法的存在:
// Duck typing arrays
function isArray(value) {
return typeof value.sort === "function";
}
Run Code Online (Sandbox Code Playgroud) 假设我有一个包含999个单元的数组,其中包含1-1000之外的所有数字,除了一个数字.找到这个数字最有效的方法是什么?我找不到比O(n平方)更好的方法.面试官告诉我有更好的方法.我该怎么做?
数组未分类.
我有一个侦听外部事件的对象.收到事件后,我的对象需要执行任务(Runnable).但是,有一个限制:
一旦任务开始执行,我就不应该开始其他任务(我可以忽略它们),直到原始任务完成并且在那之后经过一定量的时间(限制).
这里建议使用信号量实现:
public class Sample {
private final Semaphore semaphore = new Semaphore(1);
private final ScheduledExecutorService executor;
public Sample(ScheduledExecutorService executor) {
this.executor = executor;
}
public void tryRun() {
if (semaphore.tryAcquire()) {
try {
executor.submit(
new Runnable() {
@Override
public void run() {
try {
doIt();
} finally {
try {
executor.schedule(
new Runnable() {
@Override
public void run() {
semaphore.release();
}
},
1,
TimeUnit.MINUTES
);
} catch (Throwable t) {
semaphore.release();
}
}
} …Run Code Online (Sandbox Code Playgroud) 模式匹配很奇怪.它涉及寻找事物表征的看似简单的数学问题.
例如,对于给定的整数b,每个整数a可以以a = bq + r的形式表示,其中0 <= r <b,唯一.要找到q和r,需要除法算法.关键词是"算法".
因此,当您在Haskell中执行模式匹配表达时,如将元组表示为(a,b),是在幕后运行的算法吗?
算法总是必须简单,即O(1)或至少以某种方式在某处记录?
您如何保证代表的独特升力?
我可以自己写,但我猜这是非常标准的.是否有标准的java类来执行此操作?我知道这必须是一个运行时功能,因为我的代码的各个部分可以设置它而不知道彼此在做什么 - 我只是希望如果发生这种情况会大声失败.
public class MutableOnce<Type T> {
private T _t;
private boolean _isSet = false;
public void set(T t) {
if(_isSet) {
//raise exception
}
_t = t;
public T get() { return _t; }
}
Run Code Online (Sandbox Code Playgroud) 如果用户想要从我们的服务中移除他/她自己,我们会从我们的数据库中删除他们的所有数据,包括Oauth令牌.我们拥有的Oauth令牌是安全和持久的.作为最佳做法的一部分,我们希望将令牌完全无效,就好像他们想要使用Google帐户页面并将其删除一样.阅读Oauth文档我不清楚这是否可能,因为所有的例子都涉及单会话或非安全案例(并且原谅我缺乏"你尝试了什么?" - ism但我正在尝试快速计划如何做到这一点).
所以
1)这可能吗?最好是1.0?
2)怎么做?
我对wowza中的cpu使用有疑问。
这是令人怀疑的线程。此线程占用了较高的CPU。
SocketAcceptorIoProcessor-1.0 prio=10 tid=0x0000002a9fb53000 nid=0x2428 runnable [0x000000004f017000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69)
- locked <0x00000007d82ba4e8> (a sun.nio.ch.Util$2)
- locked <0x00000007d82ba4d8> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000007d82ad450> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
at org.apache.mina.transport.socket.nio.SocketIoProcessor$Worker.run(Unknown Source)
at org.apache.mina.util.NamePreservingRunnable.run(Unknown Source)
at java.lang.Thread.run(Thread.java:662)
Run Code Online (Sandbox Code Playgroud)
此线程占用了很高的CPU。这是jdk错误吗?
这是我的环境。
CentOS版本5.4(最终版)
WowzaMediaServer-3.1.2
Java版本1.6.0_23 Java SE运行时环境(内部版本1.6.0_23-b05)Java HotSpotTM 64位服务器VM(内部版本19.0-b09,混合模式)
MSVC11上的以下代码失败并显示错误
cannot convert parameter 1 from 'std::unique_ptr<DerivedClass>' to 'std::unique_ptr<BaseClass>'
Run Code Online (Sandbox Code Playgroud)
代码:
class BaseClass
{ };
class DerivedClass : public BaseClass
{ };
void MyFunction(std::unique_ptr<BaseClass> obj)
{ };
int main()
{
auto ptr = std::unique_ptr<DerivedClass>(new DerivedClass);
MyFunction(ptr); // fails, with error about cannot convert type
// MyFunction(std::move(ptr)); // This will work
}
Run Code Online (Sandbox Code Playgroud)
正如在答案中所指出的那样,原因是std::move缺失了,但是错误信息让我很困惑地发布了问题,所以我已经更新了它,所以任何同样困惑的人都有最好的机会找到答案.
java ×4
c ×1
c++ ×1
c++11 ×1
concurrency ×1
cpu ×1
haskell ×1
immutability ×1
javascript ×1
mina ×1
oauth ×1
sizeof ×1
wowza ×1