Questions tagged «java»

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

15
通过继承扩展枚举
我知道这有点违反枚举的想法,但是可以在C#/ Java中扩展枚举吗?我的意思是“扩展”,既是向枚举添加新值,也就是从现有枚举继承的OO。 我认为这在Java中是不可能的,因为它是最近才得到的(Java 5?)。但是,C#对于希望做疯狂事情的​​人似乎更宽容,所以我认为这可能是有可能的。大概可以通过反思来破解它(不是每个人都实际使用该方法)? 我不一定对实现任何给定的方法感兴趣,它只是在引起我好奇时才引起我的好奇:-)
85 c#  java  .net 

6
从Date()获取Unix时间戳
Date()通过将long值放入Date()构造函数中,我可以将unix时间戳转换为对象。例如:我可以将其作为new Date(1318762128031)。 但是之后,如何从该Date()对象取回unix时间戳?
85 java  date 

1
如何使用SLF4J使用占位符记录异常和消息
使用SLF4J记录错误消息和异常的正确方法是什么? 我已经尝试过这样做,但从未打印异常堆栈跟踪: logger.error("Unable to parse data {}", inputMessage, e); 在这种情况下,我想填充{}与inputMessage和退出异常堆栈跟踪。 我可以看到的唯一方法是这样做: logger.error("Unable to parse data " + inputMessage, e); 不好看
85 java  logging  slf4j 


5
固定大小的HashMap的最佳容量和负载因子是多少?
我正在尝试找出特定情况下的最佳容量和负载系数。我想我的主旨是,但我仍然要感谢比我知识渊博的人的确认。:) 如果我知道我的HashMap将充满以包含100个对象,并且大部分时间将花费100个对象,那么我猜最佳值是初始容量100和负载因子1?还是我需要101个容量,或者还有其他陷阱? 编辑:好的,我预留了几个小时并做了一些测试。结果如下: 奇怪的是,容量,容量+1,容量+2,容量1甚至容量10都产生完全相同的结果。我希望至少容量1和容量10会产生较差的结果。 使用初始容量(与使用默认值16相反)可以显着改善put()-快30%。 如果负载因子为1,则对于较少数量的对象将具有相同的性能,而对于较大数量的对象(> 100000)将具有更好的性能。但是,这并不能与对象的数量成比例地提高。我怀疑还有其他因素会影响结果。 对于不同数量的对象/容量,get()性能略有不同,但是尽管情况可能会略有不同,但是通常不受初始容量或负载因子的影响。 EDIT2:我也添加了一些图表。在初始化HashMap并将其填充到最大容量的情况下,这是一个说明负载系数0.75与1之间的差异的示例。y标度是时间(单位为ms)(越小越好),x标度是大小(对象数)。由于大小线性变化,因此所需的时间也线性增长。 所以,让我们看看我得到了什么。以下两个图表显示了负载系数的差异。第一张图显示了当HashMap满负荷时会发生什么;负载系数0.75由于调整大小而表现较差。但是,情况并没有一直恶化,而且还有各种各样的颠簸-我想GC在这方面起着重要作用。负载系数1.25与1相同,因此未包含在图表中。 该图表表明0.75由于调整大小而变差;如果我们将HashMap填充到一半容量,则0.75并不差,只是...有所不同(并且它应该使用更少的内存,并且具有显着更好的迭代性能)。 我想展示一件事。这是针对所有三个负载因子和不同的HashMap大小获得的性能。恒定不变,除了负载因子1的一个峰值外,几乎没有变化。我真的很想知道那是什么(可能是GC,但谁知道)。 这是那些有兴趣的代码: import java.util.HashMap; import java.util.Map; public class HashMapTest { // capacity - numbers high as 10000000 require -mx1536m -ms1536m JVM parameters public static final int CAPACITY = 10000000; public static final int ITERATIONS = 10000; // set to …
85 java  hashmap 

22
Spring JSON请求获取406(不可接受)
这是我的javascript: function getWeather() { $.getJSON('getTemperature/' + $('.data option:selected').val(), null, function(data) { alert('Success'); }); } 这是我的控制器: @RequestMapping(value="/getTemperature/{id}", headers="Accept=*/*", method = RequestMethod.GET) @ResponseBody public Weather getTemparature(@PathVariable("id") Integer id){ Weather weather = weatherService.getCurrentWeather(id); return weather; } spring-servlet.xml <context:annotation-config /> <tx:annotation-driven /> 收到此错误: GET http://localhost:8080/web/getTemperature/2 406 (Not Acceptable) 标头: 响应标题 Server Apache-Coyote/1.1 Content-Type text/html;charset=utf-8 …
85 java  javascript  ajax  json  spring 

19
使用Java递归列出目录中的所有文件
我具有此功能,该功能以递归方式打印目录中所有文件的名称。问题是我的代码很慢,因为它每次迭代都必须访问远程网络设备。 我的计划是先递归地从目录中加载所有文件,然后再使用正则表达式遍历所有文件以过滤掉所有我不需要的文件。有谁有更好的建议? public static printFnames(String sDir){ File[] faFiles = new File(sDir).listFiles(); for(File file: faFiles){ if(file.getName().matches("^(.*?)")){ System.out.println(file.getAbsolutePath()); } if(file.isDirectory()){ printFnames(file.getAbsolutePath()); } } } 这只是稍后的测试,我将不使用这样的代码,而是将与高级正则表达式匹配的每个文件的路径和修改日期添加到数组中。
85 java  file-io 

3
通过引用未知目标实体属性
我在被注释的对象中建立一对多关系时遇到问题。 我有以下内容: @MappedSuperclass public abstract class MappedModel { @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name="id",nullable=false,unique=true) private Long mId; 然后这个 @Entity @Table(name="customer") public class Customer extends MappedModel implements Serializable { /** * */ private static final long serialVersionUID = -2543425088717298236L; /** The collection of stores. */ @OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.LAZY) …


2
Java 9编译器中的--release标志是什么?
Java 9javac具有一个新标志--release: > javac --help ... --release <release> Compile for a specific VM version. Supported targets: 6, 7, 8, 9 与-source和-target标志有何不同?这只是它的捷径-source X -target X吗?
85 java  javac  java-9 

8
在Spring Boot中返回JSON对象作为响应
我在Spring Boot中有一个示例RestController: @RestController @RequestMapping("/api") class MyRestController { @GetMapping(path = "/hello") public JSONObject sayHello() { return new JSONObject("{'aa':'bb'}"); } } 我正在使用JSON库 org.json 当我点击API时/hello,出现一个异常提示: 路径为[]的上下文中的Servlet [dispatcherServlet]的Servlet.service()引发异常[请求处理失败;嵌套异常为java.lang.IllegalArgumentException:未找到类型为org.json.JSONObject]的返回值的转换器,其根本原因是 java.lang.IllegalArgumentException:未找到类型为org.json.JSONObject的返回值的转换器 有什么问题 有人可以解释到底发生了什么吗?

10
在JDBC中处理DATETIME值0000-00-00 00:00:00
如果尝试这样做,我会得到一个例外(见下文) resultset.getString("add_date"); 用于与包含注册日期为00:00:00的DATETIME值(DATETIME的准空值)的MySQL数据库的JDBC连接,即使我只是试图将值作为字符串而不是目的。 我通过这样做解决了 SELECT CAST(add_date AS CHAR) as add_date 哪个可行,但看起来很愚蠢……有更好的方法吗? 我的意思是,我只是想生DATETIME字符串,所以我可以解析它自己为是。 注意:这里是0000的来源:(来自http://dev.mysql.com/doc/refman/5.0/en/datetime.html) 非法的DATETIME,DATE或TIMESTAMP值将转换为适当类型(“ 0000-00-00 00:00:00”或“ 0000-00-00”)的“零”值。 具体的例外情况是: SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP. SQLState: S1009 VendorError: 0 java.sql.SQLException: Cannot convert value '0000-00-00 00:00:00' from column 5 to TIMESTAMP. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926) …
85 java  sql  date  jdbc 

12
如何将一个ArrayList的内容复制到另一个?
我有一些数据结构,我想将其中一个用作临时结构,将另一个用作非临时结构。 ArrayList<Object> myObject = new ArrayList<Object>(); ArrayList<Object> myTempObject = new ArrayList<Object>(); //fill myTempObject here .... //make myObject contain the same values as myTempObject myObject = myTempObject; //free up memory by clearing myTempObject myTempObject.clear(); 现在的问题当然是myObject实际上只是指向myTempObject,因此一旦myTempObject清除,也是如此myObject。 如何myTempObject在myObject使用Java时保留值?

13
如何计时Java程序的执行速度
您如何安排Java程序的执行时间?我不确定应该使用哪个类来执行此操作。 我正在寻找类似的东西: // Some timer starts here for (int i = 0; i < length; i++) { // Do something } // End timer here System.out.println("Total execution time: " + totalExecutionTime);
85 java 

6
如何在Java中遍历Class属性?
如何动态遍历Java中的类属性。 例如: public class MyClass{ private type1 att1; private type2 att2; ... public void function(){ for(var in MyClass.Attributes){ System.out.println(var.class); } } } Java有可能吗?
85 java  attributes  loops 

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.