我很难找到一个清晰,简洁的外行定义.通常,他们提供一般性的想法,而不是特别拼写出来,我想知道我是否正确理解这一点.据我了解,类是控制对象的代码集.例如,在具有"是"按钮和"否"按钮以及输出文本框的应用程序中,告诉计算机当用户使用"是"按钮时要执行的操作的代码是一个类,用于命中No的代码是另一个类,一个对象是两个按钮以及它们共同影响输出框的内容.我是对的,还是我在这里混淆了条款?
谢谢
这是我第一次尝试解决这个问题.我得说,我有点喜欢Python.:d
# D. verbing
# Given a string, if its length is at least 3,
# add 'ing' to its end.
# Unless it already ends in 'ing', in which case
# add 'ly' instead.
# If the string length is less than 3, leave it unchanged.
# Return the resulting string.
def verbing(s):
if len(s) >= 3:
if s[-3:] == "ing":
s += "ly"
else:
s += "ing"
return s
else:
return s
# +++your code here+++
return
Run Code Online (Sandbox Code Playgroud)
您觉得我在这里可以改进什么?
我希望将用户首选项持久化为名称值对的集合,其中值可以是int,bool或string.
有几种方法可以给这只猫上皮,但我能想到的最方便的方法是这样的:
public class User
{
public virtual IDictionary<string, object> Preferences { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
用途如下:
user.Preferences["preference1"] = "some value";
user.Preferences["preference2"] = 10;
user.Preferences["preference3"] = true;
var pref = (int)user.Preferences["preference2"];
Run Code Online (Sandbox Code Playgroud)
我不知道如何在Fluent NHibernate中映射这个,虽然我认为这是可能的.
通常,您可以将更简单的Dictionary <string,string>映射为:
HasMany(x => x.Preferences)
.Table("Preferences")
.AsMap("preferenceName")
.Element("preferenceValue");
Run Code Online (Sandbox Code Playgroud)
但是对于一种'对象',NHibernate不知道如何处理它.我想可以创建一个自定义UserType,它将"对象"分解为表示其Type的字符串和表示该值的字符串.我们会有一个看起来像这样的表:
Table Preferences
userId (int)
preferenceName (varchar)
preferenceValue (varchar)
preferenceValueType (varchar)
Run Code Online (Sandbox Code Playgroud)
并且hibernate映射会这样:
<map name="Preferences" table="Preferences">
<key column="userId"></key>
<index column="preferenceName" type="String" />
<element type="ObjectAsStringUserType, Assembly">
<column name="preferenceValue" />
<column name="preferenceValueType"/>
</element>
</map>
Run Code Online (Sandbox Code Playgroud)
我不确定你会如何在Fluent NHibernate中映射它.
也许有更好的方法来做到这一点,或者我应该把它吸掉并使用IDictionary <string,string>.有任何想法吗?
什么是最好的启发式,我可以用来确定一个X 4字节的块是整数还是浮点数?人类可以轻松地做到这一点,但我想以编程方式进行.
我意识到,因为每个位组合都会产生一个有效的整数和(差不多?)所有这些组合也会产生一个有效的浮点数,所以没有办法确定.但我仍然想确定最有可能的候选人(这几乎总是正确的;或者至少,人类可以做到这一点).
例如,让我们先取一系列4字节的原始数据,然后先将它们作为整数打印出来然后再作为浮点数打印出来:
1 1.4013e-45 10 1.4013e-44 44 6.16571e-44 5000 7.00649e-42 1024 1.43493e-42 0 0 0 0 -5 -nan 11 1.54143e-44
显然他们将是整数.
现在,另一个例子:
1065353216 1 1084227584 5 1085276160 5.5 1068149391 1.33333 1083179008 4.5 1120403456 100 0 0 -1110651699 -0.1 1195593728 50000
这些显然是漂浮物.
PS:我使用的是C++,但您可以使用任何语言,伪代码或英语进行回答.
c++ language-agnostic algorithm floating-point artificial-intelligence
"var"是可选的吗?
myObj = 1;
Run Code Online (Sandbox Code Playgroud)
与...一样 ?
var myObj = 1;
Run Code Online (Sandbox Code Playgroud)
我发现它们都是我的测试,我认为var是可选的.是对的吗?
在某些易于理解的情况下,我们的应用程序将打开太多套接字(数据库连接)并达到操作系统允许的最大打开文件.我们理解这一点; 我们正在解决这个问题,并且还要提高限额.
我们无法解释的是,即使在连接数量减少之后,我们的部分应用程序也无法恢复,而且我们已经在极限范围内.
在这种情况下,它是在Tomcat下运行的应用程序.
发生这种情况时,我们首先看到"打开文件太多"错误:
SEVERE: Socket accept failed
java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
at java.net.ServerSocket.implAccept(ServerSocket.java:453)
at java.net.ServerSocket.accept(ServerSocket.java:421)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:310)
at java.lang.Thread.run(Thread.java:619)
Run Code Online (Sandbox Code Playgroud)
最终,我们开始NoClassDefFoundError在试图打开HTTP连接的应用程序线程中看到s:
java.lang.NoClassDefFoundError: org/apache/commons/httpclient/protocol/ControllerThreadSocketFactory
at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:128)
at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1349)
[...]
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.protocol.ControllerThreadSocketFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 8 more
Run Code Online (Sandbox Code Playgroud)
当错误的连接消失时,服务器再次开始接受连接,一切似乎都没问题,但我们留下了后一个错误,不断向stderr发送.
虽然应用程序通常会将卸载的类记录到stdout,但我没有在"Too many open files"错误之前,期间或之后看到任何此类日志.
我最初的理论是Hotspot JVM在遇到"太多打开的文件"时会卸载看似未使用的类,但如果是这样,它就不会记录这个事实.
编辑:正如Stephen C在下面指出的那样,如果它正在卸载类,并且在第一次重新加载时遇到错误,这可以解释为什么它永远不会恢复.我认为这是一个很好的工作理论.它是否记录在Sun文档中?为什么不记录卸载类通常是卸载类的?
平台细节:
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) 64-Bit Server VM (build 14.0-b16, mixed mode) …Run Code Online (Sandbox Code Playgroud) 我正在尝试在TeamCity 5中设置构建过程,并且在尝试复制某些文件时遇到访问被拒绝错误.我看到我的构建代理现在作为"SYSTEM"运行,我认为这是问题的一部分.我想改变那个用户身份.麻烦的是我无法弄清楚如何在构建代理上更改这些设置.如何更改构建用户身份?
这是我的代码:
def front_back(a, b):
# +++your code here+++
if len(a) % 2 == 0 && len(b) % 2 == 0:
return a[:(len(a)/2)] + b[:(len(b)/2)] + a[(len(a)/2):] + b[(len(b)/2):]
else:
#todo! Not yet done. :P
return
Run Code Online (Sandbox Code Playgroud)
我在IF条件中遇到错误.我究竟做错了什么?
我有一个包含任意数量LI的UL.我正在尝试创建一些jQuery代码,它将解析原始UL并在每5个原始LI之后包装UL和另一个LI.
开始HTML:
<ul id="original_ul">
<li class="original_li">..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
必填HTML:
<ul id="processed_ul">
<li class="new_wrap_li">
<ul class="new_wrap_ul">
<li class="original_li">..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
</ul><!-- end new wrap ul -->
</li><!-- end new wrap li -->
<li class="new_wrap_li">
<ul class="new_wrap_ul">
<li class="original_li">..</li>
<li>..</li>
<li>..</li>
<li>..</li>
<li>..</li>
</ul><!-- end new wrap ul -->
</li><!-- end new wrap li -->
</ul><!-- end processed ul -->
Run Code Online (Sandbox Code Playgroud)
我一直在使用.each函数来浏览LI并将它们附加到临时div中保存的新处理的ul ...现在我只需要在每5个LI周围包装新的LI和UL.
提前致谢!!
人
我的团队并支持大量遗留应用程序,所有这些应用程序目前都在运行,但在支持和维护方面存在问题.它们都依赖于编译器制造商正式不支持的代码.
所以问题是我们应该按原样保留代码,并冒险让新编译器破坏我们的代码,或者我们应该咬紧牙关并更新所有代码?
javascript ×2
python ×2
algorithm ×1
and-operator ×1
c++ ×1
class ×1
dictionary ×1
if-statement ×1
java ×1
jquery ×1
jvm ×1
keyword ×1
legacy ×1
mapping ×1
object ×1
oop ×1
preferences ×1
teamcity ×1
teamcity-5.0 ×1
tomcat ×1
usertype ×1