Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

28
为什么Java人们经常默默地消费异常?
我以前从未进行过任何认真的Java编码,但是我根据现有技能(Delphi和C#)学习了语法,库和概念。我很难理解的一件事是,我看到如此多的代码在printStackTrace像这样的情况下静默地消耗异常: public void process() { try { System.out.println("test"); } catch(Exception e) { e.printStackTrace(); } } 在我遇到的几乎所有Java文章和项目中都有类似的代码。根据我的知识,这是非常糟糕的。几乎应该总是将异常转发给外部上下文,如下所示: public void process() { try { System.out.println("test"); } catch(Exception e) { e.printStackTrace(); throw new AssertionError(e); } } 大多数情况下,异常应该最终在属于底层框架(例如Java Swing)的最外层循环中进行处理。为什么在Java世界中看起来像这样的代码规范?我很困惑 根据我的背景,我希望完全删除printStackTrace 。我只是将其作为未处理的aka RuntimeException(或者甚至更好AssertionError)扔掉,然后在最合适的位置捕获并记录它:框架最外层的循环。 public void process() { try { System.out.println("test"); } catch(Exception e) { throw …

10
如何计算两个ArrayList之间的差异?
我有两个ArrayLists。 ArrayList A包含: ['2009-05-18','2009-05-19','2009-05-21'] ArrayList B包含: ['2009-05-18','2009-05-18','2009-05-19','2009-05-19','2009-05-20','2009-05-21','2009-05-21','2009-05-22'] 我必须比较ArrayList A和ArrayListB。结果ArrayList应该包含ArrayList A中不存在的List。 ArrayList结果应为: ['2009-05-20','2009-05-22'] 怎么比较?
81 java  arraylist 

8
用Java初始化多维数组
声明多维数组并为其分配值的正确方法是什么? 这就是我所拥有的: int x = 5; int y = 5; String[][] myStringArray = new String [x][y]; myStringArray[0][x] = "a string"; myStringArray[0][y] = "another string";

3
如何使Java Web应用程序国际化?
我从Google得知,国际化是使我的Web应用程序使用所有语言的过程。我想了解Unicode的国际化过程,因此我从这里到那里了解了Unicode 。 我能够理解Unicode,即如何将一个字符集设置为编码为字节,然后再将字节解码为字符集。但是我不知道如何进一步前进。我想学习如何比较字符串,还需要知道如何在Web应用程序中实现国际化。有什么建议吗?请指导我。 我的目标: 我的主要目标是开发一个Web翻译应用程序(英语到阿拉伯语,反之亦然)。我想关注国际化。我希望在所有三种浏览器(即FF,Chrome,IE)中运行我的网络应用程序进行翻译。我该如何实现?

6
是java.sql.Timestamp时区特定吗?
我必须将UTC dateTime存储在数据库中。 我已将特定时区中给定的dateTime转换为UTC。为此,我遵循以下代码。 我输入的日期时间是“ 20121225 10:00:00 Z”,时区是“ Asia / Calcutta”。 我的服务器/数据库(oracle)在同一时区(IST)“ Asia / Calcutta”中运行 获取此特定时区中的Date对象 String date = "20121225 10:00:00 Z"; String timeZoneId = "Asia/Calcutta"; TimeZone timeZone = TimeZone.getTimeZone(timeZoneId); DateFormat dateFormatLocal = new SimpleDateFormat("yyyyMMdd HH:mm:ss z"); //This date object is given time and given timezone java.util.Date parsedDate = dateFormatLocal.parse(date + …
81 java  oracle  date  datetime  jdbc 


11
Java中的事件监听器和处理程序有什么区别?
用Java的一般术语来说,有事件的侦听器和处理程序。 我的意思是我不知不觉地使用它们,无论API中有哪些可用。 我的问题是,在什么情况下我们使用侦听器,在什么情况下我们使用事件的处理程序? 它们之间有什么区别?特性?? 我已经搜索了原因,但找不到Java的正确解释。

5
怎么把Integer转换成int?
我正在开发一个Web应用程序,其中将在客户端和服务器端之间传输数据。 我已经知道JavaScript int!= Java int。因为,Java int不能为null,对。现在这是我面临的问题。 我将Java int变量更改为Integer。 public void aouEmployee(Employee employee) throws SQLException, ClassNotFoundException { Integer tempID = employee.getId(); String tname = employee.getName(); Integer tage = employee.getAge(); String tdept = employee.getDept(); PreparedStatement pstmt; Class.forName("com.mysql.jdbc.Driver"); String url ="jdbc:mysql://localhost:3306/general"; java.sql.Connection con = DriverManager.getConnection(url,"root", "1234"); System.out.println("URL: " + url); System.out.println("Connection: " + …
81 java  integer 

7
什么是Class对象(java.lang.Class)?
的Java文档Class说: ClassJava虚拟机在装入类时以及通过defineClass对类装入器中的方法的调用自动构造对象。 这些Class对象是什么?它们是否与通过调用从类实例化的对象相同new? 另外,例如,即使我不继承,也object.getClass().getName()如何将所有内容都转换为超类?Classjava.lang.Class

19
比较具有不同精度级别的Date对象
我有一个JUnit测试失败,因为毫秒不同。在这种情况下,我不在乎毫秒。如何更改断言的精度以忽略毫秒(或我希望将其设置为任何精度)? 我想通过的断言示例: Date dateOne = new Date(); dateOne.setTime(61202516585000L); Date dateTwo = new Date(); dateTwo.setTime(61202516585123L); assertEquals(dateOne, dateTwo);
81 java  junit 

2
在Java中,URL连接何时关闭?
Java什么时候放开与URL的连接?我在URL或URLConnection上都没有看到close()方法,所以一旦请求完成,它会释放连接吗?我主要是询问是否需要在异常处理程序中进行任何清理。 try { URL url = new URL("http://foo.bar"); URLConnection conn = url.openConnection(); // use the connection } catch (Exception e) { // any clean up here? }

10
org.apache.tomcat.util.bcel.classfile.ClassFormatException:常量池中的无效字节标记:15
我正在将Web应用程序从Tomcat 7移植到具有Tomcat 7但具有Java 8的另一台服务器。 Tomcat成功启动,但是在日志中catalina.out我得到: org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15 at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:131) at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:60) at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209) at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119) at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2049) at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1931) at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1899) at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1885) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1281) at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:855) at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:346) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5172) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) at …

15
Maven“找不到符号”消息无济于事
这是一个非常简单的问题,可能是我不知道的地方,但是Google对于这个问题特别无助,它给出了有关编译错误的结果,而不是如何更改编译错误消息。 当我使用maven构建项目时,它会给我错误消息,其格式大致如下: [错误] /path/to/source/Main.java:[13,8]错误:找不到符号 当我使用ant或javac进行构建时,它实际上会告诉我在错误消息中找不到的符号。Maven为我提供了行号和字符位置,但是显示实际符号会更有用。上面的行是为每个“找不到符号”错误提供的唯一行。在该符号的上方或下方没有线条。我想必须有某种方式让Maven告诉我这些信息,但是我不知道它是什么。我尝试了-e选项,因为mvn告诉我尝试使用它,但是它提供了错误的Maven追溯,而不是实际的符号。 有什么帮助吗? 这是mvn --version的输出 Apache Maven 3.0.4 (rNON-CANONICAL_2012-10-24_11-25_mockbuild; 2012-10-24 07:25:04-0400) Maven home: /usr/share/maven Java version: 1.7.0_09-icedtea, vendor: Oracle Corporation Java home: /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.9.x86_64/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.6.6-1.fc17.x86_64", arch: "amd64", family: "unix" 这是一个示例(无用的)错误消息,与maven的输出完全一样(只是目录缩短了): [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- …

3
方法引用缓存在Java 8中是个好主意吗?
考虑我有如下代码: class Foo { Y func(X x) {...} void doSomethingWithAFunc(Function<X,Y> f){...} void hotFunction(){ doSomethingWithAFunc(this::func); } } 假设hotFunction经常调用。那么建议缓存this::func如下: class Foo { Function<X,Y> f = this::func; ... void hotFunction(){ doSomethingWithAFunc(f); } } 据我对java方法引用的理解,使用方法引用时,虚拟机会创建一个匿名类的对象。因此,缓存引用只会创建一次该对象,而第一种方法是在每个函数调用上创建该对象。它是否正确? 应该缓存出现在代码中热门位置的方法引用,还是VM能够优化它,并使多余的缓存?是否有一般的最佳实践,还是这种高度VM实施特定于这种缓存是否有用?

9
在JUnit中声明正则表达式匹配
RubyTest::Unit有一个很好的assert_matches方法,可以在单元测试中使用它来断言正则表达式与字符串匹配。 JUnit中是否有类似的东西?目前,我这样做: assertEquals(true, actual.matches(expectedRegex));
81 java  regex  junit 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.