小编Rom*_*man的帖子

什么是未经检查和不安全的操作?

我有以下代码:

private static final Set<String> allowedParameters;
static {
    Set<String> tmpSet = new HashSet();
    tmpSet.add("aaa");
    allowedParameters = Collections.unmodifiableSet(tmpSet);
}
Run Code Online (Sandbox Code Playgroud)

它导致:

Note: mygame/Game.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Run Code Online (Sandbox Code Playgroud)

当我使用建议的选项重新编译时,我看到一个指针(^)指向前面的"新" HashSet();.

有谁知道这里发生了什么?

java generics collections hashset

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

Socket是否打开另一个线程?它会返回一些东西吗?

在客户端应用程序中我调用new Socket(serverIP,serverPort). 结果,客户端应用程序向服务器应用程序发送打开套接字的请求。它会启动一个新线程吗?我的意思是以下哪项是正确的?

  1. 客户端应用程序发送请求并立即开始执行以下命令(不等待应答)。

  2. 客户端发送请求并等待答复。一旦获得答案,客户端应用程序就会继续执行以下命令。

第二种情况对我来说似乎更现实、更符合逻辑。但是,我不明白如果服务器不打开套接字并且它没有说它不“想要”打开第二个套接字(如果服务器不存在或网络损坏,则可能会发生这种情况)会发生什么。在这种情况下会发生什么?服务器会永远等待吗?

一般来说,客户端最好知道其对套接字的请求的结果是什么。例如我可以想象以下情况:

  1. 套接字由服务器打开。

  2. 服务器拒绝打开套接字。所以,服务器存在,它收到了客户端的请求,但它说“不”。

  3. 服务器没有响应。

我知道new Socket(serverIP,serverPort)不会“返回”此类信息。但它会引发异常。其中之一是“UnkownHostException”。什么时候抛出?当服务器有一段时间没有响应时(多长时间)?

添加:

我刚刚发现抛出UnknownHostException表示无法确定主机的IP地址。因此,它与上述情况无关(服务器没有响应,服务器拒绝打开套接字)。

java sockets networking client

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

如何同步读取和写入套接字?

我们创建一个套接字.在套接字的一侧,我们有一个"服务器",另一边有一个"客户端".服务器和客户端都可以写入和读取套接字.这是我的理解.我不明白以下事项:

  1. 如果服务器从套接字读取,它是否只在套接字中看到客户端写入套接字的那些东西?我的意思是如果服务器向套接字写入内容而不是从套接字读取,它(服务器)是否会在套接字中看到它(服务器)在那里写的内容?我希望不是.

  2. 让我们考虑以下情况.客户端向套接字写入内容,然后将新内容写入套接字,然后服务器从套接字读取.服务器会在那里看到什么?只有客户写的"新"东西或"新"和"旧"的东西?

  3. 如果客户端(或服务器)写入套接字,它是否可以查看其他方是否收到了书面信息?例如,out.println("Hello, Server!")将返回true服务器收到此消息.

java sockets

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

如果抛出IOException,我该怎么办?

我有以下3行代码:

ServerSocket listeningSocket = new ServerSocket(earPort);
Socket serverSideSocket = listeningSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(serverSideSocket.getInputStream()));
Run Code Online (Sandbox Code Playgroud)

编译器抱怨所有这三行,并且它对所有3行的抱怨是相同的:未报告的异常java.io.IOException; 在更多的细节,这些异常被抛出new ServerSocket,accept()getInputStream().

我知道我需要使用try ... catch ....但为此,我需要知道在每个特定情况下这个例外意味着什么(我应该如何解释它们).什么时候发生?我的意思是,不是一般的,而是在这3个特殊情况下.

java exception-handling

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

如何以安全的方式关闭我的软件?

到目前为止,我将我的应用程序用作独立产品.因此,当用户按下"停止"按钮时,我打电话给System.exit(0);它,这很好.

现在我的应用程序将从另一个程序调用(以编程方式).所以,我担心这System.exit(0);不仅会杀死我的程序,还会杀死启动我程序的外部软件.

那么,如果收到来自外部软件的相应请求,关闭我的应用程序的正确方法是什么?我的应用程序是GUI应用程序.所以,我想关闭窗口,但我也想关闭我的程序执行的所有进程.

添加:

更具体地说,我想关闭我的程序启动的所有线程.我的程序没有启动任何操作系统进程或任何其他程序.

java api termination exit

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

如何在Eclipse中的构建路径中添加.jar?

我尝试按以下方式进行:

  1. 右键单击项目名称.

  2. 单击下拉菜单中的构建路径.

  3. 单击"配置构建路径"

然后我不知道该怎么做.我应该选择"来源","项目","图书馆","订单和出口"吗?

在"库"中,我有"添加JAR ..."和"添加外部JAR ......".我应该选择什么?(我的项目的lib文件夹中已经有一个.jar文件.)

添加:

如果我点击"库"选项卡中的"添加JAR",我会看到"lib"子文件夹,但如果我去那里,我看不到我的.jar文件(我知道它在那里).

java eclipse jar buildpath

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

我应该在PHP中使用什么RSS解析器?

我正在搜索用PHP编写的RSS解析器.问题不在于我找不到一个.问题是有太多而且很难决定使用哪一个(特别是当我没有使用它们并尝试它们太耗费时间).

谁能推荐我一个"好"的RSS解析器?

以下要求对我很重要(按重要性排序):

  1. 它能够提取Feed中给出的所有信息(不仅包括标题,描述和链接,还包括所有内容,例如供稿作者,供稿图标,商品标签等).
  2. 它不仅应该能够读取RSS源,还能读取Atom源.
  3. 它应该容忍"破坏"的RSS(Atom)提要.
  4. 它应该很简单.

php rss parsing atom-feed

5
推荐指数
2
解决办法
751
查看次数

如何用&nbsp;替换标签 用PHP?

在我的数据库中,我有以下文字:

for x in values:
   print x
Run Code Online (Sandbox Code Playgroud)

我想在我的HTML页面上打印此代码.它由PHP打印到HTML文件中.但是当浏览器显示HTML时,我当然看不到这种形式的文本.我看到以下内容:

for x in values: print x
Run Code Online (Sandbox Code Playgroud)

我部分解决了这个问题nl2br,我也用了str_replace(' ','&nbsp',$str).结果我得到了:

for x in values:
print x
Run Code Online (Sandbox Code Playgroud)

但我仍然需要print x向右移动.我以为我可以通过解决问题str_replace('\t','&nbsp;&nbsp;&nbsp;',$str).但我发现str_replace在打印之前没有将空格识别为'\ t'.这个空间也不被认为只是一个空间.换句话说,我&nbsp;之前没有得到任何print.

为什么?问题怎么解决?

html php str-replace nl2br

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

如何从 Eclipse 编译并运行 C++ 程序?

我正在尝试使用 Eclipse 编写、编译和执行“HelloWorld”C++ 程序。我已经成功安装并运行 Eclipse,创建一个新项目并编写 HelloWorld 程序。现在我想编译它并运行。

我在 Eclipse 中没有找到“Compile”选项,但在“Project”菜单中找到了“Build Project”选项。我认为构建就是我所说的“编译”。单击此选项后,Eclipse 生成“Debug”文件夹,其中包含“src”子文件夹以及 3 个文件:“sources.mk”、“objects.mk”和“makefile”。首先,我不知道这些文件的含义(以及其中哪个是我的“可执行文件”)。其次,我仍然需要执行我的程序。我尝试单击“运行”菜单中的“运行”选项。结果我收到一条错误消息:“启动失败。找不到二进制文件”。

请任何人帮助我使用 Eclipse 编译和运行我的代码。

c++ eclipse compilation execute

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

了解Eclipse生成的文件夹和文件

短版的问题:是什么objects.mksources.mkmakefilesubdir.mk*.o*.dEclipse生成的文件?


问题的长版:

  1. 在我的主目录中,我有该workspace目录。每当我创建一个项目并将其命名为ProjectName一个新目录(也称为ProjectName)时,Eclipse 就会在该workspace文件夹中创建一个新目录(也称为)。
  2. 在我的项目中,我创建了不同的类,每个类都与 2 个文件(源文件ClassName.cpp和头文件ClassName.h)相关联。这些文件被放入workspace/ProjectName/src文件夹中。
  3. 现在我Build在 Eclipse 中我的项目并在workspace/ProjectName一个新文件夹中出现。它被称为Debug
  4. 在这个文件夹中,只有一个文件的功能我理解:ProjectName. 它是可执行文件。如果我在命令行中输入它的名字,我的程序就会被执行。
  5. 我不知道另外 3 个文件:objects.mk, sources.mk, makefile.
  6. 此外,在Debug文件夹中有src目录。它包含subdir.mk我不知道其含义的文件以及ClassName.oandClassName.d文件(如果我有 N 个类,那么将有 N 对*.oand*.d文件。)

任何人都可以解释这些文件的含义和目的吗?

eclipse

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