小编Out*_*mer的帖子

Java2D:将Graphics转换为Graphics2D总是安全的

假设我们总是使用Sun JVM(比如1.5+),那么将Graphics引用转换为Graphics2D总是安全的吗?

我还没有看到它导致任何问题,据我所知,Graphics类是遗留代码,但Java设计者不希望更改Swing和AWT类的接口以保持向后兼容性.

java java-2d

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

Project Darkstar是真实的吗?

Project Darkstar是昨晚在纽约市Google办公室举行的每月JavaSIG会议的主题.对于那些不了解(可能是每个人)的人来说,Project Darkstar是一个大型多人在线游戏的框架,试图照顾所有"硬盘".基本的想法是你编写游戏服务器逻辑,使所有操作都分解成微小的任务.您将这些任务传递给Project Darkstar框架,该框架处理将它们分发到集群中的特定节点,任何并发问题,最后持久保存数据.

显然,对于视频游戏而言,这种事情与企业应用程序有很大不同.发表演讲的吉姆·沃尔多称,MMO游戏的数据库读/写比率为50/50,而企业应用程序更像是90%读取,10%写入.他还声称大多数现有的MMO都会将所有内容保存在内存中,并且每6小时只会转储到数据库中.这意味着如果服务器出现故障,您将丢失自上次数据库转储以来的所有工作.

现在,该项目本身听起来很酷,但我不认为该行业会接受它.首先,您必须用Java编写服务器代码.客户端代码可以用任何东西编写(Jim声称ActionScript 3是最受欢迎的,遵循C++),但服务器的东西必须是Java.对我来说听起来不错,但我的印象是游戏行业的每个人都讨厌Java.

其次,与开发人员更喜欢使用现有框架和库的其他行业不同,游戏行业的人似乎喜欢自己编写所有内容.不仅如此,他们还喜欢为他们制作的每一款新游戏重写所有内容.在开发人员使用Havok作为物理,虚幻引擎3作为他们的平台等的地方,情况开始发生变化,但在大多数情况下看起来一切都仍然是专有的.

那么Darkstar项目的那些人是不是在浪费时间?像这样的通用框架能否真正适用于具有所需性能的复杂游戏?即使它确实有效,游戏公司是否愿意使用它?

java concurrency distributed

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

启动项目的最佳方式

当您开始个人编程项目时,您的第一步是什么?我正在尝试启动一个只是一个想法的项目.我得到了很多这些,我直接进入代码,过了一段时间后,我们完全失去了兴趣,或者只是忘记了这个项目.

当你开始时,你的第一步是什么?你计划好这个项目吗?制作图表?在纸上写一些代码?你如何以你知道自己会成功的方式开始一个项目?

project-planning project-management projects

24
推荐指数
3
解决办法
3069
查看次数

如何使用Java发现文件的创建时间?

有没有一种简单的方法来发现使用Java创建文件的创建时间?File类只有一个获取"上次修改"时间的方法.根据我在Google上找到的一些资源,File类不提供getCreationTime()方法,因为并非所有文件系统都支持创建时的想法.

唯一可行的解​​决方案是我发现involes炮轰命令行并执行"dir"命令,看起来它输出文件的创建时间.我猜这个有用,我只需要支持Windows,但它似乎很容易让我感到错误.

是否有任何第三方图书馆提供我需要的信息?

更新:最后,我不认为购买第三方库对我来说是值得的,但他们的API看起来确实不错,所以对于有这个问题的其他人来说这可能是一个不错的选择.

java windows file-io

23
推荐指数
3
解决办法
3万
查看次数

有没有办法推广Apache ANT目标?

我们有一个Apache ANT脚本来构建我们的应用程序,然后将生成的JAR文件签入版本控制(在本例中为VSS).但是,现在我们有一个更改,要求我们为这个项目构建2个JAR文件,然后检查两个到VSS.

将原始JAR文件检入VSS的当前目标通过某些属性发现JAR文件的名称.有没有一种简单的方法来"概括"这个目标,以便我可以重复使用它来检查任何名称的JAR文件?在一般语言中,这显然需要一个函数参数,但据我所知,在ANT中确实没有一个等价的概念.

java ant build-automation build-process

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

Javascript:更简单的数字格式化方式?

我正在尝试在页面上格式化各种数字.这些数字代表价格,价格变化或百分比.我知道Javascript具有限制小数位数的功能,但是是否支持其他类型的格式化,例如用逗号分组数字,控制是否显示+/-等等?这是我到目前为止所拥有的:

var FORMATTER = {
    price       : function(value) { return '$' + value.toFixed(2); },
    pricePer    : function(value) { return (value * 100).toFixed(2) + '%'; },
    priceChg    : function(value) { return (value >= 0 ? '+' : '-') + '$' + Math.abs(value).toFixed(2); }
};
Run Code Online (Sandbox Code Playgroud)

它工作正常,但它想在'price'格式化程序中添加逗号,你可以看到'priceChg'格式化程序中有一个黑客,我试图在'$'前面移动+/-符号标志.

基本上,我希望有一些库(jQuery可以)模拟Java的DecimalFormat类.

javascript formatting jquery

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

Java:在原语上同步?

在我们的系统中,我们有一个方法,当它使用某个ID调用时会做一些工作:

public void doWork(long id) { /* ... */ }
Run Code Online (Sandbox Code Playgroud)

现在,可以针对不同的ID同时完成这项工作,但是如果使用2个线程使用相同的ID调用该方法,则一个线程应该阻塞直到它完成.

最简单的解决方案是将Map从Long ID映射到我们可以锁定的任意对象.我预见到的一个问题是,我们可以在系统中拥有大量的ID,这个地图每天都会不断增长.

理想情况下,我认为我们需要一个系统,我们每个线程都会获取一个锁定对象,在可能的情况下锁定,完成工作,然后发出信号表明我们已完成锁定.如果很明显没有其他人使用这个特定的锁,那么请从锁定图中安全地将其删除以防止内存泄漏.

我想这一定是一个很常见的场景,所以我希望有一个现有的解决方案.有人知道吗?

java concurrency

16
推荐指数
3
解决办法
8265
查看次数

使用Javascript以编程方式剪辑/剪切图像

是否有关于如何剪切或剪切大图像的文档/教程,以便用户只能看到该图像的一小部分?假设源图像是10帧动画,端对端堆叠,因此它非常宽.我怎么能用Javascript一次只显示1个任意帧的动画?

我已经研究过这种"CSS Spriting"技术,但我认为我不能在这里使用它.源图像是从服务器动态生成的; 在从服务器返回之前,我不知道每个帧的总长度或大小.我希望我可以这样做:

var image = getElementByID('some-id');

image.src = pathToReallyLongImage;

// Any way to do this?!
image.width = cellWidth;
image.offset = cellWidth * imageNumber;
Run Code Online (Sandbox Code Playgroud)

javascript image

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

Java:格式数以百万计

有没有办法使用DecimalFormat(或其他一些标准格式化程序)来格式化这样的数字:

1,000,000 => 1.00M

1,234,567 => 1.23M

1,234,567,890 => 1234.57M

基本上将一些数字除以1百万,保留2位小数,并在末尾打一个"M".我已经考虑过创建一个新的NumberFormat子类,但它看起来比我想象的要复杂.

我正在编写一个API,其格式方法如下所示:

public String format(double value, Unit unit); // Unit is an enum
Run Code Online (Sandbox Code Playgroud)

在内部,我将Unit对象映射到NumberFormatters.实现是这样的:

public String format(double value, Unit unit)
{
    NumberFormatter formatter = formatters.get(unit);
    return formatter.format(value);
}
Run Code Online (Sandbox Code Playgroud)

请注意,因为这个,我不能指望客户端除以100万,我不能只使用String.format()而不将它包装在NumberFormatter中.

java formatting numeric numericupdown

11
推荐指数
3
解决办法
2万
查看次数

同时更换2个字符串?

如何在同一时间更换2个字符串?例如,假设我有这样的字符串:

str1 ="AAAA BBBB CCCC DDDD"

我想用"CCCC"取代每个"AAAA",用"AAAA"取代每个"CCCC",但如果我这样做:

str1.gsub("AAAA","CCCC")# CCCC BBBB CCCC DDDD

str1.gsub("CCCC","AAAA")# AAAA BBBB AAAA DDDD

我想要str1成为" CCCC BBBB AAAA DDDD"

ruby string algorithm replace

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