显然,对于我的代码访问对象,必须至少有一个引用它.但我想知道的是,是否有任何其他引用,或者我的代码是唯一访问它的地方.如果没有别的东西引用它,我希望能够删除该对象.
如果您知道答案,则无需阅读本问题的其余部分.以下只是一个让事情更加清晰的例子.
在我的应用程序中,我有一个Repository名为的对象实例contacts,其中包含所有联系人的数组.还有多个Collection对象实例,例如 friends集合和coworkers集合.每个集合都包含一个数组,其中包含一组不同的项目contacts Repository.
为了使这个概念更具体,请考虑下面的代码.Repository对象的每个实例都包含特定类型的所有项的列表.您可能拥有联系人存储库和单独的事件存储库.为了简单起见,您可以获取,添加和删除项目,并通过构造函数添加许多项目.
var Repository = function(items) {
this.items = items || [];
}
Repository.prototype.get = function(id) {
for (var i=0,len=this.items.length; i<len; i++) {
if (items[i].id === id) {
return this.items[i];
}
}
}
Repository.prototype.add = function(item) {
if (toString.call(item) === "[object Array]") { …Run Code Online (Sandbox Code Playgroud) 可以在Go中实现ICMP ping吗?另一种方法是分叉'ping'进程,但我宁愿在Go中编写它.
我正在创建一个简单的项目,允许我使用gwt上传和下载文件.我在下载服务器上的文件时遇到问题.
对于文件上传,我使用了http://code.google.com/p/gwtupload/并按照其中的说明操作.我的文件存储在网站容器外部的服务器上(在硬盘上),
现在,在下载文件时,我希望用户按下下载按钮,当前选择的任何项目都将下载.我真的不知道如何做到这一点
我知道我需要一个下载servlet
public class DownloadAttachmentServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
// TODO Auto-generated method stub
super.doGet(req, resp);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
String fileName = (String) req.getSession().getAttribute("fileName");
YFUser user = (YFUser) req.getSession().getAttribute(TestServiceImpl.SESSION_USER);
if (user == null)
throw new ServletException("Invalid Session");
InputStream in = null;
OutputStream out = resp.getOutputStream();
FileInputStream fIn = new FileInputStream(fileName);
byte[] buffer = new byte[4096];
int length; …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用add_custom_command在构建期间生成文件.该命令似乎永远不会运行,所以我制作了这个测试文件.
cmake_minimum_required( VERSION 2.6 )
add_custom_command(
OUTPUT hello.txt
COMMAND touch hello.txt
DEPENDS hello.txt
)
Run Code Online (Sandbox Code Playgroud)
我试过跑:
cmake .
make
Run Code Online (Sandbox Code Playgroud)
并且没有生成hello.txt.我做错了什么?
基本上这个,但纯粹的javascript:
如何根据select标签的内容获取select标签的'value',使用Nokogiri
我有一个包含很多国家/州的选择列表,我希望能够根据<option>标签之间的内容选择一个.
<option value="4783">Argentina</option>
Run Code Online (Sandbox Code Playgroud)
(我知道我可以使用这个值,但每个都是数字的随机网格,所以我必须收集每一个 - 不经济)
我刚刚开始学习C#而且我已经陷入了一些非常基础的问题.
对于我的第一个"应用程序",我以为我会选择简单的东西,所以我决定使用BMI计算器.
BMI被计算成一个十进制类型,我现在试图在switch语句中使用,但是几乎不能在开关中使用十进制?
这个C#解决方案是什么:
decimal bmi = calculate_bmi(h, w);
switch (bmi) {
case < 18.5:
bmi_description = "underweight.";
break;
case > 25:
bmi_description = "overweight";
case > 30:
bmi_description = "very overweight";
case > 40:
bmi_description = "extreme overweight";
break;
}
Run Code Online (Sandbox Code Playgroud) 我编写了以下内容(jQuery插件的一部分),将一组JSON对象中的项插入到<ul>元素中.
...
query: function() {
...
$.ajax({
url: fetchURL,
type: 'GET',
dataType: 'jsonp',
timeout: 5000,
error: function() { self.html("Network Error"); },
success: function(json) {
//Process JSON
$.each(json.results, function(i, item) {
$("<li></li>")
.html(mHTML)
.attr('id', "div_li"+i)
.attr('class', "divliclass")
.prependTo("#" + "div_ul");
$(slotname + "div_li" + i).hide();
$(slotname + "div_li" + i).show("slow")
}
}
});
}
});
},
...
Run Code Online (Sandbox Code Playgroud)
这样做可能在<li>理论上逐个添加项目,但是当我加载页面时,一切都会立即显示出来.相反,有没有一种有效的方法让它们逐一慢慢出现?我将用一个小例子来解释:如果我有3个项目,这个代码会使所有3个项目瞬间出现(至少在我看来).我希望像1渐弱,然后2渐弱,然后3渐变(或许像一个新的标签).有人有建议吗?
我在数据库中有一些CLOB列,我需要将Base64编码的二进制文件放入.这些文件可能很大,所以我需要流式传输它们,我无法立即读取整个内容.
我正在使用org.apache.commons.codec.binary.Base64InputStream编码,我遇到了问题.我的代码基本上就是这个
FileInputStream fis = new FileInputStream(file);
Base64InputStream b64is = new Base64InputStream(fis, true, -1, null);
BufferedReader reader = new BufferedReader(new InputStreamReader(b64is));
preparedStatement.setCharacterStream(1, reader);
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我在执行更新期间得到其中一个代码,
java.io.IOException: Underlying input stream returned zero bytes它在InputStreamReader代码中被深深抛出.
为什么这不起作用?在我看来,它reader会尝试从基本的64流中读取,这将从文件流中读取,并且一切都应该是快乐的.
我需要做的一些测试需要将已知数组与我将要运行的函数得到的结果进行比较.
用于递归地比较数组:
这是我使用后向欧拉方法以数字方式求解ODE的MATLAB/FreeMat代码.但是,结果与我的教科书结果不一致,有时甚至是荒谬的不一致.代码有什么问题?
function [x,y] = backEuler(f,xinit,yinit,xfinal,h)
%f - this is your y prime
%xinit - initial X
%yinit - initial Y
%xfinal - final X
%h - step size
n = (xfinal-xinit)/h; %Calculate steps
%Inititialize arrays...
%The first elements take xinit and yinit corespondigly, the rest fill with 0s.
x = [xinit zeros(1,n)];
y = [yinit zeros(1,n)];
%Numeric routine
for i = 1:n
x(i+1) = x(i)+h;
ynew = y(i)+h*(f(x(i),y(i)));
y(i+1) = y(i)+h*f(x(i+1),ynew);
end …Run Code Online (Sandbox Code Playgroud)