问题列表 - 第132322页

为什么在Joshua Bloch Effective Java示例中,双重检查锁定的速度提高了25%

嗨,下面是Effective Java 2nd Edition的片段.在这里,作者声称下面的代码比你不使用结果变量快25%.根据书中的"这个变量的作用是确保该字段在已经初始化的常见情况下只读取一次." .我无法理解为什么这个代码在初始化之后会比较快,如果我们不使用Local变量结果.在任何一种情况下,无论是否使用局部变量结果,初始化后只有一个易失性读取.

// Double-check idiom for lazy initialization of instance fields 
private volatile FieldType field;

FieldType getField() {
    FieldType result = field;
    if (result == null) {  // First check (no locking)
        synchronized(this) {
            result = field;
            if (result == null)  // Second check (with locking)
                field = result = computeFieldValue();
        }
    }
    return result;
}
Run Code Online (Sandbox Code Playgroud)

java multithreading volatile java-ee

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

为什么在安装autofac时我的所有web.configs都使用程序集重定向进行更新?

我刚刚将autofac安装到我的一个项目中,称之为项目A,在我使用nuget的解决方案中.出于某种原因,我的所有web.config文件,我在解决方案中有多个Web应用程序和api,使用像这样的程序集重定向更新:

<runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="Autofac" publicKeyToken="17863af14b0044da" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-3.0.0.0" newVersion="3.0.0.0" />
        </dependentAssembly>
    </assemblyBinding>
</runtime>
Run Code Online (Sandbox Code Playgroud)

这意味着程序集重定向是什么意思?解决方案如何知道所有这些web.config文件需要更新?是因为我的Web应用程序引用了项目A吗?

autofac nuget

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

JavaScript:构建新实例的方法

根据这篇MSDN文章 - 滚动到Constructor Functions but No Classes,(以及在阅读MDN JS参考之后)我应该能够构造一个这样的对象:

function Dog(name){
    this.name = name;
}

// EXAMPLE 1
var dog = new Dog("Spot");
console.log("Dog using new:");
console.log(dog); // Dog object, awesome!

// EXAMPLE 2
var dog = {};
dog = Dog.call(dog,"Rowdie");
console.log("Dog using call:");
console.log(dog); // Undefined.. why?
Run Code Online (Sandbox Code Playgroud)

但是,虽然第一个示例(构建新对象的最常见方式)返回预期的实例,但第二个示例返回undefined- 我做错了吗?

这是我用来测试的JSFiddle:http://jsfiddle.net/wk8JD/1/

javascript constructor

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

Google Maps API:由于mouseout事件,infoWindow会自动闪烁/关闭

我正在为我正在研究的一个漂亮的新项目创建多边形.只要将鼠标悬停在infoWindow上,多边形上的mouseout事件就会触发,就会出现问题.除非鼠标移动到多边形和infoWindow之外,否则我不希望激活mouseout事件.有任何想法吗?这是大部分相关代码.

    infoWindow = new google.maps.InfoWindow({
          content: myContent
    });

    var polygon = new google.maps.Polygon({
          paths: polygonPath,
          strokeColor: data.color,
          strokeOpacity: 0.5,
          strokeWeight: 0,
          fillColor: data.color,
          fillOpacity: 0.5,
          id:polygonId,
          name: data.name,
          shortDesc: data.short_desc,
          map: map 
    }); 


    google.maps.event.addListener(polygon, 'click', function(e){
          infoWindow.open(map);
          infoWindow.setPosition(e.latLng);
    });

    google.maps.event.addListener(polygon, 'mouseout', function(){
          infoWindow.close();
    });
Run Code Online (Sandbox Code Playgroud)

javascript google-maps event-listener google-maps-api-3

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

如何内省 Python 中所有有效的 protobuf 枚举值?

假设我有一个 protobuf

enum Color {
  RED = 0;
  GREEN = 1;
  BLUE = 2;
};
Run Code Online (Sandbox Code Playgroud)

我如何从 Python 获取所有已定义值和/或名称的列表?

python protocol-buffers

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

为什么事件处理程序会阻止垃圾收集器的发生

我有这段代码

public class Publisher
{
    public event EventHandler SomeEvent;
}

public class Subscriber
{
    public static int Count;

    public Subscriber(Publisher publisher)
    {
        publisher.SomeEvent += new EventHandler(publisher_SomeEvent);
    }

    ~Subscriber()
    {
        Subscriber.Count++;
    }

    private void publisher_SomeEvent(object sender, EventArgs e)
    {
        // TODO
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的应用程序的主要方法中我有

static void Main(string[] args)
{
    Publisher publisher = new Publisher();

    for (int i = 0; i < 10; i++)
    {
        Subscriber subscriber = new Subscriber(publisher);
        subscriber = null;
    }

    GC.Collect();
    GC.WaitForPendingFinalizers();

    Console.WriteLine(Subscriber.Count.ToString());
}
Run Code Online (Sandbox Code Playgroud)

如果我运行它,我将输出0.如果我从代码中删除事件订阅,我将得到期望的结果 - 这是10.

当 …

c# events garbage-collection finalizer

8
推荐指数
1
解决办法
2329
查看次数

哪个在SVG,多个小路径或一个巨大路径中效率更高?

如果我在浏览器中显示常规SVG(作为独立文件或嵌入HTML),那么在拥有大量独立路径元素和一个巨大路径元素之间,效率是否有任何理论差异?

我正在考虑从一张图片到一张完全不同的图片做某种动画.如果我可以只使用每个<path>标签绘制它们,那么它们之间的动画将更容易.然而,我担心如果路径太大,处理可能需要更长时间或效率更低.

我自己没有测试过这个问题,因为它需要手工连接很多路径,如果最终结果是非常低效,我不想浪费时间:-(

似乎无法在W3C或Mozilla上找到关于此文档的任何内容.任何评论赞赏.

svg

5
推荐指数
2
解决办法
1274
查看次数

Oracle SQL View:借助外键将多行合并到一行

我有两张桌子:

表A:

pk_id,
value
Run Code Online (Sandbox Code Playgroud)

表B:

pk_id,
key,
value,
fk_id
Run Code Online (Sandbox Code Playgroud)

例如 表a:

1, value
Run Code Online (Sandbox Code Playgroud)

例如表b:

1, key1, value1, 1
2, key2, value2, 1
3, key3, value3, 1
Run Code Online (Sandbox Code Playgroud)

等等,不可能用所有键定义一个表,因为我们从另一个应用程序获取数据并且它并不总是相同并且必然会发生变化.

我需要的是一个视图(或者如果可能通过其他方式,我也不介意)显示如下数据:

id, value, key1, key2, key3
1, value, value1, value2, value3
Run Code Online (Sandbox Code Playgroud)

所以与表A中的一行连接的所有内容都显示在一行中.从表B中定义应该在视图中显示的键是可能的.

提前致谢.

sql oracle oracle11g

4
推荐指数
1
解决办法
408
查看次数

在C#中创建动态属性

在剃刀视图引擎中,您可以向对象添加属性(我不确定它们是否被称为属性)Page.如何创建一个行为类似的对象Page?这是Razor C#中的示例代码:

Page.AProperty = "Hi";
Page.AnotherProperty = 1;
Run Code Online (Sandbox Code Playgroud)

c# razor

0
推荐指数
1
解决办法
308
查看次数

使用apache poi创建超链接

我正在尝试使用以下代码创建超链接

CreationHelper createHelper = wb.getCreationHelper();
cell.setCellValue("Click Here");
Hyperlink link = createHelper.createHyperlink(Hyperlink.LINK_FILE);

File f = new File("C:\\Test\\1.pdf");
link.setAddress(f.getCanonicalPath());
cell.setHyperlink((org.apache.poi.ss.usermodel.Hyperlink) link);
Run Code Online (Sandbox Code Playgroud)

它工作正常,它添加了一个Click Here单元格的链接

但是我如何使用相同类型的代码设置部分文本和链接,
我的意思是链接需要像,这里只有链接your file is here

java excel apache-poi

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