如何破坏java对象?

好吧,我开发了一个使用多个对象关系的java应用程序,这使得内存使用过于昂贵。 我没有管理java内存的经验,因为应用程序设计很难破坏对象并重新利用先前清除的空间。 例如,我正在使用Observer和MVC模式。 所以,理论说…… 如果从任何活动线程或任何静态引用无法访问对象,则该对象符合垃圾收集或GC的条件 换句话说,如果对象的所有引用都为null,则可以说对象符合垃圾回收的条件。 但是,根据我的短暂经验,当我有一个像我这样的场景,你不知道如何从我想要从内存中移除的对象(例如,当一个框架关闭时)销毁所有引用时,对我来说太难了存在许多对类的引用。 根据这个上下文,当有多个引用时,如何处理对象破坏? 或者当你对彼此有复杂的引用时,我如何管理内存?

如何使用PDFBox drawString插入换行符

我必须用表制作PDF。 到目前为止它工作正常,但现在我想添加一个包装function。 所以我需要插入换行符。 contentStream.beginText(); contentStream.moveTextPositionByAmount(x, y); contentStream.drawString(“Some text to insert into a table.”); contentStream.endText(); 我想在“插入”之前添加“ \n ”。 我尝试了“ \u000A ”这是换行的hex值,但是Eclipse向我显示错误。 是否可以使用drawString添加换行符?

从java程序运行jar文件

我试图从另一个Java程序执行jar文件。 我使用以下代码: try { Runtime runtime = Runtime.getRuntime(); runtime.exec(“path upto jar”); } catch (Exception ex) { JOptionPane.showMessageDialog(null, “Exception occured” + ex); } 但它不起作用。 我试过谷歌,它给了我使用ProcessBuilder的例子,但这也没有用。

服务崩溃并重新启动

有几个问题,但我总是读同样的事情:“如果系统需要资源,服务将被杀死”或“你不能建立一个永远运行的服务,因为它在后台运行的越多,更容易受到影响到系统杀死它“等等 我面临的问题是:我的服务运行正常并且正如预期的那样,如果我运行我的应用程序然后退出它我的服务仍在运行,但是当我杀死我的应用程序时(通过转到“最近的应用程序”并转换它离开)服务停止。 在这一刻,如果我进入设置>> aplications >>运行,我会看到该服务正在重启。 过了一会儿,它回来了,我的服务运行没有问题。 我谷歌它,我找到了一些我能做的事情,但让我先看看我的代码: 我通过这种方式启动我的服务(点击一下按钮后): Intent intent = new Intent (MainActivity.this, MyService.class); startService(intent); 我还有3个额外的整数,所以我有这样的东西: final Integer i, i2, i3; i = 5; //for example i2 = 10; //for example i3 = 15; //for example final Intent intent = new Intent (MainActivity.this, MyService.class); intent.putExtra(“INTEGER1”, i); intent.putExtra(“INTEGER2”, i2); intent.putExtra(“INTEGER3”, i3); startService(intent); 在MyService中,我有以下方面: public class […]

Java servlet如何禁用页面缓存

如何禁用缓存? 应该做什么标题设置? 你能提供一个代码片段吗?

“if(rs.next())”是什么意思?

我目前收到错误, java.sql.SQLException: Method ‘executeQuery(String)’ not allowed on prepared statement. 因为我正在使用 PreparedStatement stmt = conn.prepareStatement(sql); 并且也有 ResultSet rs = stmt.executeQuery(sql); 在我的代码中。 我现在需要删除ResultSet行,但这使我不得不处理以下代码: if (rs.next()) { messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(“login.successful”)); request.getSession(true).setAttribute(“USERNAME”, rs.getString(“USERNAME”)); request.getSession(true).setAttribute(“BALANCE”, rs.getString(“BALANCE”)); request.setAttribute(“msg”, “Logged in successfully”); 我不确定我完全明白什么 if (rs.next()) 确实。 有人可以向我解释这段代码吗? 如果我对此有了更好的理解,我相信我会更好地了解如何使用PreparedStatement结果和rs用于逻辑。 此外,任何有助于改变逻辑的帮助也将受到高度赞赏。

使用hashCode()测试字符串相等性

是否有任何理由不能使用hashCode方法测试Java字符串的相等性? 所以基本上,而不是…. “hello”.equals(“hello”) 你可以用…… “hello”.hashCode() == “hello”.hashCode() 这很有用,因为一旦字符串计算出它的哈希码,那么比较一个字符串就像比较一个int一样有效,因为字符串缓存了哈希码,而且很可能字符串在字符串池中,如果你设计它办法。

如何将IEEE-11073 16位SFLOAT转换为Java中的简单浮点数?

标题不言自明:如何将IEEE-11073 16位SFLOAT转换为Java中的简单浮点数?

使用HTTP读取文件的第一部分

我想通过读取文件的第一部分并分析内容来确定文件的类型(通常为UTF-8)。 (该类型特定于我的社区,但不在我的控制之下,并且不包含在MIME / MediaType中,通常是TEXT_PLAIN)。 我正在使用客户端上的’org.restlet’库来分析标头 Request request = new Request(Method.HEAD, url); 所以我知道内容长度,并且可以(如果必要和可能)估计我应该为分析下载多少字节 澄清:我无法使用MediaType。 从答案1看起来我必须得到内容。 因此,修订后的问题是: “我可以使用Restlet获取文件的一部分吗?” 答案:以下代码可以满足我的需求。 我已经将@BalusC归功于展示方式。 如果我遗漏了任何内容,请评论: public String readFirstChunk(String urlString, int byteCount) { String text = null; if (urlString != null) { org.restlet.Client restletClient = new org.restlet.Client(Protocol.HTTP); Request request = new Request(Method.GET, urlString); List ranges = Collections.singletonList(new Range(0, byteCount)); request.setRanges(ranges); Response response […]

将Kafka输入流动态连接到多个输出流

Kafka Streams内置了哪些function,允许将单个输入流动态连接到多个输出流? KStream.branch允许基于true / false谓词进行分支,但这不是我想要的。 我希望每个传入的日志确定它将在运行时流式传输的主题,例如,日志{“date”: “2017-01-01”}将流式传输到主题topic-2017-01-01和日志{“date”: “2017-01-02”}将流式传输到主题topic-2017-01-02 。 我可以在流上调用forEach ,然后写给Kafka制作人,但这看起来并不优雅。 在Streams框架中有更好的方法吗?