草庐IT

java - 通缉 : Recurrence Formula of In-Order binary tree output method

我在寻找这个java方法的递推公式时遇到了麻烦voidprintInorder(Nodev){if(v!=null){printInorder(v.getLeft());System.out.println(v.getData());printInorder(v.getRight());}}一些标准:它是一棵完全二叉树(每个内结都有2个child,每片叶子的深度相同)这棵树有n个节点,复杂度为O(n)我必须找到与n结的树的深度h相关的递归公式,作为额外的奖励,我需要外推显式从中得出O(n)的公式。现在,这就是我得到的:d=depthofthetreec=constantruntimef

java - 如何与大量的数字数组?

我有200个排序的正整数数组(其中一些有超过一百万个数字)。我需要找到每个数组中存在的第一个数字。你有什么建议? 最佳答案 为每个数组保留一个索引。以第一个数组的第一个数字作为引用。第n个数组的第一个数是否低于引用,增加其索引。第n个数组的第一个数是否等于引用,增加n并继续-下一个数组。第n个数组的第一个数字是否大于引用,以该数字为引用并重新开始。如果n==201,则您的引用存在于每个数组中。编辑:代码示例:whilenreference:reference=itemn=0printreference

java - Java 中的不变性、协变性和逆变性

Javalessonongenerics带我去variance概念。这让我有些头疼,因为我找不到一个非常简单的演示来说明它是什么。我读了几本similarquestionsonstackoverflow,但我发现它们对于Java学习者来说太难理解了。其实问题在于泛型的解释需要理解方差,而方差概念的论证很大程度上依赖于对泛型的理解。我有一些希望阅读this,但最后我分享了C.R.的感受:Thetitleremindsmeofthedayslearninggeneralrelativity.–C.R.Dec22'13at7:34四道理论题让我很困惑,我找不到很好的简单解释。以我目前的部分理

java - PostgreSQL:将用完整数列中的 ID

问题我们正在PostgreSQL之上用Java构建一个Web应用程序。它相当大而且很成功,至少应该可以再运行几年。不幸的是,我们(好吧,我)在设计过程的早期阶段犯了一个严重的错误:所有数据库ID都是整数,从一个共享序列分发。Java'smaxintis2^31-1,所以大约有20亿。PostgreSQL'sintegertype也是如此.该系统目前每天消耗约10,000个ID,并且随着我们获得新用户,该速率还在上升。总有一天,ID会用完并溢出。问题我们正在寻找解决问题的方法。让我们立即解决明显的问题:切换到Java的long和Postgres的bigint是一个干净的解决方案,但它是一

java - 这个 CORS 处理程序安全吗?

我在我的一个简单的服务器代理中编写了这个简单的方法来处理CORS。privatevoidhandleCors(HttpServletRequestreq,HttpServletResponseresp){finalStringorigin=req.getHeader("Origin");if(Strings.isNullOrEmpty(origin)){return;}if(!origin.startsWith("http://localhost:")){return;}resp.setHeader("Access-Control-Allow-Origin",origin);resp.

java - 我如何为我的 Java 应用程序的用户前端决定是使用 Swing GUI 还是轻量级 Web 客户端?

当涉及到用户界面时,我似乎总是在内心挣扎。我建立了一个应用程序“引擎”,并倾向于将用户界面推迟到我的算法工作之后。然后我反复尝试决定如何让用户与我的程序交互。就个人而言,我是命令行的粉丝,但我不能指望我的用户普遍如此。在web2.0和ajax时代,我真的很喜欢浏览器的无限可能。另一方面,制作一个Swing前端也不难,而且您通常可以指望向用户呈现更一致的表现(尽管使用像YUI或jQuery这样的良好javascript框架对规范化浏览器大有帮助)。显然,这两种方法都有其优点和缺点。那么,什么标准/参数/情况应该让我使用轻量级(例如基于网络的)GUI?什么标准/参数/情况应该导致我使用更重

java - 调试 JSF + PrimeFaces 应用程序

有没有一种方法可以通过简单地查看一个日志文件来调试JSF+PrimeFaces应用程序?更具体地说,如果某些事情没有按预期工作,我个人目前是这样做的:在网页上寻找视觉指示器(例如,如果我收到HTTP500,显然有问题)我在我的应用服务器的日志文件中查看任何警告、错误或堆栈跟踪我在Firebug的网络控制台中查看HTTP响应中是否有任何错误;这往往会不时发生(并且不会显示在日志中!)我通过在表单中​​包含p:message并显示它来检查它是否是验证错误。对我来说,检查错误是一个包含4个步骤的工作流程。有更好的方法吗?理想情况下,如果所有这些错误都可以记录到一个日志中,那就太好了。这是DI

java - 哪种静态分析工具用于扫描从一种方法到另一种方法的数据流?

假设我的库中有两种方法:voidcom.somepackage.SomeClass.someSink(Strings)和intcom.someotherpackage.SomeOtherClass.someSource(inti)在我的代码中,第一种方法用作数据接收器,而第二种方法用作数据源。类型参数int、String只是举例,实际情况可能会有所变化。我想在满足下面给出的特定模式的某些代码中检测这些方法的用法:一些数据(比如x)是由源生成的一些数据(例如y)是使用一系列转换生成的f1(f2(...fn(x))y被提供给接收器。转换可以是任意函数,只要从为接收器生成数据的函数到从源接收

java - 如何验证客户端-服务器连接之间的数据完整性?

我最近开发了一款在线多人游戏,运行良好。有一个中央服务器处理与客户端的TCP连接,它们都接收和发送数据。有没有办法验证发送的数据在接收方读取之前没有被修改?TCP连接是否以某种方式处理它?如果不是,最好的实现方式是什么(不要求代码)?到目前为止,我想出了这些想法:修改发送的数据,添加某种验证值,例如数据包长度。收到数据包后,请求服务器再次发送并验证它们是否相等。我搜索了一个常用的解决方案,但找不到太多。加密应该是我最后的选择。编辑实现此目的的简单方法:MD5WikipediaExampleSHA1WikipediaExampleSSLWikipediaExample

java - 为数据密集型应用程序的 JVM 提供适当的堆和旧代大小

我正在使用JVMsunjava-1.6.0_21运行服务器应用程序。我的应用程序数据量大,充当缓存服务器。所以它存储了很多我们不希望在整个应用程序运行过程中获得GC的长期生存数据。我正在设置以下JVM参数-Xmx16384M和-Xms16384M。加载所需数据后,应用程序的内存使用情况如下总堆空间为:13969522688最大堆空间为:15271002112可用堆空间为:3031718040长期(老一代)堆存储:Used=10426MBMax=10922MB已用/最大=95%老一代使用-我已经确认这是由于实际数据,预计不会免费。我的问题是,默认情况下JVM堆空间的大小(它分配10922