程序设计

专业和发烧友程序员的问答

9
为什么没有针对ConcurrentHashMap的ConcurrentHashSet
HashSet基于HashMap。 如果我们看一下HashSet<E>实现,则所有内容都在下管理HashMap<E,Object>。 <E>用作的键HashMap。 而且我们知道这HashMap不是线程安全的。这就是为什么我们使用ConcurrentHashMapJava。 基于此,我感到困惑的是,为什么我们没有应该基于的ConcurrentHashSet ConcurrentHashMap? 还有什么我想念的吗?我需要Set在多线程环境中使用。 另外,如果我想创建自己的作品,是否ConcurrentHashSet可以通过仅替换HashMapto ConcurrentHashMap并将其余内容保持不变来实现?

11
如何创建密钥库?
为Android创建密钥库的步骤是什么? 我需要在我的应用中使用Google Maps,但我不知道错过了哪些步骤。请向我提供具体的详细步骤(我对指南不了解)。
537 android  keystore 

5
为什么要使用依赖注入?
我试图了解依赖项注入(DI),但再次失败了。看起来真傻。我的代码永远不会混乱。我几乎不编写虚拟函数和接口(尽管我在一个蓝色的月亮中只做过一次),并且我所有的配置都使用json.net(有时使用XML序列化器)神奇地序列化为一个类。 我不太了解它能解决什么问题。看起来好像是这样说的:“嗨。当您运行此函数时,返回此类型的对象并使用这些参数/数据。” 但是...我为什么要使用它?请注意,我也从来不需要使用object它,但是我知道这是为了什么。 在构建使用DI的网站或桌面应用程序时,有哪些实际情况?对于某些人为什么要在游戏中使用接口/虚拟功能,我可以很容易地提出一些案例,但是在非游戏代码中使用它非常少见(很少见,我什至不记得一个实例)。

15
插入多行而不重复语句的“ INSERT INTO…”部分?
我知道我早在几年前就完成了此操作,但是我不记得该语法,而且由于收集了大量有关“批量导入”的帮助文档和文章,所以在任何地方都找不到它。 这是我想做的,但是语法不完全正确……请曾经做过此事的人帮帮我:) INSERT INTO dbo.MyTable (ID, Name) VALUES (123, 'Timmy'), (124, 'Jonny'), (125, 'Sally') 我知道这接近正确的语法。我可能在其中需要“散装”一词,或者我不记得的东西。任何的想法? 我需要一个SQL Server 2005数据库。我已经尝试过此代码,但无济于事: DECLARE @blah TABLE ( ID INT NOT NULL PRIMARY KEY, Name VARCHAR(100) NOT NULL ) INSERT INTO @blah (ID, Name) VALUES (123, 'Timmy') VALUES (124, 'Jonny') VALUES (125, 'Sally') SELECT * FROM …

13
如何用<br />元素替换字符串中的所有换行符?
如何使用JavaScript从值读取换行符并将所有换行符替换为&lt;br /&gt;元素? 例: 从PHP传递的变量如下: "This is man. Man like dog. Man like to drink. Man is the king." 我希望我的结果在JavaScript转换后看起来像这样: "This is man&lt;br /&gt;&lt;br /&gt;Man like dog.&lt;br /&gt;Man like to drink.&lt;br /&gt;&lt;br /&gt;Man is the king."
536 javascript 

11
如何读取大文件-逐行读取?
我想遍历整个文件的每一行。一种方法是读取整个文件,将其保存到列表中,然后遍历感兴趣的行。此方法占用大量内存,因此我正在寻找替代方法。 到目前为止,我的代码: for each_line in fileinput.input(input_file): do_something(each_line) for each_line_again in fileinput.input(input_file): do_something(each_line_again) 执行此代码将显示错误消息:device active。 有什么建议么? 目的是计算成对的字符串相似度,这意味着对于文件中的每一行,我想计算每隔一行的Levenshtein距离。
536 python  file-read 

16
如果REST应用程序应该是无状态的,那么如何管理会话?
我需要一些澄清。我一直在阅读有关REST和构建RESTful应用程序的信息。根据维基百科,REST本身被定义为“ 代表性状态转移”。因此,我不理解每个人不断涌出的所有无状态gobbledeygook。 从维基百科: 在任何特定时间,客户端可以在应用程序状态之间转换,也可以“静止”。处于休息状态的客户端可以与其用户进行交互,但是不会造成负载,也不会消耗服务器集或网络上的每个客户端存储。 他们只是在说不使用会话/应用程序级别的数据存储吗??? 我知道REST的一个目标是使URI访问保持一致和可用,例如,而不是在帖子内部隐藏分页请求,而使请求的页码成为GET URI的一部分。我感觉合理。但是,似乎没有任何理由说每个客户端数据(会话数据)都不应存储在服务器端。 如果我有一条消息队列,并且我的用户想阅读消息,但是在阅读过程中,他想在会话期间阻止某些发件人消息通过,该怎么办?将其存储在服务器端的某个位置,让服务器仅发送未被用户阻止的消息(或消息ID),这是否有意义? 每次我请求新的消息列表时,是否真的必须发送整个消息发件人列表才能阻止?首先,与我相关的消息列表甚至不会/也不应该是公共可用的资源。 同样,只是试图理解这一点。请有人澄清。 更新: 我发现了一个堆栈溢出问题,该问题的答案并不能完全解决我的问题: 如何在REST 中管理状态,该状态表示重要的客户端状态应在每个请求上全部转移。 ..似乎有很多开销...是这样吗?




26
安装Visual Studio 2012发行预览版后出现错误“ LINK:致命错误LNK1123:转换为COFF期间失败:文件无效或损坏”
我已经安装了Visual Studio 2012 Release Preview,看起来不错,但是现在当我尝试使用Visual Studio 2010编译C ++项目时,出现以下错误消息: 链接:致命错误LNK1123:转换为COFF期间失败:文件无效或损坏 我不太确定这一点,但似乎与其中具有.rc(资源)文件的项目有关。 我尝试过从“添加/删除程序”修复Visual Studio 2010并重新启动,但这没有效果。 如果在设置为使用Visual Studio 2010工具集时使用Visual Studio 2012 RC编译C ++项目,也会遇到相同的错误。升级到Visual Studio 2011工具集可解决此问题(但我当然不希望对生产代码执行此操作)。 更新:我已经卸载了Visual Studio 2012,重新启动后,问题仍然存在!帮帮我!

26
如何在不指定父级高度的情况下强制子级div为父级div的高度的100%?
我有一个具有以下结构的网站: &lt;div id="header"&gt;&lt;/div&gt; &lt;div id="main"&gt; &lt;div id="navigation"&gt;&lt;/div&gt; &lt;div id="content"&gt;&lt;/div&gt; &lt;/div&gt; &lt;div id="footer"&gt;&lt;/div&gt; 导航在左侧,内容div在右侧。内容div的信息是通过PHP获取的,因此每次都不同。 无论加载哪个页面,如何垂直缩放导航使其高度与内容div的高度相同?
535 html  css 

7
Vim中的“查找下一个”
要在Vim中向前搜索cake,我会输入/cake,但是当我按回车键时,光标会跳到第一个匹配项。有没有类似于“查找下一个”的Vim命令?
535 vim  editing 


18
SQLite-UPSERT *不是* INSERT或REPLACE
http://en.wikipedia.org/wiki/Upsert 在SQL Server上插入更新存储的proc 在我没有想到的SQLite中,有什么聪明的方法可以做到这一点吗? 基本上,如果记录存在,我想更新四列中的三列;如果不存在,我想使用第四列的默认(NUL)值插入记录。 ID是一个主键,因此UPSERT只会有一个记录。 (我试图避免SELECT的开销,以便确定是否需要显式更新或插入) 有什么建议吗? 我无法在SQLite网站上确认TABLE CREATE的语法。我还没有建立一个演示来测试它,但是似乎不被支持。 如果是的话,我有三列,因此实际上看起来像: CREATE TABLE table1( id INTEGER PRIMARY KEY ON CONFLICT REPLACE, Blob1 BLOB ON CONFLICT REPLACE, Blob2 BLOB ON CONFLICT REPLACE, Blob3 BLOB ); 但前两个Blob不会引起冲突,只有ID会发生冲突,因此我不会替换Blob1和Blob2(根据需要) 当绑定数据是一个完整的事务时,SQLite中的UPDATE意味着要更新的每个发送行都需要:Prepare / Bind / Step / Finalize语句,与INSERT不同,后者允许使用reset函数 语句对象的寿命如下所示: 使用sqlite3_prepare_v2()创建对象 使用sqlite3_bind_接口将值绑定到主机参数。 通过调用sqlite3_step()运行SQL 使用sqlite3_reset()重置该语句,然后返回到步骤2并重复。 使用sqlite3_finalize()销毁语句对象。 我猜测UPDATE与INSERT相比比较慢,但是与使用主键的SELECT相比又如何呢? 也许我应该使用select读取第4列(Blob3),然后使用REPLACE编写一条将原始第4列与前3列的新数据混合在一起的新记录?
535 sql  sqlite  upsert 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.