小编One*_*ero的帖子

ruby是否自动调用initialize方法?

如果在类定义中包含initialize方法,是否需要显式初始化对象?

ruby

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

System.out.printIn()如何接受整数?

所以我几天前开始学习java并得到一个问题.对于下一个表达式:

String foo=123;
Run Code Online (Sandbox Code Playgroud)

不被允许.但是,System.out.printIn()我们可以使用以下内容:

int x=5;
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)

由于不允许隐式地将整数赋给字符串,为什么上面的表达式有效呢?有人可以详细解释一下吗?我也想知道我们什么时候可以使用这种隐含的东西,什么时候不能.

java

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

区分每个中的第一个和最后一个元素?

@example.each do |e|
  #do something here
end
Run Code Online (Sandbox Code Playgroud)

在这里,我想对每个中的第一个和最后一个元素做一些不同的事情,我该如何实现呢?当然,我可以使用一个循环变量i并跟踪是否i==0,i==@example.size但不是太愚蠢?

ruby ruby-on-rails

8
推荐指数
2
解决办法
5966
查看次数

Java volatile变量的行为不正确.

public class MyThread
{
    volatile static int i;

    public static class myT extends Thread
    {
        public void run ()
        {
            int j = 0;
            while(j<1000000){
                i++;
                j++;
            }
        }
    }

    public static void main (String[] argv)
    throws InterruptedException{
            i = 0;

            Thread my1 = new myT();
            Thread my2 = new myT();
            my1.start();
            my2.start();

            my1.join();
            my2.join();

            System.out.println("i = "+i);
    }
}
Run Code Online (Sandbox Code Playgroud)

由于在关系之前发生了易失性构建,因此i的最终值应该严格为2000000.但是,实际结果与变量i没有volatile的情况没有什么不同.任何人都可以解释为什么它在这里不起作用?由于i被声明为volatile,因此应该保护它不受内存不一致的影响.

java concurrency volatile

6
推荐指数
1
解决办法
361
查看次数

这些双括号在JS中做了什么?

我正在读这本书secrets of the js ninja,而且我经常看到这样的代码

(function(){
  something here;
  })();
Run Code Online (Sandbox Code Playgroud)

为什么我们需要将函数括在括号中?为什么我们之后再添加一对括号?

javascript

6
推荐指数
2
解决办法
5693
查看次数

为什么预期1px加粗背景色?

这是我的sass:

table#orders {
    background-color:#ff0000;
}
Run Code Online (Sandbox Code Playgroud)

然而,当我实际运行这个时,我得到一个错误,说Invalid CSS after "#ff0000": expected expression (e.g. 1px, bold), was ";"我不知道它为什么期望类似1px的背景颜色.任何人都可以帮我搞清楚吗?

css ruby-on-rails sass

6
推荐指数
1
解决办法
2916
查看次数

为什么使用no-op填补paxos事件之间的空白是合法的?

我正在学习Paxos算法(http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf),有一点我不明白.

我们知道事件遵循及时的顺序,并且当事件1-5和10被确定时发生,但此后6-9和11还没有.在上面的论文中,它说我们只需用无操作值填写6-9之间的差距,然后简单地记录11和11之间的新事件.

因此,在这种情况下,由于已经记录了事件10,我们知道某些事件必须在5到10之间发生,但由于某些故障而未被Paxos记录.如果我们只是填写无操作值,这些事件将在我们的录音中丢失.

更糟糕的是,如果我在上面链接的论文中说,事件实际上是来自客户端的命令,那么在中间丢失一些命令可能会使整个操作集合非法(如果没有任何命令可以跳过或命令他们很重要).

那么,为什么Paxos为事件之间的差距填补无操作价值仍然是合法的呢?(如果由于上面关注的无操作值,整个记录集可能无效.)此外,是否有更好的方法从这些间隙中恢复而不是使用no-op?

cloud algorithm distributed-computing consensus paxos

6
推荐指数
1
解决办法
314
查看次数

String str = new String("my string")效率真的低吗?

我经常看到人们说String str = new String("my string")写作效率低于写作,String str = "my string",因为前者创建了一个静态的"my string"对象,然后new是一个从静态复制的String对象.

但是,鉴于这里的语言非常简单明了,我很难想象Java优化器不会花费任何精力简单地将前者转换为后者.为什么它会选择以更费力的方式做到这一点?如果Java优化它会有什么负面影响?

java string optimization

6
推荐指数
2
解决办法
246
查看次数

如何强制matlab在重载时调用常规函数而不是类方法?

假设我有一个X类的对象MyClass.MyClass有一个方法compute,当我调用时U = compute(X,...),matlab会自动调用类方法.但是,我真正想要的是调用另一个函数,该函数compute的参数以MyClass对象开头.如何强制matlab调用这个常规函数而不是进入类方法?

oop matlab function function-calls operator-precedence

5
推荐指数
1
解决办法
1147
查看次数

为什么分离界面和实现?

在生产代码中,我经常看到如下定义的类:

public interface SomeComponent { // Some methods }
public class SomeComponentImpl implements SomeComponent { // Some methods}

public interface SomeComponentV2 extends SomeComponent { // Some methods }
public class SomeComponentV2Impl extends SomeComponentImpl implements SomeComponent { // Some methods }
Run Code Online (Sandbox Code Playgroud)

为什么在这种情况下我们要分离接口及其实现?

或者这样说,为什么简单地有一个基类,让V2扩展/覆盖V1如下:

public class SomeComponent { // Some methods }
public class SomeComponentV2 extends SomeComponent 
{
  // Override methods for reimplementation
  // Add new methods for new features.
}
Run Code Online (Sandbox Code Playgroud)

java architecture design-patterns

5
推荐指数
1
解决办法
2151
查看次数