小编Law*_*Dol的帖子

全局键盘钩子的合法用途是什么?

除应用程序启动快捷方式(仅应由操作系统提供)外,Windows键盘挂钩等合法用途是什么?在我看来,我们只遇到像键盘记录器这样的问题,因为操作系统提供钩子来执行任何人都不应该允许的事情,除了O/S内核本身.

编辑:好的,所以考虑到可能需要它们的合法位置,O/S是否应该提供全局关闭它们的高级别能力,并且只允许逐个程序的例外?

hook operating-system

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

在java应用程序中跟踪IO?

我试图找出为什么 Apache CXF 在第一次初始化 Web 服务时会跑掉做“某事”。“某事”可能是某种 IO,我猜它正在尝试解析某种外部地址/模式/DTD。

所以我试图找到某种可以监控所有 IO 的钩子。无论是在 VM 级别还是在 OS 级别(我可以在 linux 和 Windows 上运行,但我不允许运行 wireshark,理论上它可能是文件 IO)。

关于如何追踪正在发生的事情的任何建议?

java io trace

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

如何使用单独的jar覆盖类?

客户需要预览我们产品的新功能.他们要求在jar文件(如补丁)中将这个功能发送给他们.在所述jar文件中包含新类没有问题.但是,修改了现有类,这是集成新功能所必需的.他们只想添加这个新的jar文件,而无需更新我们产品的核心类.所以,问题是:是否可以使用单独的jar覆盖已存在的类?如果是这样,怎么样?

提前致谢.

java overriding aspectj jar class

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

为什么Windows XP 32与Windows 7 64中的Java应用程序的内存使用存在很大差异

我有一个用于记录我的工作活动的Java应用程序.因为我每天都打开它,所以最初关心我选择语言的一件事就是它会使用的内存量.

令人高兴的是,在Windows XP下,它通常在最小化时消耗大约5 MB,在最大化时消耗大约12 MB,并且愉快地运行-Xmx5M(根据Windows任务管理器的内存消耗).

当我用更新的硬件升级我的家用电脑,同时升级到Windows 7 64(虽然我安装并使用32位JVM)时,我立即注意到此应用程序的JVM现在报告68 MB +总是.. .这就是用-Xmx5M -Xss16K,根据任务管理器的"工作组".

旧机器和新机器都有4 GB的RAM,其中512 MB用于视频.两者都在运行Java 6的最新版本 - 关于WinXP的更新15,现在为Win7更新24.磁盘上的应用程序占用量为12 K类70 K. 此外,我的工作计算机仍然是Windows XP,运行Java 6_24,并且它显示了大约12 MB这个相同的应用程序 - 并且相同我的意思是字面意思,因为这两个系统是同步的所有我的开发工具.

作为一名开发人员,我需要了解为什么我的应用程序似乎会扼杀这么多内存.

任何人都可以对此有所了解,并建议如何有意义地减少Java 6应用程序的内存占用量?

编辑

答案可能是过度的PermGen大小.根据JVisualVM,我有一堆:

大小:5.2 MB,使用:4.3 MB(峰值)和分配6.2 MB.

但对于PermGen

大小:12.5 MB,使用:4.6 MB(峰值)和分配67.1 MB.

在此输入图像描述

那么,Win 7中的任务管理器中显示的68 MB是否可以简单地请求但是未分配的虚拟内存?

编辑2

将PermGen降低到12 MB对进程RAM没有影响,但JVisualVM确实显示它减少了(显然12 MB构成了某种最小值,因为低于此值对JVVM没有影响).

java user-interface memory-management

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

文件IO似乎没有正确读取

免责声明:这是一项任务.我不是要求明确的代码.相反,我只是要求足够的帮助,我可以理解我的问题,并自己纠正.

我正在尝试ar根据家庭作业重新创建Unix 实用程序.这个任务的大部分处理C中的文件IO,其他部分处理系统调用等.

在这种情况下,我打算创建存档中所有文件的简单列表.你可能没注意到,我还没有走得太远.该计划相对简单:从存档文件中读取每个文件头,并仅打印保存的值ar_hdr.ar_name.其余字段将被跳过fseek(),包括文件数据,直到到达另一个文件,此时该过程再次开始.如果达到EOF,则该功能简单地终止.

我对文件IO没什么经验,所以我已经处于这个任务的劣势.我已尽最大努力研究实现目标的正确方法,我相信我已尽最大努力实施这些目标.也就是说,我的实施似乎有问题.来自存档文件的数据似乎没有被读取,或者至少存储为变量.这是我的代码:

struct ar_hdr
{
    char ar_name[16];   /* name */
    char ar_date[12];   /* modification time */
    char ar_uid[6];     /* user id */
    char ar_gid[6];     /* group id */
    char ar_mode[8];    /* octal file permissions */
    char ar_size[10];   /* size in bytes */
};

void table()
{
    FILE *stream;
    char str[sizeof(struct ar_hdr)];
    struct ar_hdr temp;

    stream = fopen("archive.txt", "r");
    if (stream == 0)
    {
        perror("error");
        exit(0);
    }

    while (fgets(str, sizeof(str), stream) != …
Run Code Online (Sandbox Code Playgroud)

c io unix-ar

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

如何在Mithril.js中叠加弹出视图?

作为深入学习简单JS编程(在最新浏览器上)的实践练习,我正在建立一个SPA来维护客户记录.我使用的唯一外部库是Mithril.js MVC.到目前为止,我有一个包含来自我的数据库的实时数据的表视图,其中包括每个记录的编辑,合并和删除按钮.编辑完成并运行良好,使用内联"表单"并保存/取消该工作.

我现在正在尝试实现删除和合并,两者都需要一个弹出确认才能被操作,这就是我被困住的地方.我确切地知道我在桌面GUI环境中做了什么,所以路障可能是我对浏览器前端缺乏了解而不是秘银本身.

理想情况下,我想创建一个自包含,可重用的"popup"组件代表弹出窗口,但我看不出我应该如何使用Mithril在JS中这样做,特别是,但不仅仅是如何制作秘银将一个视图叠加在另一个视图之上.

从广泛的大纲到具体的代码片段,我们将不胜感激.

javascript browser user-interface mithril.js

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

减少循环的最佳习语

减少循环的最佳/首选习惯是什么?为什么?

for(int idx=(len-1); idx>=0; idx--) {...}
Run Code Online (Sandbox Code Playgroud)

要么

for(int idx=(len-1); idx>-1; idx--) {...}
Run Code Online (Sandbox Code Playgroud)

或(基于sylvarking的答案,但用于约束索引范围)

for(int idx=len; idx-->0; ) {...}
Run Code Online (Sandbox Code Playgroud)

是否有一个或多个人更有可能绊倒另一个开发者?

java

4
推荐指数
2
解决办法
8208
查看次数

使用null的方法重载选择

鉴于此代码:

class Overloading
extends Object
{

static public void target(Object val, String chk) { System.out.println("Object["+val+"] :: Should be "+chk); }
static public void target(String val, String chk) { System.out.println("String["+val+"] :: Should be "+chk); }

static public void main(String[] args) {
    Object                              obj=null;

    target(null        ,"Object");
    target((Object)null,"Object");
    target(obj         ,"Object");
    }
}
Run Code Online (Sandbox Code Playgroud)

输出(意外地)如下:

String[null] :: Should be Object
Object[null] :: Should be Object
Object[null] :: Should be Object
Run Code Online (Sandbox Code Playgroud)

问题在于第一行,我希望与另外两行相同.此外,我发誓,直到最近编译器才会给普通null调用一个模糊的调用警告.但是,使用Java 5和6进行编译和测试会产生相同的结果.

这对我来说是一个重要的问题,因为我有很多代码使用这种模式使用不同类型的重载"默认"参数来选择返回类型并推断所需的转换/解析.谁能解释一下这里发生了什么?

java overloading

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

Java 2D游戏编程 - 新手问题

我们是一个程序员和设计师的团队,我们希望制作一个中型Java游戏,它将在网络浏览器中作为applet播放.我(程序员)有3年的一般开发经验,但我之前没有做任何游戏编程.

我们假设:

  • 我们将决定比赛的情节,故事情节等.

  • 我们将创建一个我们需要的资产(图像)列表,即玩家图像,怪物图像,城镇,建筑物,树木,物体等.(我们现在不添加任何音乐/声音效果)

  • 设计师将在阅读我购买的一些游戏编程书籍时开始创建这些图像.设计师将创建游戏的第一个城镇/级别,然后将这些图像传递给我,我将开始编写第一级,他将开始下一级别,并且在4-5级之后我们将发布v.1游戏

问题1:这是用于此项目的正确方法吗?

问题2:设计人员应该以什么格式创建这些图像.它们应该是.bmp,.jpeg还是.gif文件?并且,他会将所有这些图像放在一个文件中,还是将每个怪物/对象/建筑物放在自己的文件中?注意; 我们现在坚持使用2D而不是3D.

问题3:我看过一些游戏工具,里面会有一个怪物的文件,在那个文件中有大约3-4张来自不同方向的怪物图像,全部放在一个文件中,我想因为它们'是动画的一部分.这是一个插图:

[怪物向右看] ...... [怪物在前方看着] ...... [怪物向右看[

所有这些都在一个档案中.这是他将如何向我提供这些动画吗?

我想要找出的是,他将为我提供设计图像的格式是什么,以便我能够在Java代码中轻松访问/操作它们.

所有答案赞赏:)

java 3d 2d sprite

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

如何在屏幕上居中java.awt.FileDialog

我从来没有能够弄明白这个; 通常的嫌疑人不起作用.

鉴于:

FileDialog                  dlg=null;

dlg=new FileDialog(owner,"Select File to Load",FileDialog.LOAD);
dlg.setFile(null);
dlg.setVisible(true);
Run Code Online (Sandbox Code Playgroud)

有没有办法让对话框居中?

关键点在于setVisible(),调用线程被阻塞,直到对话框被解除; 之前的任何定位似乎都被忽略了.

java filedialog awt

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