Integer.parseInt(scanner.nextLine())vs scanner.nextInt()

我的教授倾向于做以下事情来从用户那里得到一个数字: Scanner scanner = new Scanner(System.in); Integer.parseInt(scanner.nextLine()); 与简单地执行scanner.nextInt()相比有什么好处? java.util.Scanner.java包含以下内容: public int nextInt() { return nextInt(defaultRadix); } public int nextInt(int radix) { // Check cached result if ((typeCache != null) && (typeCache instanceof Integer) && this.radix == radix) { int val = ((Integer)typeCache).intValue(); useTypeCache(); return val; } setRadix(radix); clearCaches(); // Search for next int try { […]

在java中validation证书会引发exception – 无法找到所请求目标的有效证书路径

我有一个Web应用程序,要求客户端发送它的证书,服务器必须validation证书(即查看颁发者是否是有效的颁发者并出现在服务器的信任库中)。 这是代码: FileInputStream fin=new FileInputStream(“C:/trustedca”); KeyStore anchors = KeyStore.getInstance(“JKS”,”SUN”); anchors.load(fin, “server”.toCharArray()); X509CertSelector target = new X509CertSelector(); FileInputStream fin1=new FileInputStream(“C:/client.crt”); CertificateFactory cf=CertificateFactory.getInstance(“X.509”); X509Certificate cert=null; while (fin1.available() > 0) { System.out.println(“in while———“); cert =(X509Certificate) cf.generateCertificate(fin1); } target.setCertificate(cert); PKIXBuilderParameters params = new PKIXBuilderParameters(anchors, target); CertPathBuilder builder = (CertPathBuilder) CertPathBuilder.getInstance(“PKIX”).build(params); PKIXCertPathBuilderResult r = (PKIXCertPathBuilderResult) builder.build((CertPathParameters)params); 但我得到一个例外: sun.security.provider.certpath.SunCertPathBuilderException: unable to […]

为什么要在Java中公开私有内部类成员?

如果在包含类之外仍然无法访问Java中私有内部类公共成员的原因是什么? 或者可以吗? public class DataStructure { // … private class InnerEvenIterator { // … public boolean hasNext() { // Why public? // … } } }

Java中的Peterson算法?

在Java中是否存在用于互斥的Peterson算法的示例实现?

如何用spring mvc 3.0注册处理程序拦截器?

应该很容易: 但这样就不会调用拦截器。

带有超类参数的Java getMethod方法

鉴于: class A { public void m(List l) { … } } 假设我想用reflection调用方法m ,将ArrayList作为参数传递给m : List myList = new ArrayList(); A a = new A(); Method method = A.class.getMethod(“m”, new Class[] { myList.getClass() }); method.invoke(a, Object[] { myList }); 第3行的getMethod将抛出NoSuchMethodException因为myList的运行时类型是ArrayList,而不是List。 有没有一个很好的通用方法,不需要知道A类的参数类型?

没有找到带有URI Spring MVC的HTTP请求的映射

这是我的Web.xml dispatcherServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/spring/servlet-context.xml 1 dispatcherServlet /* org.springframework.web.context.ContextLoaderListener 我的servlet-context.xml /WEB-INF/views/ .jsp 最后是Handler类。 它位于com.springexample.controller.impl下 @Controller public class IndexControllerImpl implements IndexController { @RequestMapping(“/”) public String index() { return “index”; } } 但是在转到localhost:8080/projectname/ 它返回404错误。 Jul 27, 2013 8:18:31 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound WARNING: No mapping found for HTTP request with URI [/tasklist/WEB-INF/views/index.jsp] in DispatcherServlet with name ‘dispatcherServlet’ Jul […]

获取负载测试的NoHttpResponseException

我正在为我的应用程序运行负载测试。 我有两台服务器:一台是我的应用程序,另一台是负责让我回复的虚拟服务器。 在我的虚拟服务器中,我有以下jsp代码: 我正在使用tomcat7运行应用程序。 我的server.xml连接池(在两个服务器中)看起来像: 我从服务器运行的java代码是: HttpPost post = new HttpPost(bidderUrl); post.setHeader(“Content-Type”, “application/json”); // I’m using http client with ThreadSafeClientConnManager // total conn = 500, max conn per route = 100, timeout=500millis HttpClient httpClient = httpClientFactory.getHttpClient(); try { post.setEntity(new StringEntity(jsobBidRequest)); HttpResponse response = httpClient.execute(post); … catch (NoHttpResponseException e){ log.error(e); } 我正在运行带有50个并发线程的Jmetter(没有循环),并且得到了很多例外: org.apache.http.NoHttpResponseException The target server […]

从大文件中逐个读取30Million用户ID

我正在尝试使用Java读取一个非常大的文件。 那个大文件会有这样的数据,这意味着每一行都有一个用户ID。 149905320 1165665384 66969324 886633368 1145241312 286585320 1008665352 在那个大文件中,将有大约3000万用户ID。 现在我试图从那个大文件中一个一个地读取所有用户id。 意味着每个用户ID应该只从该大文件中选择一次。 例如,如果我有30万个用户ID,那么它应该使用multithreading代码只打印一次3000万用户ID。 下面是我的代码,它是一个运行10个线程的multithreading代码,但是使用下面的程序,我无法确保每个用户ID只被选中一次。 public class ReadingFile { public static void main(String[] args) { // create thread pool with given size ExecutorService service = Executors.newFixedThreadPool(10); for (int i = 0; i < 10; i++) { service.submit(new FileTask()); } } } class FileTask implements Runnable { […]

在管道中间关闭流

当我执行此代码时,它会在流管道中打开大量文件: public static void main(String[] args) throws IOException { Files.find(Paths.get(“JAVA_DOCS_DIR/docs/api/”), 100, (path, attr) -> path.toString().endsWith(“.html”)) .map(file -> runtimizeException(() -> Files.lines(file, StandardCharsets.ISO_8859_1))) .map(Stream::count) .forEachOrdered(System.out::println); } 我得到一个例外: java.nio.file.FileSystemException: /long/file/name: Too many open files 问题是当Stream.count完成后, Stream.count不会关闭流。 但我不明白为什么它不应该,因为它是一个终端操作。 对于其他终端操作(例如reduce和forEach 。 另一方面, flatMap关闭它所包含的流。 该文档告诉我使用try-with-resouces语句在必要时关闭流。 在我的情况下,我可以用这样的东西替换count行: .map(s -> { long c = s.count(); s.close(); return c; } ) 但这是嘈杂和丑陋的,在某些情况下可能会给大型复杂的管道带来真正的不便。 所以我的问题如下: 为什么流设计不是为了让终端操作关闭他们正在处理的流? […]