Java并发:取消他们收集垃圾所需的期货?

我正在编写一些代码,我可能需要创建一个无限数量的未来对象(java.util.concurrent.Future)。 但我担心某些时候内存不足。 这里有几个问题: jvm是否知道,一旦未来完成,它就不会在任何地方被引用,因此有资格获得GC(即使创建它的线程仍在运行并运行)? 理想情况下,我不想自己跟踪这些未来。 但是,如果我确实保留这些期货的参考并定期对它们取消取消,那么它们是否可用于GC?

Axis2和Webservices:文件上传

我正在尝试使用Axis2编写一个简单的Web服务。 它的行为非常简单:它在输入中获取一个文件并存储它。 我已经尝试了几件事来做这个“简单”的文件上传服务。 最初,我还尝试使用Java2WSDL和WSDL2Java来创建WSDL文件,并希望传递java.io.File数据类型的客户端。 当然它没有用。 我现在正尝试使用SOAP附件和MTOM或SwA上传文件。 我在axis2 \ WEB-INF \ conf \ axis2.xml中启用了它们 服务器端,我的服务操作的签名是: public String uploadAttachment(OMElement omEle); 这是使用Java2WSDL工具生成的WSDL: 客户端,我试图打电话给服务: Options options = new Options(); options.setTo(new EndpointReference(“http://localhost:8080/axis2/services/ImportModule”)); options.setProperty(Constants.Configuration.ENABLE_SWA, Constants.VALUE_TRUE); options.setTransportInProtocol(Constants.TRANSPORT_HTTP); options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI); ServiceClient sender = new ServiceClient(null,null); sender.setOptions(options); OperationClient mepClient = sender.createClient(ServiceClient.ANON_OUT_IN_OP); MessageContext mc = new MessageContext(); SOAPFactory factory = OMAbstractFactory.getSOAP12Factory(); SOAPEnvelope env = factory.getDefaultEnvelope(); mc.setEnvelope(env); […]

RMI服务器与RMI注册表

在Oracle关于Java RMI 的FAQ页面上 ,它说: 虽然Java远程方法调用(Java RMI)服务器理论上可以在任何主机上,但它通常与运行注册表的主机相同,并且位于不同的端口上。 即使服务器错误地了解其主机名或IP地址(或者主机名无法由客户端解析),它仍将使用错误的主机名导出其所有对象,但每次尝试时都会看到exception接收其中一个对象。 我不明白RMI服务器和RMI注册表之间的区别。 我以为他们是一回事。 如果RMI注册表不是某种服务器,它如何工作?

在维护对Java 7的支持的同时使用@Repeatable

Java 8通过使用“容器”注释来支持可重复注释: @Repeatable(FooContainer.class) @interface Foo { String value(); } @interface FooContainer { Foo[] value(); } @Foo(“bar”) @Foo(“baz”) public class SomeClass { } 我有一个库,我想支持Java 7(或更新版本)。 该库广泛使用注释,并且可以从支持可重复注释中获益。 根据我的理解,容器注释甚至可以在Java 7中工作,只有一个人必须使用它: @FooContainer({@Foo(“bar”),@Foo(“baz”)}) public class SomeClass { } 我最终会喜欢的是:如果我的库的用户使用Java 8,则用户将能够使用重复的注释。 如果用户使用Java 7,他必须坚持手动编写容器注释。 这样的事情有可能吗?

Java – 通过浏览器/ URL连接到ServerSocket

我正在编写一个软件,我受限于无法使用socket连接到使用ServerSocket的Java应用程序。 我以为我会尝试使用URL连接,因为可以定义要连接的端口 例如: 127.0.0.1:62666 我让我的服务器应用程序侦听连接并将输入写入jTextArea。 通过浏览器连接到服务器(127.0.0.1:62666)时,它输出: GET / HTTP/1.1 GET /favicon.ico HTTP/1.1 我有另一个应用程序通过URL连接连接到ServerSocket: try{ URL url = new URL(“http://127.0.0.1:62666”); URLConnection connection = url.openConnection(); connection.setDoOutput(true); connection.connect(); PrintWriter writer = new PrintWriter(connection.getOutputStream()); writer.print(“Hello”); System.out.println(“should have worked”); writer.flush(); writer.close(); }catch(IOException e){ e.printStackTrace(); } 它打印出“应该有效”消息fyi,但它从不向服务器的jTextArea写入任何内容。 服务器应用程序的代码如下所示: try{ ServerSocket serverSock = new ServerSocket(62666); while(doRun){ Socket sock = serverSock.accept(); BufferedReader reader […]

在Java中实例化集合集?

我想实例化一组Set(of strings),然后将两个Set放入其中,如下所示: Set setOne = retrieveSetOne(); Set setTwo = retrieveSetTwo(); Set<Set> myCollection = new HashSet<new HashSet<String(); // not working myCollection.add(setOne); myCollection.add(setTwo); 问题是,我对嵌套集的实例化不起作用。 我该怎么做呢?

Neo4j – 按相关性排序

我想在Neo4j中按相关性订购返回的数据。 出于我的目的,相关性可以简化为“我正在搜索的单词的索引”,其中较低的索引具有较高的相关性。 例 我有这三个节点: node : { Label: PROD properties : { name: “Bearing replacement Skateboard” } } node : { Label: PROD properties : { name: “Skateboard” } } node : { Label: PROD properties : { name: “L7 Skateboard” } } 我希望他们按此订单退回: node : { Label: PROD properties : { name: “Skateboard” // […]

java.io.IOException:不支持mark / reset

此代码不起作用。 我准备好上课,因为它可以在这里找到,但音乐不起作用。 我怎样才能解决这个问题? private void lblCliqueMouseClicked(java.awt.event.MouseEvent evt){ lblClique.setText(“achou”); musica = new Som(); boolean repetir = false; FileInputStream arquivo = null; try { arquivo = new FileInputStream(“musica.mp3”); } catch (FileNotFoundException ex) { Logger.getLogger(TelaProjeto.class.getName()).log(Level.SEVERE, null, ex); } musica.tocar(arquivo, repetir); }

没有JIT优化

看看这个问题 : 代码: class test { public static void main(String abc[]) { for( int k=1; k<=3; k++) { for( int N=1; N<=1_000_000_000; N=N*10) { long t1 = System.nanoTime(); int j=1; for(int i=0; i<=N; i++) j=j*i; long t2 = System.nanoTime() – t1; System.out.println("Time taken for "+ N + " : "+ t2); } } } } […]

如何查找字符串是否包含“仅”特殊字符在java中

假设我将String定义为: String splChrs = “/-@#$%^&_-+=()” ; String inputString = getInputString(); //gets a String from end the user 我想检查String“ inputString ”是否只包含String“ splChrs ”中包含的特殊字符,即如果inputString只包含“ splChrs ”中包含的字符,我想将布尔标志设置为true eg: String inputString = “#######@”; //set boolean flag=true 如果布尔标志包含“ splChrs ”中不包含的任何字母,则将其设置为false eg: String inputString = “######abc”; //set boolean flag=false