在我们的Linux系统上,我们使用命名pipe道进行进程间通信(生产者和消费者)。 为了testing消费者(Java)代码,我想实现(在Java中)虚拟生产者,它写入到连接到消费者的命名pipe道。 现在testing也应该在Windows开发环境中工作。 因此,我想知道如何从Java创build一个Windows命名pipe道。 在Linux中,我可以使用mkfifo(使用Runtime.exec()调用),但是我应该如何在Windows上执行此操作?
在Java中,以老式方式遍历数组的速度会更快, for (int i = 0; i < a.length; i++) f(a[i]); 或者使用更简洁的forms, for (Foo foo : a) f(foo); 对于一个ArrayList,答案是一样的吗? 当然,对于大量的应用程序代码,答案是没有明显的区别,所以应该使用更简洁的forms来提高可读性。 然而,我所看到的背景是重型技术计算,操作必须执行数十亿次,所以即使微小的速度差异可能最终是显着的。
例如,我们可以像这样构造这样一个数组: new ElementType[0]; 我看到了这样的结构,但我不明白为什么这可能是有用的。
我得到以下错误,可能是什么问题? 我的上下文描述符: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <servlet> <servlet-name>UploadServlet</servlet-name> <servlet-class>controller.UploadServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UploadServlet</servlet-name> <url-pattern>/UploadServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> SEVERE: Servlet.service() for servlet jsp threw exception java.lang.NullPointerException at org.apache.jsp.index_jsp._jspInit(index_jsp.java:22) at org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:52) at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:159) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) […]
Object[] o = "a;b;c".split(";"); o[0] = 42; 投 java.lang.ArrayStoreException: java.lang.Integer 而 String[] s = "a;b;c".split(";"); Object[] o = new Object[s.length]; for (int i = 0; i < s.length; i++) { o[i] = s[i]; } o[0] = 42; 没有。 有没有其他的方式来处理这个exception,而不创build一个临时的String[]数组?
是否有可能使用JAXBparsingxml到一个特定的Java类基于XML的属性? <shapes> <shape type="square" points="4" square-specific-attribute="foo" /> <shape type="triangle" points="3" triangle-specific-attribute="bar" /> </shapes> 我想有一个包含三angular形和正方形的Shape对象列表,每个都有自己的形状特定的属性。 IE: abstract class Shape { int points; //…etc } class Square extends Shape { String square-specific-attribute; //…etc } class Triangle extends Shape { String triangle-specific-attribute; //…etc } 我现在只是把所有的属性放在一个大的“形状”类,并不理想。 我可以得到这个工作,如果形状是正确命名的XML元素,但不幸的是我没有控制我正在检索的XML。 谢谢!
我想知道是否有一个快速/干净的方式来获得两套之间的差异? 我有: Set<String> s1 = new HashSet<String>(); s1.add("a"); s1.add("b"); s1.add("c"); Set<String> s2 = new HashSet<String>(); s2.add("b"); 我需要像这样的东西: Set<String> diff = Something.diff(s1, s2); // diff would contain ["a", "c"] 只是为了澄清我需要对称的差异。
如何在代码中使用myAnimal实例调用Animal类的吃喝方法? public class Animal { public void eat() { System.out.println("Animal Eats"); } public void drink() { System.out.println("Animal Drinks"); } } public class Cat extends Animal { @Override public void eat() { System.out.println("Cat Eats"); } @Override public void drink() { System.out.println("Cat Drinks"); } public static void main(String[] args) { Cat myCat = new Cat(); myCat.eat(); myCat.drink(); […]
可以通过reflection来检索Java静态最终类variables的值吗?
我研究了多态,并且明白它可以做如下的dynamic方法绑定。 假设动物类是抽象类。 public class AnimalReference { public static void main(String args[]) Animal ref // set up var for an Animal Cow aCow = new Cow("Bossy"); // makes specific objects Dog aDog = new Dog("Rover"); // now reference each as an Animal ref = aCow; ref.speak(); ref = aDog; ref.speak(); } 我用来创buildArrayList的实例,如: ArrayList myList = new […]